;;;--- HPARAM > -*- package: user; mode: lisp; base: 10. -*- ; INITIALIZATIONS: (setq SHOW-LIST '(XXX YYY ZZZ WIND SERVO GRAVITY TIMESTEP SHOW-EVAL? ERASE-COUNT ROBOT-SCALE MOUSE-SCALE DISPLAY-TIME DISPLAY-MODE MOUSELIST-MODE) ROD-ARRAY-COMPONENTS '(CM-X CM-X-VELOC CM-X-ACCEL CM-Y CM-Y-VELOC CM-Y-ACCEL ANGLE ANGLE-VELOC ANGLE-ACCEL LOWER-X LOWER-X-VELOC LOWER-X-ACCEL LOWER-Y LOWER-Y-VELOC LOWER-Y-ACCEL UPPER-X UPPER-X-VELOC UPPER-X-ACCEL UPPER-Y UPPER-Y-VELOC UPPER-Y-ACCEL COSANGLE SINANGLE LXF LYF UXF UYF APPLIED-TORQUE M1 M2 M3 MASS MOI LCM UCM LTOT ROD-FRAME ROBOT-FRAME) TEST-FCN-LIST '( )) ; FRAMES: (setq ROD1 `(ROD1 (ROD-ARRAY . ,(make-rod)) ; State-Variable and Parameter array (LTOT . 0.4s0) ; Total Length of rod (M1 . 18.0s0) ; Mass at lower end (M2 . 2.0s0) ; Mass at CM (M3 . 8.0s0) ; Mass at upper end (SAVE-ANGLE . 0.0s0) ; Angle: horiz to CM-to-UPPER line (SAVE-LOWER-X . -0.5s0) (SAVE-LOWER-Y . 0.0s0) ) ROD2 `(ROD2 (ROD-ARRAY . ,(make-rod)) ; State-Variable and Parameter array (LTOT . 1.0s0) ; Total Length of rod (M1 . 3.0s0) ; Mass at lower end (M2 . 1.0s0) ; Mass at CM (M3 . 4.0s0) ; Mass at upper end (SAVE-ANGLE . 0.0s0) ; Angle: horiz to CM-to-UPPER line (SAVE-LOWER-X . -0.1s0) (SAVE-LOWER-Y . 0.0s0) ) ONE-LEGGED-ROBOT `(ONE-LEGGED-ROBOT (ROD-FRAME-LIST ,ROD1 ,ROD2) (ROD-ARRAY-LIST ,(get-frame ROD1 'ROD-ARRAY) ,(get-frame ROD2 'ROD-ARRAY)) (CONTROL-LIST) (BODY)) ROBOT-FRAME ONE-LEGGED-ROBOT) (setq CF0 `(CF0 (FSCONTROL . SERVO-TORQUE)) CF1 `(CF1 (FSCONTROL . SERVO-ACCELERATION)) CF2 `(CF2 (FSCONTROL . SERVO-VELOCITY)) CF3 `(CF3 (FSCONTROL . SERVO-ANGLE)) CF4 `(CF4 (FSCONTROL . SERVO-BALANCE)) CF5 `(CF5 (FSCONTROL . SERVO-BALANCE-ANGLE)) CF6 nil CF7 nil CF8 nil CF9 nil CONTROL-FRAME CF3) ; FLOOR and BODY PARAMETERS: (setq FLOOR-ELASTICITY 35.0s3 ; Half of Lagrangian value FLOOR-DAMPING 350.0s0 ; ditto JOINT-ELASTICITY 600.0s0 JOINT-DAMPING 60.0s0) ; DIGIT-COMMANDS: (setq NUMBER-SET-LIST (list '(setq ONE '(SPEED 1.) ; User-Break Command: - 1 TWO '(SPEED 2.) THREE '(SPEED 5.) FOUR '(SPEED 10.) FIVE '(SPEED 20.) SIX '(SPEED 50.) SEVEN '(SPEED 100) EIGHT '(SPEED 200.) NINE '(SPEED 500.) ZERO '(SPEED)) '(setq ONE '(setq CONTROL-FRAME CF1) ; User-Break Command: - 2 TWO '(setq CONTROL-FRAME CF2) THREE '(setq CONTROL-FRAME CF3) FOUR '(setq CONTROL-FRAME CF4) FIVE '(setq CONTROL-FRAME CF5) SIX '(setq CONTROL-FRAME CF6) SEVEN '(setq CONTROL-FRAME CF7) EIGHT '(setq CONTROL-FRAME CF8) NINE '(setq CONTROL-FRAME CF9) ZERO '(setq CONTROL-FRAME CF0)))) ; MISCELLANEOUS PARAMETERS: (setq TIMESTEP 10. ; Milliseconds SERVO 'J-ANGLE BREAK-ON-ERROR? nil MOUSE-SCALE 0.0015s0 FACTOR 1.1s0 CYCLES 1.0s0 FRICTION 2.0s0 WIND 0.0s0 ; Good windy value: 100.0s0 ; Negative value: use ABS of it as constant wind. ; Positive value: use random value with this P-P value. GRAVITY 9.8s0 MOUSELIST-MODE nil) ; DISPLAY PARAMETERS: (setq DISPLAY-LIST '(F1 "UXF-1" F2 "UYF-1" F3 "LXF-2" F4 "LYF-2" X1 "X-Accel-Correction" Y1 "Y-Accel-Correction") MDV-LIST1 '(X1 "X-Accel-Correction" 400. Y1 "Y-Accel-Correction" 430.) MDV-LIST2 '(X1 "X-Accel-Correction" 828. Y1 "Y-Accel-Correction" 845.) ) (setq PRINT-VAL? nil DISPLAY-TIME (* TIMESTEP 2.) DISPLAY-MODE 3. SCOPE-TOP 354. GRATE 1. FREERUN? t SHOW-EVAL? t ERASE-COUNT 0. ROBOT-SCALE 70.0s0 GRAPHICS-SCREEN-HEIGHT 300. STATE-SPACE-GRAPH-LIST '(nil nil nil) STATE-SPACE-GRAPH-LIST-LEN (- (length STATE-SPACE-GRAPH-LIST))) ; INTERPRETED FUNCTION DEFINITION: (defun r (&optional (n JOINT-ELASTICITY) (m JOINT-DAMPING)) (sett JOINT-ELASTICITY n JOINT-DAMPING m)) ; INITIALIZATIONS: (or (boundp 'ONE) (eval (first NUMBER-SET-LIST))) (cond ((< STATE-SPACE-GRAPH-LIST-LEN 0.) (setq STATE-SPACE-GRAPH-LIST-LEN (- STATE-SPACE-GRAPH-LIST-LEN)) (rplacd (last STATE-SPACE-GRAPH-LIST) STATE-SPACE-GRAPH-LIST) "STATE-SPACE-GRAPH-LIST circularized.")) (cond ((not (boundp 'GRAPHICS-WINDOW)) (setq GRAPHICS-WINDOW (tv:window-create 'TV:LISP-LISTENER ':EDGES-FROM `(0. 0. 767. ,(+ GRAPHICS-SCREEN-HEIGHT 20.)))) (<- GRAPHICS-WINDOW ':SET-DEEXPOSED-TYPEOUT-ACTION ':PERMIT) (setq GRAPHICS-WINDOW-ARRAY (tv:SHEET-SCREEN-ARRAY GRAPHICS-WINDOW)))) (set-normalization t) ;;; End.