00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef __INTERFACES_HUMANOIDMOTIONINTERFACE_H_
00025 #define __INTERFACES_HUMANOIDMOTIONINTERFACE_H_
00026
00027 #include <interface/interface.h>
00028 #include <interface/message.h>
00029 #include <interface/field_iterator.h>
00030
00031 namespace fawkes {
00032
00033 class HumanoidMotionInterface : public Interface
00034 {
00035
00036 INTERFACE_MGMT_FRIENDS(HumanoidMotionInterface)
00037
00038 public:
00039
00040
00041
00042 typedef enum {
00043 LEG_LEFT ,
00044 LEG_RIGHT
00045 } LegEnum;
00046 const char * tostring_LegEnum(LegEnum value) const;
00047
00048
00049 typedef enum {
00050 STANDUP_DETECT ,
00051 STANDUP_BACK ,
00052 STANDUP_FRONT
00053 } StandupEnum;
00054 const char * tostring_StandupEnum(StandupEnum value) const;
00055
00056
00057 typedef enum {
00058 WALK ,
00059 KICK
00060 } StiffnessMotionPatternEnum;
00061 const char * tostring_StiffnessMotionPatternEnum(StiffnessMotionPatternEnum value) const;
00062
00063 private:
00064 #pragma pack(push,4)
00065
00066 typedef struct {
00067 int64_t timestamp_sec;
00068 int64_t timestamp_usec;
00069 bool moving;
00070 LegEnum supporting_leg;
00071 float max_step_length;
00072
00073
00074 float max_step_height;
00075
00076
00077 float max_step_side;
00078
00079
00080 float max_step_turn;
00081
00082
00083 float zmp_offset_forward;
00084
00085
00086 float zmp_offset_sideward;
00087
00088
00089 float l_hip_roll_compensation;
00090
00091
00092
00093 float r_hip_roll_compensation;
00094
00095
00096
00097 float hip_height;
00098
00099
00100
00101 float torso_sideward_orientation;
00102
00103
00104
00105 bool arms_enabled;
00106
00107
00108 float shoulder_pitch_median;
00109
00110
00111 float shoulder_pitch_amplitude;
00112
00113
00114 float elbow_roll_median;
00115
00116
00117 float elbow_roll_amplitude;
00118
00119
00120 uint32_t msgid;
00121
00122
00123
00124 } HumanoidMotionInterface_data_t;
00125 #pragma pack(pop)
00126
00127 HumanoidMotionInterface_data_t *data;
00128
00129 public:
00130
00131 class SetWalkParamsMessage : public Message
00132 {
00133 private:
00134 #pragma pack(push,4)
00135
00136 typedef struct {
00137 int64_t timestamp_sec;
00138 int64_t timestamp_usec;
00139 float max_step_length;
00140
00141
00142 float max_step_height;
00143
00144
00145 float max_step_side;
00146
00147
00148 float max_step_turn;
00149
00150
00151 float zmp_offset_forward;
00152
00153
00154 float zmp_offset_sideward;
00155
00156
00157 float l_hip_roll_compensation;
00158
00159
00160
00161 float r_hip_roll_compensation;
00162
00163
00164
00165 float hip_height;
00166
00167
00168
00169 float torso_sideward_orientation;
00170
00171
00172
00173 } SetWalkParamsMessage_data_t;
00174 #pragma pack(pop)
00175
00176 SetWalkParamsMessage_data_t *data;
00177
00178 public:
00179 SetWalkParamsMessage(const float ini_max_step_length, const float ini_max_step_height, const float ini_max_step_side, const float ini_max_step_turn, const float ini_zmp_offset_forward, const float ini_zmp_offset_sideward, const float ini_l_hip_roll_compensation, const float ini_r_hip_roll_compensation, const float ini_hip_height, const float ini_torso_sideward_orientation);
00180 SetWalkParamsMessage();
00181 ~SetWalkParamsMessage();
00182
00183 SetWalkParamsMessage(const SetWalkParamsMessage *m);
00184
00185 float max_step_length() const;
00186 void set_max_step_length(const float new_max_step_length);
00187 size_t maxlenof_max_step_length() const;
00188 float max_step_height() const;
00189 void set_max_step_height(const float new_max_step_height);
00190 size_t maxlenof_max_step_height() const;
00191 float max_step_side() const;
00192 void set_max_step_side(const float new_max_step_side);
00193 size_t maxlenof_max_step_side() const;
00194 float max_step_turn() const;
00195 void set_max_step_turn(const float new_max_step_turn);
00196 size_t maxlenof_max_step_turn() const;
00197 float zmp_offset_forward() const;
00198 void set_zmp_offset_forward(const float new_zmp_offset_forward);
00199 size_t maxlenof_zmp_offset_forward() const;
00200 float zmp_offset_sideward() const;
00201 void set_zmp_offset_sideward(const float new_zmp_offset_sideward);
00202 size_t maxlenof_zmp_offset_sideward() const;
00203 float l_hip_roll_compensation() const;
00204 void set_l_hip_roll_compensation(const float new_l_hip_roll_compensation);
00205 size_t maxlenof_l_hip_roll_compensation() const;
00206 float r_hip_roll_compensation() const;
00207 void set_r_hip_roll_compensation(const float new_r_hip_roll_compensation);
00208 size_t maxlenof_r_hip_roll_compensation() const;
00209 float hip_height() const;
00210 void set_hip_height(const float new_hip_height);
00211 size_t maxlenof_hip_height() const;
00212 float torso_sideward_orientation() const;
00213 void set_torso_sideward_orientation(const float new_torso_sideward_orientation);
00214 size_t maxlenof_torso_sideward_orientation() const;
00215 virtual Message * clone() const;
00216 };
00217
00218 class SetWalkArmsParamsMessage : public Message
00219 {
00220 private:
00221 #pragma pack(push,4)
00222
00223 typedef struct {
00224 int64_t timestamp_sec;
00225 int64_t timestamp_usec;
00226 bool arms_enabled;
00227
00228
00229 float shoulder_pitch_median;
00230
00231
00232 float shoulder_pitch_amplitude;
00233
00234
00235 float elbow_roll_median;
00236
00237
00238 float elbow_roll_amplitude;
00239
00240
00241 } SetWalkArmsParamsMessage_data_t;
00242 #pragma pack(pop)
00243
00244 SetWalkArmsParamsMessage_data_t *data;
00245
00246 public:
00247 SetWalkArmsParamsMessage(const bool ini_arms_enabled, const float ini_shoulder_pitch_median, const float ini_shoulder_pitch_amplitude, const float ini_elbow_roll_median, const float ini_elbow_roll_amplitude);
00248 SetWalkArmsParamsMessage();
00249 ~SetWalkArmsParamsMessage();
00250
00251 SetWalkArmsParamsMessage(const SetWalkArmsParamsMessage *m);
00252
00253 bool is_arms_enabled() const;
00254 void set_arms_enabled(const bool new_arms_enabled);
00255 size_t maxlenof_arms_enabled() const;
00256 float shoulder_pitch_median() const;
00257 void set_shoulder_pitch_median(const float new_shoulder_pitch_median);
00258 size_t maxlenof_shoulder_pitch_median() const;
00259 float shoulder_pitch_amplitude() const;
00260 void set_shoulder_pitch_amplitude(const float new_shoulder_pitch_amplitude);
00261 size_t maxlenof_shoulder_pitch_amplitude() const;
00262 float elbow_roll_median() const;
00263 void set_elbow_roll_median(const float new_elbow_roll_median);
00264 size_t maxlenof_elbow_roll_median() const;
00265 float elbow_roll_amplitude() const;
00266 void set_elbow_roll_amplitude(const float new_elbow_roll_amplitude);
00267 size_t maxlenof_elbow_roll_amplitude() const;
00268 virtual Message * clone() const;
00269 };
00270
00271 class StopMessage : public Message
00272 {
00273 private:
00274 #pragma pack(push,4)
00275
00276 typedef struct {
00277 int64_t timestamp_sec;
00278 int64_t timestamp_usec;
00279 } StopMessage_data_t;
00280 #pragma pack(pop)
00281
00282 StopMessage_data_t *data;
00283
00284 public:
00285 StopMessage();
00286 ~StopMessage();
00287
00288 StopMessage(const StopMessage *m);
00289
00290 virtual Message * clone() const;
00291 };
00292
00293 class WalkStraightMessage : public Message
00294 {
00295 private:
00296 #pragma pack(push,4)
00297
00298 typedef struct {
00299 int64_t timestamp_sec;
00300 int64_t timestamp_usec;
00301 float distance;
00302 uint32_t num_samples;
00303
00304
00305 } WalkStraightMessage_data_t;
00306 #pragma pack(pop)
00307
00308 WalkStraightMessage_data_t *data;
00309
00310 public:
00311 WalkStraightMessage(const float ini_distance, const uint32_t ini_num_samples);
00312 WalkStraightMessage();
00313 ~WalkStraightMessage();
00314
00315 WalkStraightMessage(const WalkStraightMessage *m);
00316
00317 float distance() const;
00318 void set_distance(const float new_distance);
00319 size_t maxlenof_distance() const;
00320 uint32_t num_samples() const;
00321 void set_num_samples(const uint32_t new_num_samples);
00322 size_t maxlenof_num_samples() const;
00323 virtual Message * clone() const;
00324 };
00325
00326 class WalkSidewaysMessage : public Message
00327 {
00328 private:
00329 #pragma pack(push,4)
00330
00331 typedef struct {
00332 int64_t timestamp_sec;
00333 int64_t timestamp_usec;
00334 float distance;
00335 uint32_t num_samples;
00336
00337
00338 } WalkSidewaysMessage_data_t;
00339 #pragma pack(pop)
00340
00341 WalkSidewaysMessage_data_t *data;
00342
00343 public:
00344 WalkSidewaysMessage(const float ini_distance, const uint32_t ini_num_samples);
00345 WalkSidewaysMessage();
00346 ~WalkSidewaysMessage();
00347
00348 WalkSidewaysMessage(const WalkSidewaysMessage *m);
00349
00350 float distance() const;
00351 void set_distance(const float new_distance);
00352 size_t maxlenof_distance() const;
00353 uint32_t num_samples() const;
00354 void set_num_samples(const uint32_t new_num_samples);
00355 size_t maxlenof_num_samples() const;
00356 virtual Message * clone() const;
00357 };
00358
00359 class WalkArcMessage : public Message
00360 {
00361 private:
00362 #pragma pack(push,4)
00363
00364 typedef struct {
00365 int64_t timestamp_sec;
00366 int64_t timestamp_usec;
00367 float angle;
00368 float radius;
00369 uint32_t num_samples;
00370
00371
00372 } WalkArcMessage_data_t;
00373 #pragma pack(pop)
00374
00375 WalkArcMessage_data_t *data;
00376
00377 public:
00378 WalkArcMessage(const float ini_angle, const float ini_radius, const uint32_t ini_num_samples);
00379 WalkArcMessage();
00380 ~WalkArcMessage();
00381
00382 WalkArcMessage(const WalkArcMessage *m);
00383
00384 float angle() const;
00385 void set_angle(const float new_angle);
00386 size_t maxlenof_angle() const;
00387 float radius() const;
00388 void set_radius(const float new_radius);
00389 size_t maxlenof_radius() const;
00390 uint32_t num_samples() const;
00391 void set_num_samples(const uint32_t new_num_samples);
00392 size_t maxlenof_num_samples() const;
00393 virtual Message * clone() const;
00394 };
00395
00396 class TurnMessage : public Message
00397 {
00398 private:
00399 #pragma pack(push,4)
00400
00401 typedef struct {
00402 int64_t timestamp_sec;
00403 int64_t timestamp_usec;
00404 float angle;
00405 uint32_t num_samples;
00406
00407
00408 } TurnMessage_data_t;
00409 #pragma pack(pop)
00410
00411 TurnMessage_data_t *data;
00412
00413 public:
00414 TurnMessage(const float ini_angle, const uint32_t ini_num_samples);
00415 TurnMessage();
00416 ~TurnMessage();
00417
00418 TurnMessage(const TurnMessage *m);
00419
00420 float angle() const;
00421 void set_angle(const float new_angle);
00422 size_t maxlenof_angle() const;
00423 uint32_t num_samples() const;
00424 void set_num_samples(const uint32_t new_num_samples);
00425 size_t maxlenof_num_samples() const;
00426 virtual Message * clone() const;
00427 };
00428
00429 class KickMessage : public Message
00430 {
00431 private:
00432 #pragma pack(push,4)
00433
00434 typedef struct {
00435 int64_t timestamp_sec;
00436 int64_t timestamp_usec;
00437 LegEnum leg;
00438 float strength;
00439 } KickMessage_data_t;
00440 #pragma pack(pop)
00441
00442 KickMessage_data_t *data;
00443
00444 public:
00445 KickMessage(const LegEnum ini_leg, const float ini_strength);
00446 KickMessage();
00447 ~KickMessage();
00448
00449 KickMessage(const KickMessage *m);
00450
00451 LegEnum leg() const;
00452 void set_leg(const LegEnum new_leg);
00453 size_t maxlenof_leg() const;
00454 float strength() const;
00455 void set_strength(const float new_strength);
00456 size_t maxlenof_strength() const;
00457 virtual Message * clone() const;
00458 };
00459
00460 class ParkMessage : public Message
00461 {
00462 private:
00463 #pragma pack(push,4)
00464
00465 typedef struct {
00466 int64_t timestamp_sec;
00467 int64_t timestamp_usec;
00468 float time_sec;
00469 } ParkMessage_data_t;
00470 #pragma pack(pop)
00471
00472 ParkMessage_data_t *data;
00473
00474 public:
00475 ParkMessage(const float ini_time_sec);
00476 ParkMessage();
00477 ~ParkMessage();
00478
00479 ParkMessage(const ParkMessage *m);
00480
00481 float time_sec() const;
00482 void set_time_sec(const float new_time_sec);
00483 size_t maxlenof_time_sec() const;
00484 virtual Message * clone() const;
00485 };
00486
00487 class GetUpMessage : public Message
00488 {
00489 private:
00490 #pragma pack(push,4)
00491
00492 typedef struct {
00493 int64_t timestamp_sec;
00494 int64_t timestamp_usec;
00495 float time_sec;
00496 } GetUpMessage_data_t;
00497 #pragma pack(pop)
00498
00499 GetUpMessage_data_t *data;
00500
00501 public:
00502 GetUpMessage(const float ini_time_sec);
00503 GetUpMessage();
00504 ~GetUpMessage();
00505
00506 GetUpMessage(const GetUpMessage *m);
00507
00508 float time_sec() const;
00509 void set_time_sec(const float new_time_sec);
00510 size_t maxlenof_time_sec() const;
00511 virtual Message * clone() const;
00512 };
00513
00514 class StandupMessage : public Message
00515 {
00516 private:
00517 #pragma pack(push,4)
00518
00519 typedef struct {
00520 int64_t timestamp_sec;
00521 int64_t timestamp_usec;
00522 StandupEnum from_pos;
00523 } StandupMessage_data_t;
00524 #pragma pack(pop)
00525
00526 StandupMessage_data_t *data;
00527
00528 public:
00529 StandupMessage(const StandupEnum ini_from_pos);
00530 StandupMessage();
00531 ~StandupMessage();
00532
00533 StandupMessage(const StandupMessage *m);
00534
00535 StandupEnum from_pos() const;
00536 void set_from_pos(const StandupEnum new_from_pos);
00537 size_t maxlenof_from_pos() const;
00538 virtual Message * clone() const;
00539 };
00540
00541 class YawPitchHeadMessage : public Message
00542 {
00543 private:
00544 #pragma pack(push,4)
00545
00546 typedef struct {
00547 int64_t timestamp_sec;
00548 int64_t timestamp_usec;
00549 float yaw;
00550 float pitch;
00551 float time_sec;
00552 } YawPitchHeadMessage_data_t;
00553 #pragma pack(pop)
00554
00555 YawPitchHeadMessage_data_t *data;
00556
00557 public:
00558 YawPitchHeadMessage(const float ini_yaw, const float ini_pitch, const float ini_time_sec);
00559 YawPitchHeadMessage();
00560 ~YawPitchHeadMessage();
00561
00562 YawPitchHeadMessage(const YawPitchHeadMessage *m);
00563
00564 float yaw() const;
00565 void set_yaw(const float new_yaw);
00566 size_t maxlenof_yaw() const;
00567 float pitch() const;
00568 void set_pitch(const float new_pitch);
00569 size_t maxlenof_pitch() const;
00570 float time_sec() const;
00571 void set_time_sec(const float new_time_sec);
00572 size_t maxlenof_time_sec() const;
00573 virtual Message * clone() const;
00574 };
00575
00576 class SetStiffnessParamsMessage : public Message
00577 {
00578 private:
00579 #pragma pack(push,4)
00580
00581 typedef struct {
00582 int64_t timestamp_sec;
00583 int64_t timestamp_usec;
00584 StiffnessMotionPatternEnum motion_pattern;
00585 float head_yaw;
00586 float head_pitch;
00587 float l_shoulder_pitch;
00588 float l_shoulder_roll;
00589 float l_elbow_yaw;
00590 float l_elbow_roll;
00591 float l_hip_yaw_pitch;
00592 float l_hip_roll;
00593 float l_hip_pitch;
00594 float l_knee_pitch;
00595 float l_ankle_pitch;
00596 float l_ankle_roll;
00597 float r_hip_yaw_pitch;
00598 float r_hip_roll;
00599 float r_hip_pitch;
00600 float r_knee_pitch;
00601 float r_ankle_pitch;
00602 float r_ankle_roll;
00603 float r_shoulder_pitch;
00604 float r_shoulder_roll;
00605 float r_elbow_yaw;
00606 float r_elbow_roll;
00607 } SetStiffnessParamsMessage_data_t;
00608 #pragma pack(pop)
00609
00610 SetStiffnessParamsMessage_data_t *data;
00611
00612 public:
00613 SetStiffnessParamsMessage(const StiffnessMotionPatternEnum ini_motion_pattern, const float ini_head_yaw, const float ini_head_pitch, const float ini_l_shoulder_pitch, const float ini_l_shoulder_roll, const float ini_l_elbow_yaw, const float ini_l_elbow_roll, const float ini_l_hip_yaw_pitch, const float ini_l_hip_roll, const float ini_l_hip_pitch, const float ini_l_knee_pitch, const float ini_l_ankle_pitch, const float ini_l_ankle_roll, const float ini_r_hip_yaw_pitch, const float ini_r_hip_roll, const float ini_r_hip_pitch, const float ini_r_knee_pitch, const float ini_r_ankle_pitch, const float ini_r_ankle_roll, const float ini_r_shoulder_pitch, const float ini_r_shoulder_roll, const float ini_r_elbow_yaw, const float ini_r_elbow_roll);
00614 SetStiffnessParamsMessage();
00615 ~SetStiffnessParamsMessage();
00616
00617 SetStiffnessParamsMessage(const SetStiffnessParamsMessage *m);
00618
00619 StiffnessMotionPatternEnum motion_pattern() const;
00620 void set_motion_pattern(const StiffnessMotionPatternEnum new_motion_pattern);
00621 size_t maxlenof_motion_pattern() const;
00622 float head_yaw() const;
00623 void set_head_yaw(const float new_head_yaw);
00624 size_t maxlenof_head_yaw() const;
00625 float head_pitch() const;
00626 void set_head_pitch(const float new_head_pitch);
00627 size_t maxlenof_head_pitch() const;
00628 float l_shoulder_pitch() const;
00629 void set_l_shoulder_pitch(const float new_l_shoulder_pitch);
00630 size_t maxlenof_l_shoulder_pitch() const;
00631 float l_shoulder_roll() const;
00632 void set_l_shoulder_roll(const float new_l_shoulder_roll);
00633 size_t maxlenof_l_shoulder_roll() const;
00634 float l_elbow_yaw() const;
00635 void set_l_elbow_yaw(const float new_l_elbow_yaw);
00636 size_t maxlenof_l_elbow_yaw() const;
00637 float l_elbow_roll() const;
00638 void set_l_elbow_roll(const float new_l_elbow_roll);
00639 size_t maxlenof_l_elbow_roll() const;
00640 float l_hip_yaw_pitch() const;
00641 void set_l_hip_yaw_pitch(const float new_l_hip_yaw_pitch);
00642 size_t maxlenof_l_hip_yaw_pitch() const;
00643 float l_hip_roll() const;
00644 void set_l_hip_roll(const float new_l_hip_roll);
00645 size_t maxlenof_l_hip_roll() const;
00646 float l_hip_pitch() const;
00647 void set_l_hip_pitch(const float new_l_hip_pitch);
00648 size_t maxlenof_l_hip_pitch() const;
00649 float l_knee_pitch() const;
00650 void set_l_knee_pitch(const float new_l_knee_pitch);
00651 size_t maxlenof_l_knee_pitch() const;
00652 float l_ankle_pitch() const;
00653 void set_l_ankle_pitch(const float new_l_ankle_pitch);
00654 size_t maxlenof_l_ankle_pitch() const;
00655 float l_ankle_roll() const;
00656 void set_l_ankle_roll(const float new_l_ankle_roll);
00657 size_t maxlenof_l_ankle_roll() const;
00658 float r_hip_yaw_pitch() const;
00659 void set_r_hip_yaw_pitch(const float new_r_hip_yaw_pitch);
00660 size_t maxlenof_r_hip_yaw_pitch() const;
00661 float r_hip_roll() const;
00662 void set_r_hip_roll(const float new_r_hip_roll);
00663 size_t maxlenof_r_hip_roll() const;
00664 float r_hip_pitch() const;
00665 void set_r_hip_pitch(const float new_r_hip_pitch);
00666 size_t maxlenof_r_hip_pitch() const;
00667 float r_knee_pitch() const;
00668 void set_r_knee_pitch(const float new_r_knee_pitch);
00669 size_t maxlenof_r_knee_pitch() const;
00670 float r_ankle_pitch() const;
00671 void set_r_ankle_pitch(const float new_r_ankle_pitch);
00672 size_t maxlenof_r_ankle_pitch() const;
00673 float r_ankle_roll() const;
00674 void set_r_ankle_roll(const float new_r_ankle_roll);
00675 size_t maxlenof_r_ankle_roll() const;
00676 float r_shoulder_pitch() const;
00677 void set_r_shoulder_pitch(const float new_r_shoulder_pitch);
00678 size_t maxlenof_r_shoulder_pitch() const;
00679 float r_shoulder_roll() const;
00680 void set_r_shoulder_roll(const float new_r_shoulder_roll);
00681 size_t maxlenof_r_shoulder_roll() const;
00682 float r_elbow_yaw() const;
00683 void set_r_elbow_yaw(const float new_r_elbow_yaw);
00684 size_t maxlenof_r_elbow_yaw() const;
00685 float r_elbow_roll() const;
00686 void set_r_elbow_roll(const float new_r_elbow_roll);
00687 size_t maxlenof_r_elbow_roll() const;
00688 virtual Message * clone() const;
00689 };
00690
00691 virtual bool message_valid(const Message *message) const;
00692 private:
00693 HumanoidMotionInterface();
00694 ~HumanoidMotionInterface();
00695
00696 public:
00697
00698 bool is_moving() const;
00699 void set_moving(const bool new_moving);
00700 size_t maxlenof_moving() const;
00701 LegEnum supporting_leg() const;
00702 void set_supporting_leg(const LegEnum new_supporting_leg);
00703 size_t maxlenof_supporting_leg() const;
00704 float max_step_length() const;
00705 void set_max_step_length(const float new_max_step_length);
00706 size_t maxlenof_max_step_length() const;
00707 float max_step_height() const;
00708 void set_max_step_height(const float new_max_step_height);
00709 size_t maxlenof_max_step_height() const;
00710 float max_step_side() const;
00711 void set_max_step_side(const float new_max_step_side);
00712 size_t maxlenof_max_step_side() const;
00713 float max_step_turn() const;
00714 void set_max_step_turn(const float new_max_step_turn);
00715 size_t maxlenof_max_step_turn() const;
00716 float zmp_offset_forward() const;
00717 void set_zmp_offset_forward(const float new_zmp_offset_forward);
00718 size_t maxlenof_zmp_offset_forward() const;
00719 float zmp_offset_sideward() const;
00720 void set_zmp_offset_sideward(const float new_zmp_offset_sideward);
00721 size_t maxlenof_zmp_offset_sideward() const;
00722 float l_hip_roll_compensation() const;
00723 void set_l_hip_roll_compensation(const float new_l_hip_roll_compensation);
00724 size_t maxlenof_l_hip_roll_compensation() const;
00725 float r_hip_roll_compensation() const;
00726 void set_r_hip_roll_compensation(const float new_r_hip_roll_compensation);
00727 size_t maxlenof_r_hip_roll_compensation() const;
00728 float hip_height() const;
00729 void set_hip_height(const float new_hip_height);
00730 size_t maxlenof_hip_height() const;
00731 float torso_sideward_orientation() const;
00732 void set_torso_sideward_orientation(const float new_torso_sideward_orientation);
00733 size_t maxlenof_torso_sideward_orientation() const;
00734 bool is_arms_enabled() const;
00735 void set_arms_enabled(const bool new_arms_enabled);
00736 size_t maxlenof_arms_enabled() const;
00737 float shoulder_pitch_median() const;
00738 void set_shoulder_pitch_median(const float new_shoulder_pitch_median);
00739 size_t maxlenof_shoulder_pitch_median() const;
00740 float shoulder_pitch_amplitude() const;
00741 void set_shoulder_pitch_amplitude(const float new_shoulder_pitch_amplitude);
00742 size_t maxlenof_shoulder_pitch_amplitude() const;
00743 float elbow_roll_median() const;
00744 void set_elbow_roll_median(const float new_elbow_roll_median);
00745 size_t maxlenof_elbow_roll_median() const;
00746 float elbow_roll_amplitude() const;
00747 void set_elbow_roll_amplitude(const float new_elbow_roll_amplitude);
00748 size_t maxlenof_elbow_roll_amplitude() const;
00749 uint32_t msgid() const;
00750 void set_msgid(const uint32_t new_msgid);
00751 size_t maxlenof_msgid() const;
00752 virtual Message * create_message(const char *type) const;
00753
00754 virtual void copy_values(const Interface *other);
00755 virtual const char * enum_tostring(const char *enumtype, int val) const;
00756
00757 };
00758
00759 }
00760
00761 #endif