Fawkes API
Fawkes Development Version
|
00001 00002 /*************************************************************************** 00003 * NaoJointPositionInterface.h - Fawkes BlackBoard Interface - NaoJointPositionInterface 00004 * 00005 * Templated created: Thu Oct 12 10:49:19 2006 00006 * Copyright 2008-2011 Tim Niemueller 00007 * 00008 ****************************************************************************/ 00009 00010 /* This program is free software; you can redistribute it and/or modify 00011 * it under the terms of the GNU General Public License as published by 00012 * the Free Software Foundation; either version 2 of the License, or 00013 * (at your option) any later version. A runtime exception applies to 00014 * this software (see LICENSE.GPL_WRE file mentioned below for details). 00015 * 00016 * This program is distributed in the hope that it will be useful, 00017 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00018 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00019 * GNU Library General Public License for more details. 00020 * 00021 * Read the full text in the LICENSE.GPL_WRE file in the doc directory. 00022 */ 00023 00024 #ifndef __INTERFACES_NAOJOINTPOSITIONINTERFACE_H_ 00025 #define __INTERFACES_NAOJOINTPOSITIONINTERFACE_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 NaoJointPositionInterface : public Interface 00034 { 00035 /// @cond INTERNALS 00036 INTERFACE_MGMT_FRIENDS(NaoJointPositionInterface) 00037 /// @endcond 00038 public: 00039 /* constants */ 00040 static const uint32_t SERVO_head_yaw; 00041 static const uint32_t SERVO_head_pitch; 00042 static const uint32_t SERVO_l_shoulder_pitch; 00043 static const uint32_t SERVO_l_shoulder_roll; 00044 static const uint32_t SERVO_l_elbow_yaw; 00045 static const uint32_t SERVO_l_elbow_roll; 00046 static const uint32_t SERVO_l_wrist_yaw; 00047 static const uint32_t SERVO_l_hand; 00048 static const uint32_t SERVO_l_hip_yaw_pitch; 00049 static const uint32_t SERVO_l_hip_roll; 00050 static const uint32_t SERVO_l_hip_pitch; 00051 static const uint32_t SERVO_l_knee_pitch; 00052 static const uint32_t SERVO_l_ankle_pitch; 00053 static const uint32_t SERVO_l_ankle_roll; 00054 static const uint32_t SERVO_r_shoulder_pitch; 00055 static const uint32_t SERVO_r_shoulder_roll; 00056 static const uint32_t SERVO_r_elbow_yaw; 00057 static const uint32_t SERVO_r_elbow_roll; 00058 static const uint32_t SERVO_r_wrist_yaw; 00059 static const uint32_t SERVO_r_hand; 00060 static const uint32_t SERVO_r_hip_yaw_pitch; 00061 static const uint32_t SERVO_r_hip_roll; 00062 static const uint32_t SERVO_r_hip_pitch; 00063 static const uint32_t SERVO_r_knee_pitch; 00064 static const uint32_t SERVO_r_ankle_pitch; 00065 static const uint32_t SERVO_r_ankle_roll; 00066 static const uint32_t SERVO_min; 00067 static const uint32_t SERVO_max; 00068 00069 /** 00070 Enumeration describing the actual version of the robot that's being 00071 used. 00072 */ 00073 typedef enum { 00074 ROBOTYPE_ACADEMIC /**< 00075 Academic version with 25 DoF and touch sensors. 00076 */, 00077 ROBOTYPE_ROBOCUP /**< 00078 RoboCup version with 21 DoF. 00079 */ 00080 } RobotType; 00081 const char * tostring_RobotType(RobotType value) const; 00082 00083 private: 00084 #pragma pack(push,4) 00085 /** Internal data storage, do NOT modify! */ 00086 typedef struct { 00087 int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */ 00088 int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */ 00089 int32_t robot_type; /**< Robot type. */ 00090 uint8_t robot_version[4]; /**< 00091 Robot version. Fields are in ascending array index major, minor, micro and 00092 patch level. Currently only the first two are used by Aldebaran, but due to 00093 struct alignment we add two extra bytes. 00094 */ 00095 float head_yaw; /**< Head yaw */ 00096 float head_pitch; /**< Head pitch */ 00097 float l_shoulder_pitch; /**< Left shoulder pitch */ 00098 float l_shoulder_roll; /**< Left shoulder roll */ 00099 float l_elbow_yaw; /**< Left elbow yaw */ 00100 float l_elbow_roll; /**< Left elbow roll */ 00101 float l_wrist_yaw; /**< Left wrist yaw */ 00102 float l_hand; /**< Left hand */ 00103 float l_hip_yaw_pitch; /**< Left hip yaw pitch */ 00104 float l_hip_roll; /**< Left hip roll */ 00105 float l_hip_pitch; /**< Left hip pitch */ 00106 float l_knee_pitch; /**< Left knee pitch */ 00107 float l_ankle_pitch; /**< Left ankle pitch */ 00108 float l_ankle_roll; /**< Left ankle roll */ 00109 float r_shoulder_pitch; /**< Right shoulder pitch */ 00110 float r_shoulder_roll; /**< Right shoulder roll */ 00111 float r_elbow_yaw; /**< Right elbow yaw */ 00112 float r_elbow_roll; /**< Right elbow roll */ 00113 float r_wrist_yaw; /**< Right wrist yaw */ 00114 float r_hand; /**< Right hand */ 00115 float r_hip_yaw_pitch; /**< Right hip yaw pitch */ 00116 float r_hip_roll; /**< Right hip roll */ 00117 float r_hip_pitch; /**< Right hip pitch */ 00118 float r_knee_pitch; /**< Right knee pitch */ 00119 float r_ankle_pitch; /**< Right ankle pitch */ 00120 float r_ankle_roll; /**< Right ankle roll */ 00121 int32_t time; /**< 00122 Current reference time in ms. For real hardware this is the DCM time. 00123 Times in messages are always offsets to the current time and the current 00124 time is added before executing the command. 00125 */ 00126 } NaoJointPositionInterface_data_t; 00127 #pragma pack(pop) 00128 00129 NaoJointPositionInterface_data_t *data; 00130 00131 public: 00132 /* messages */ 00133 class SetServoMessage : public Message 00134 { 00135 private: 00136 #pragma pack(push,4) 00137 /** Internal data storage, do NOT modify! */ 00138 typedef struct { 00139 int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */ 00140 int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */ 00141 uint32_t servo; /**< A concatenated list of SERVO_* constants to 00142 define the servos that should execute the movement. The list shall consist of 00143 binary or'ed SERVO_* constants. */ 00144 float value; /**< Servo value to set for servos. */ 00145 int32_t time; /**< 00146 Current reference time in ms. For real hardware this is the DCM time. 00147 Times in messages are always offsets to the current time and the current 00148 time is added before executing the command. 00149 */ 00150 } SetServoMessage_data_t; 00151 #pragma pack(pop) 00152 00153 SetServoMessage_data_t *data; 00154 00155 public: 00156 SetServoMessage(const uint32_t ini_servo, const float ini_value, const int32_t ini_time); 00157 SetServoMessage(); 00158 ~SetServoMessage(); 00159 00160 SetServoMessage(const SetServoMessage *m); 00161 /* Methods */ 00162 uint32_t servo() const; 00163 void set_servo(const uint32_t new_servo); 00164 size_t maxlenof_servo() const; 00165 float value() const; 00166 void set_value(const float new_value); 00167 size_t maxlenof_value() const; 00168 int32_t time() const; 00169 void set_time(const int32_t new_time); 00170 size_t maxlenof_time() const; 00171 virtual Message * clone() const; 00172 }; 00173 00174 class SetServosMessage : public Message 00175 { 00176 private: 00177 #pragma pack(push,4) 00178 /** Internal data storage, do NOT modify! */ 00179 typedef struct { 00180 int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */ 00181 int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */ 00182 float head_yaw; /**< Head yaw */ 00183 float head_pitch; /**< Head pitch */ 00184 float l_shoulder_pitch; /**< Left shoulder pitch */ 00185 float l_shoulder_roll; /**< Left shoulder roll */ 00186 float l_elbow_yaw; /**< Left elbow yaw */ 00187 float l_elbow_roll; /**< Left elbow roll */ 00188 float l_hip_yaw_pitch; /**< Left hip yaw pitch */ 00189 float l_hip_roll; /**< Left hip roll */ 00190 float l_hip_pitch; /**< Left hip pitch */ 00191 float l_knee_pitch; /**< Left knee pitch */ 00192 float l_ankle_pitch; /**< Left ankle pitch */ 00193 float l_ankle_roll; /**< Left ankle roll */ 00194 float l_wrist_yaw; /**< Left wrist yaw */ 00195 float l_hand; /**< Left hand */ 00196 float r_shoulder_pitch; /**< Right shoulder pitch */ 00197 float r_shoulder_roll; /**< Right shoulder roll */ 00198 float r_elbow_yaw; /**< Right elbow yaw */ 00199 float r_elbow_roll; /**< Right elbow roll */ 00200 float r_wrist_yaw; /**< Right wrist yaw */ 00201 float r_hand; /**< Right hand */ 00202 float r_hip_yaw_pitch; /**< Right hip yaw pitch */ 00203 float r_hip_roll; /**< Right hip roll */ 00204 float r_hip_pitch; /**< Right hip pitch */ 00205 float r_knee_pitch; /**< Right knee pitch */ 00206 float r_ankle_pitch; /**< Right ankle pitch */ 00207 float r_ankle_roll; /**< Right ankle roll */ 00208 int32_t time; /**< 00209 Current reference time in ms. For real hardware this is the DCM time. 00210 Times in messages are always offsets to the current time and the current 00211 time is added before executing the command. 00212 */ 00213 } SetServosMessage_data_t; 00214 #pragma pack(pop) 00215 00216 SetServosMessage_data_t *data; 00217 00218 public: 00219 SetServosMessage(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_l_wrist_yaw, const float ini_l_hand, const float ini_r_shoulder_pitch, const float ini_r_shoulder_roll, const float ini_r_elbow_yaw, const float ini_r_elbow_roll, const float ini_r_wrist_yaw, const float ini_r_hand, 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 int32_t ini_time); 00220 SetServosMessage(); 00221 ~SetServosMessage(); 00222 00223 SetServosMessage(const SetServosMessage *m); 00224 /* Methods */ 00225 float head_yaw() const; 00226 void set_head_yaw(const float new_head_yaw); 00227 size_t maxlenof_head_yaw() const; 00228 float head_pitch() const; 00229 void set_head_pitch(const float new_head_pitch); 00230 size_t maxlenof_head_pitch() const; 00231 float l_shoulder_pitch() const; 00232 void set_l_shoulder_pitch(const float new_l_shoulder_pitch); 00233 size_t maxlenof_l_shoulder_pitch() const; 00234 float l_shoulder_roll() const; 00235 void set_l_shoulder_roll(const float new_l_shoulder_roll); 00236 size_t maxlenof_l_shoulder_roll() const; 00237 float l_elbow_yaw() const; 00238 void set_l_elbow_yaw(const float new_l_elbow_yaw); 00239 size_t maxlenof_l_elbow_yaw() const; 00240 float l_elbow_roll() const; 00241 void set_l_elbow_roll(const float new_l_elbow_roll); 00242 size_t maxlenof_l_elbow_roll() const; 00243 float l_hip_yaw_pitch() const; 00244 void set_l_hip_yaw_pitch(const float new_l_hip_yaw_pitch); 00245 size_t maxlenof_l_hip_yaw_pitch() const; 00246 float l_hip_roll() const; 00247 void set_l_hip_roll(const float new_l_hip_roll); 00248 size_t maxlenof_l_hip_roll() const; 00249 float l_hip_pitch() const; 00250 void set_l_hip_pitch(const float new_l_hip_pitch); 00251 size_t maxlenof_l_hip_pitch() const; 00252 float l_knee_pitch() const; 00253 void set_l_knee_pitch(const float new_l_knee_pitch); 00254 size_t maxlenof_l_knee_pitch() const; 00255 float l_ankle_pitch() const; 00256 void set_l_ankle_pitch(const float new_l_ankle_pitch); 00257 size_t maxlenof_l_ankle_pitch() const; 00258 float l_ankle_roll() const; 00259 void set_l_ankle_roll(const float new_l_ankle_roll); 00260 size_t maxlenof_l_ankle_roll() const; 00261 float l_wrist_yaw() const; 00262 void set_l_wrist_yaw(const float new_l_wrist_yaw); 00263 size_t maxlenof_l_wrist_yaw() const; 00264 float l_hand() const; 00265 void set_l_hand(const float new_l_hand); 00266 size_t maxlenof_l_hand() const; 00267 float r_shoulder_pitch() const; 00268 void set_r_shoulder_pitch(const float new_r_shoulder_pitch); 00269 size_t maxlenof_r_shoulder_pitch() const; 00270 float r_shoulder_roll() const; 00271 void set_r_shoulder_roll(const float new_r_shoulder_roll); 00272 size_t maxlenof_r_shoulder_roll() const; 00273 float r_elbow_yaw() const; 00274 void set_r_elbow_yaw(const float new_r_elbow_yaw); 00275 size_t maxlenof_r_elbow_yaw() const; 00276 float r_elbow_roll() const; 00277 void set_r_elbow_roll(const float new_r_elbow_roll); 00278 size_t maxlenof_r_elbow_roll() const; 00279 float r_wrist_yaw() const; 00280 void set_r_wrist_yaw(const float new_r_wrist_yaw); 00281 size_t maxlenof_r_wrist_yaw() const; 00282 float r_hand() const; 00283 void set_r_hand(const float new_r_hand); 00284 size_t maxlenof_r_hand() const; 00285 float r_hip_yaw_pitch() const; 00286 void set_r_hip_yaw_pitch(const float new_r_hip_yaw_pitch); 00287 size_t maxlenof_r_hip_yaw_pitch() const; 00288 float r_hip_roll() const; 00289 void set_r_hip_roll(const float new_r_hip_roll); 00290 size_t maxlenof_r_hip_roll() const; 00291 float r_hip_pitch() const; 00292 void set_r_hip_pitch(const float new_r_hip_pitch); 00293 size_t maxlenof_r_hip_pitch() const; 00294 float r_knee_pitch() const; 00295 void set_r_knee_pitch(const float new_r_knee_pitch); 00296 size_t maxlenof_r_knee_pitch() const; 00297 float r_ankle_pitch() const; 00298 void set_r_ankle_pitch(const float new_r_ankle_pitch); 00299 size_t maxlenof_r_ankle_pitch() const; 00300 float r_ankle_roll() const; 00301 void set_r_ankle_roll(const float new_r_ankle_roll); 00302 size_t maxlenof_r_ankle_roll() const; 00303 int32_t time() const; 00304 void set_time(const int32_t new_time); 00305 size_t maxlenof_time() const; 00306 virtual Message * clone() const; 00307 }; 00308 00309 class MoveServoMessage : public Message 00310 { 00311 private: 00312 #pragma pack(push,4) 00313 /** Internal data storage, do NOT modify! */ 00314 typedef struct { 00315 int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */ 00316 int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */ 00317 uint32_t servo; /**< 00318 A concatenated list of SERVO_* constants to define the servos 00319 that should execute the movement. The list shall consist of 00320 binary or'ed SERVO_* constants. 00321 */ 00322 float value; /**< Servo value to set for servos. */ 00323 float speed; /**< 00324 Fraction of max speed in range [0.0..1.0]. 00325 */ 00326 } MoveServoMessage_data_t; 00327 #pragma pack(pop) 00328 00329 MoveServoMessage_data_t *data; 00330 00331 public: 00332 MoveServoMessage(const uint32_t ini_servo, const float ini_value, const float ini_speed); 00333 MoveServoMessage(); 00334 ~MoveServoMessage(); 00335 00336 MoveServoMessage(const MoveServoMessage *m); 00337 /* Methods */ 00338 uint32_t servo() const; 00339 void set_servo(const uint32_t new_servo); 00340 size_t maxlenof_servo() const; 00341 float value() const; 00342 void set_value(const float new_value); 00343 size_t maxlenof_value() const; 00344 float speed() const; 00345 void set_speed(const float new_speed); 00346 size_t maxlenof_speed() const; 00347 virtual Message * clone() const; 00348 }; 00349 00350 class MoveServosMessage : public Message 00351 { 00352 private: 00353 #pragma pack(push,4) 00354 /** Internal data storage, do NOT modify! */ 00355 typedef struct { 00356 int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */ 00357 int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */ 00358 float speed; /**< 00359 Fraction of max speed in range [0.0..1.0]. 00360 */ 00361 float head_yaw; /**< Head yaw */ 00362 float head_pitch; /**< Head pitch */ 00363 float l_shoulder_pitch; /**< Left shoulder pitch */ 00364 float l_shoulder_roll; /**< Left shoulder roll */ 00365 float l_elbow_yaw; /**< Left elbow yaw */ 00366 float l_elbow_roll; /**< Left elbow roll */ 00367 float l_wrist_yaw; /**< Left wrist yaw */ 00368 float l_hand; /**< Left hand */ 00369 float l_hip_yaw_pitch; /**< Left hip yaw pitch */ 00370 float l_hip_roll; /**< Left hip roll */ 00371 float l_hip_pitch; /**< Left hip pitch */ 00372 float l_knee_pitch; /**< Left knee pitch */ 00373 float l_ankle_pitch; /**< Left ankle pitch */ 00374 float l_ankle_roll; /**< Left ankle roll */ 00375 float r_shoulder_pitch; /**< Right shoulder pitch */ 00376 float r_shoulder_roll; /**< Right shoulder roll */ 00377 float r_elbow_yaw; /**< Right elbow yaw */ 00378 float r_elbow_roll; /**< Right elbow roll */ 00379 float r_wrist_yaw; /**< Right wrist yaw */ 00380 float r_hand; /**< Right hand */ 00381 float r_hip_yaw_pitch; /**< Right hip yaw pitch */ 00382 float r_hip_roll; /**< Right hip roll */ 00383 float r_hip_pitch; /**< Right hip pitch */ 00384 float r_knee_pitch; /**< Right knee pitch */ 00385 float r_ankle_pitch; /**< Right ankle pitch */ 00386 float r_ankle_roll; /**< Right ankle roll */ 00387 } MoveServosMessage_data_t; 00388 #pragma pack(pop) 00389 00390 MoveServosMessage_data_t *data; 00391 00392 public: 00393 MoveServosMessage(const float ini_speed, 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_wrist_yaw, const float ini_l_hand, 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_shoulder_pitch, const float ini_r_shoulder_roll, const float ini_r_elbow_yaw, const float ini_r_elbow_roll, const float ini_r_wrist_yaw, const float ini_r_hand, 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); 00394 MoveServosMessage(); 00395 ~MoveServosMessage(); 00396 00397 MoveServosMessage(const MoveServosMessage *m); 00398 /* Methods */ 00399 float speed() const; 00400 void set_speed(const float new_speed); 00401 size_t maxlenof_speed() const; 00402 float head_yaw() const; 00403 void set_head_yaw(const float new_head_yaw); 00404 size_t maxlenof_head_yaw() const; 00405 float head_pitch() const; 00406 void set_head_pitch(const float new_head_pitch); 00407 size_t maxlenof_head_pitch() const; 00408 float l_shoulder_pitch() const; 00409 void set_l_shoulder_pitch(const float new_l_shoulder_pitch); 00410 size_t maxlenof_l_shoulder_pitch() const; 00411 float l_shoulder_roll() const; 00412 void set_l_shoulder_roll(const float new_l_shoulder_roll); 00413 size_t maxlenof_l_shoulder_roll() const; 00414 float l_elbow_yaw() const; 00415 void set_l_elbow_yaw(const float new_l_elbow_yaw); 00416 size_t maxlenof_l_elbow_yaw() const; 00417 float l_elbow_roll() const; 00418 void set_l_elbow_roll(const float new_l_elbow_roll); 00419 size_t maxlenof_l_elbow_roll() const; 00420 float l_wrist_yaw() const; 00421 void set_l_wrist_yaw(const float new_l_wrist_yaw); 00422 size_t maxlenof_l_wrist_yaw() const; 00423 float l_hand() const; 00424 void set_l_hand(const float new_l_hand); 00425 size_t maxlenof_l_hand() const; 00426 float l_hip_yaw_pitch() const; 00427 void set_l_hip_yaw_pitch(const float new_l_hip_yaw_pitch); 00428 size_t maxlenof_l_hip_yaw_pitch() const; 00429 float l_hip_roll() const; 00430 void set_l_hip_roll(const float new_l_hip_roll); 00431 size_t maxlenof_l_hip_roll() const; 00432 float l_hip_pitch() const; 00433 void set_l_hip_pitch(const float new_l_hip_pitch); 00434 size_t maxlenof_l_hip_pitch() const; 00435 float l_knee_pitch() const; 00436 void set_l_knee_pitch(const float new_l_knee_pitch); 00437 size_t maxlenof_l_knee_pitch() const; 00438 float l_ankle_pitch() const; 00439 void set_l_ankle_pitch(const float new_l_ankle_pitch); 00440 size_t maxlenof_l_ankle_pitch() const; 00441 float l_ankle_roll() const; 00442 void set_l_ankle_roll(const float new_l_ankle_roll); 00443 size_t maxlenof_l_ankle_roll() const; 00444 float r_shoulder_pitch() const; 00445 void set_r_shoulder_pitch(const float new_r_shoulder_pitch); 00446 size_t maxlenof_r_shoulder_pitch() const; 00447 float r_shoulder_roll() const; 00448 void set_r_shoulder_roll(const float new_r_shoulder_roll); 00449 size_t maxlenof_r_shoulder_roll() const; 00450 float r_elbow_yaw() const; 00451 void set_r_elbow_yaw(const float new_r_elbow_yaw); 00452 size_t maxlenof_r_elbow_yaw() const; 00453 float r_elbow_roll() const; 00454 void set_r_elbow_roll(const float new_r_elbow_roll); 00455 size_t maxlenof_r_elbow_roll() const; 00456 float r_wrist_yaw() const; 00457 void set_r_wrist_yaw(const float new_r_wrist_yaw); 00458 size_t maxlenof_r_wrist_yaw() const; 00459 float r_hand() const; 00460 void set_r_hand(const float new_r_hand); 00461 size_t maxlenof_r_hand() const; 00462 float r_hip_yaw_pitch() const; 00463 void set_r_hip_yaw_pitch(const float new_r_hip_yaw_pitch); 00464 size_t maxlenof_r_hip_yaw_pitch() const; 00465 float r_hip_roll() const; 00466 void set_r_hip_roll(const float new_r_hip_roll); 00467 size_t maxlenof_r_hip_roll() const; 00468 float r_hip_pitch() const; 00469 void set_r_hip_pitch(const float new_r_hip_pitch); 00470 size_t maxlenof_r_hip_pitch() const; 00471 float r_knee_pitch() const; 00472 void set_r_knee_pitch(const float new_r_knee_pitch); 00473 size_t maxlenof_r_knee_pitch() const; 00474 float r_ankle_pitch() const; 00475 void set_r_ankle_pitch(const float new_r_ankle_pitch); 00476 size_t maxlenof_r_ankle_pitch() const; 00477 float r_ankle_roll() const; 00478 void set_r_ankle_roll(const float new_r_ankle_roll); 00479 size_t maxlenof_r_ankle_roll() const; 00480 virtual Message * clone() const; 00481 }; 00482 00483 virtual bool message_valid(const Message *message) const; 00484 private: 00485 NaoJointPositionInterface(); 00486 ~NaoJointPositionInterface(); 00487 00488 public: 00489 /* Methods */ 00490 RobotType robot_type() const; 00491 void set_robot_type(const RobotType new_robot_type); 00492 size_t maxlenof_robot_type() const; 00493 uint8_t * robot_version() const; 00494 uint8_t robot_version(unsigned int index) const; 00495 void set_robot_version(unsigned int index, const uint8_t new_robot_version); 00496 void set_robot_version(const uint8_t * new_robot_version); 00497 size_t maxlenof_robot_version() const; 00498 float head_yaw() const; 00499 void set_head_yaw(const float new_head_yaw); 00500 size_t maxlenof_head_yaw() const; 00501 float head_pitch() const; 00502 void set_head_pitch(const float new_head_pitch); 00503 size_t maxlenof_head_pitch() const; 00504 float l_shoulder_pitch() const; 00505 void set_l_shoulder_pitch(const float new_l_shoulder_pitch); 00506 size_t maxlenof_l_shoulder_pitch() const; 00507 float l_shoulder_roll() const; 00508 void set_l_shoulder_roll(const float new_l_shoulder_roll); 00509 size_t maxlenof_l_shoulder_roll() const; 00510 float l_elbow_yaw() const; 00511 void set_l_elbow_yaw(const float new_l_elbow_yaw); 00512 size_t maxlenof_l_elbow_yaw() const; 00513 float l_elbow_roll() const; 00514 void set_l_elbow_roll(const float new_l_elbow_roll); 00515 size_t maxlenof_l_elbow_roll() const; 00516 float l_wrist_yaw() const; 00517 void set_l_wrist_yaw(const float new_l_wrist_yaw); 00518 size_t maxlenof_l_wrist_yaw() const; 00519 float l_hand() const; 00520 void set_l_hand(const float new_l_hand); 00521 size_t maxlenof_l_hand() const; 00522 float l_hip_yaw_pitch() const; 00523 void set_l_hip_yaw_pitch(const float new_l_hip_yaw_pitch); 00524 size_t maxlenof_l_hip_yaw_pitch() const; 00525 float l_hip_roll() const; 00526 void set_l_hip_roll(const float new_l_hip_roll); 00527 size_t maxlenof_l_hip_roll() const; 00528 float l_hip_pitch() const; 00529 void set_l_hip_pitch(const float new_l_hip_pitch); 00530 size_t maxlenof_l_hip_pitch() const; 00531 float l_knee_pitch() const; 00532 void set_l_knee_pitch(const float new_l_knee_pitch); 00533 size_t maxlenof_l_knee_pitch() const; 00534 float l_ankle_pitch() const; 00535 void set_l_ankle_pitch(const float new_l_ankle_pitch); 00536 size_t maxlenof_l_ankle_pitch() const; 00537 float l_ankle_roll() const; 00538 void set_l_ankle_roll(const float new_l_ankle_roll); 00539 size_t maxlenof_l_ankle_roll() const; 00540 float r_shoulder_pitch() const; 00541 void set_r_shoulder_pitch(const float new_r_shoulder_pitch); 00542 size_t maxlenof_r_shoulder_pitch() const; 00543 float r_shoulder_roll() const; 00544 void set_r_shoulder_roll(const float new_r_shoulder_roll); 00545 size_t maxlenof_r_shoulder_roll() const; 00546 float r_elbow_yaw() const; 00547 void set_r_elbow_yaw(const float new_r_elbow_yaw); 00548 size_t maxlenof_r_elbow_yaw() const; 00549 float r_elbow_roll() const; 00550 void set_r_elbow_roll(const float new_r_elbow_roll); 00551 size_t maxlenof_r_elbow_roll() const; 00552 float r_wrist_yaw() const; 00553 void set_r_wrist_yaw(const float new_r_wrist_yaw); 00554 size_t maxlenof_r_wrist_yaw() const; 00555 float r_hand() const; 00556 void set_r_hand(const float new_r_hand); 00557 size_t maxlenof_r_hand() const; 00558 float r_hip_yaw_pitch() const; 00559 void set_r_hip_yaw_pitch(const float new_r_hip_yaw_pitch); 00560 size_t maxlenof_r_hip_yaw_pitch() const; 00561 float r_hip_roll() const; 00562 void set_r_hip_roll(const float new_r_hip_roll); 00563 size_t maxlenof_r_hip_roll() const; 00564 float r_hip_pitch() const; 00565 void set_r_hip_pitch(const float new_r_hip_pitch); 00566 size_t maxlenof_r_hip_pitch() const; 00567 float r_knee_pitch() const; 00568 void set_r_knee_pitch(const float new_r_knee_pitch); 00569 size_t maxlenof_r_knee_pitch() const; 00570 float r_ankle_pitch() const; 00571 void set_r_ankle_pitch(const float new_r_ankle_pitch); 00572 size_t maxlenof_r_ankle_pitch() const; 00573 float r_ankle_roll() const; 00574 void set_r_ankle_roll(const float new_r_ankle_roll); 00575 size_t maxlenof_r_ankle_roll() const; 00576 int32_t time() const; 00577 void set_time(const int32_t new_time); 00578 size_t maxlenof_time() const; 00579 virtual Message * create_message(const char *type) const; 00580 00581 virtual void copy_values(const Interface *other); 00582 virtual const char * enum_tostring(const char *enumtype, int val) const; 00583 00584 }; 00585 00586 } // end namespace fawkes 00587 00588 #endif