typedef struct { double x; double y; double z; double quat1; double quat2; double quat3; double swingl_y ; double swingr_y ; double neck_y ; double hipr_y ; double hipl_y ; double kneer_y ; double kneel_y ; double ankler_y ; double anklel_y ; double shldr_y ; double shldl_y ; double elbr_y ; double elbl_y ; double wrstr_y ; double wrstl_y ; double ropel_hand_y ; double roper_hand_y ; double quat4; double xd; double yd; double zd; double quat1d; double quat2d; double quat3d; double swingl_yd; double swingr_yd; double neck_yd; double hipr_yd; double hipl_yd; double kneer_yd; double kneel_yd; double ankler_yd; double anklel_yd; double shldr_yd; double shldl_yd; double elbr_yd; double elbl_yd; double wrstr_yd; double wrstl_yd; double ropel_hand_yd; double roper_hand_yd; } state_vars; typedef struct { double x; double y; double z; double quat1; double quat2; double quat3; double swingl_y ; double swingr_y ; double neck_y ; double hipr_y ; double hipl_y ; double kneer_y ; double kneel_y ; double ankler_y ; double anklel_y ; double shldr_y ; double shldl_y ; double elbr_y ; double elbl_y ; double wrstr_y ; double wrstl_y ; double ropel_hand_y ; double roper_hand_y ; double quat4; } small_state_vars; typedef struct { double dt; /* timestep for integration */ double time; /* total elapsed time */ double draw_dt; /* time interval for drawing */ double draw_time; /* time since last redraw */ double display_dt; /* time interval for display graphics */ double display_time; /* time since last redraw of graphics */ double control_dt; /* time interval for control computation */ double control_time; /* time since last control computation */ double plant_dt; /* time interval for plant computation */ double plant_time; /* time since last plant computation */ double send_dt; /* time interval for control computation */ double send_time; /* time since last control computation */ double record_dt; /* time interval for recording */ double record_time; /* time since last recording */ double resim_dt; /* time interval for recording resim data*/ double resim_time; /* time since last recording of resim data*/ double check_dt; /* time interval for computing energy */ double check_time; /* time since last computing energy */ double dump_dt; /* time interval for dumping data */ double dump_time; /* time since last dump of data */ double shutter_dt; double time_old; } time_vars; /* Locomotion variables. */ typedef struct { double inx; double k_necky; double k_neckyd; double k_hipy; double k_hipyd; double k_kneey; double k_kneeyd; double k_ankley; double k_ankleyd; double k_shldx; double k_shldxd; double k_shldy; double k_shldyd; double k_elby; double k_elbyd; double k_wrsty; double k_wrstyd; double k_hand; double k_handd; double k_swing_y; double k_rope_y; double body_back; double body_forward; double shld_unfolded; double elb_unfolded; double shld_folded; double elb_folded; double hip_bend; double knee_bend; double knee_out; double legs_out; double shoulder_hand; double cm_z_max; double z_thresh; double mass_total; double cm_x; double cm_y; double cm_z; double cm_x_old; double cm_y_old; double cm_z_old; double cm_xd; double cm_yd; double cm_zd; double icm_xx; double icm_xy; double icm_xz; double icm_yx; double icm_yy; double icm_yz; double icm_zx; double icm_zy; double icm_zz; double run; double step; double errest; double err; double baumgarte; double grabfiles; double draw; double write; double fov; double camera_motion; double camera_x; double camera_y; double camera_xd; double camera_yd; double camx; double camy; double camz; double camq1; double camq2; double camq3; double camq4; double viewall_x; double viewall_y; double dynState; double landingSite; } control_vars; typedef struct { double x; double y; double z; double xd; double yd; double zd; double f_x; double f_y; double f_z; } constraint_vars; extern state_vars st; extern state_vars st_d; extern control_vars ls; extern state_vars u; extern state_vars tau; extern constraint_vars handl; extern constraint_vars handr; extern constraint_vars ropel; extern constraint_vars roper; extern time_vars dynstime; extern int flag_swing; extern int flag_fly;