00001
00002 #ifndef PR2_MANIPULATION_CONTROLLERS_MESSAGE_JINVTELEOPCONTROLLERSTATE_H
00003 #define PR2_MANIPULATION_CONTROLLERS_MESSAGE_JINVTELEOPCONTROLLERSTATE_H
00004 #include <string>
00005 #include <vector>
00006 #include <map>
00007 #include <ostream>
00008 #include "ros/serialization.h"
00009 #include "ros/builtin_message_traits.h"
00010 #include "ros/message_operations.h"
00011 #include "ros/time.h"
00012
00013 #include "ros/macros.h"
00014
00015 #include "ros/assert.h"
00016
00017 #include "std_msgs/Header.h"
00018 #include "geometry_msgs/PoseStamped.h"
00019 #include "geometry_msgs/PoseStamped.h"
00020 #include "geometry_msgs/PoseStamped.h"
00021 #include "geometry_msgs/Twist.h"
00022 #include "geometry_msgs/Twist.h"
00023 #include "geometry_msgs/Twist.h"
00024 #include "geometry_msgs/Wrench.h"
00025 #include "std_msgs/Float64MultiArray.h"
00026 #include "std_msgs/Float64MultiArray.h"
00027
00028 namespace pr2_manipulation_controllers
00029 {
00030 template <class ContainerAllocator>
00031 struct JinvTeleopControllerState_ {
00032 typedef JinvTeleopControllerState_<ContainerAllocator> Type;
00033
00034 JinvTeleopControllerState_()
00035 : header()
00036 , x()
00037 , x_desi()
00038 , x_desi_filtered()
00039 , x_err()
00040 , xd()
00041 , xd_desi()
00042 , F()
00043 , q_proxy()
00044 , qd_pose()
00045 , qd_posture()
00046 , qd_posture_raw()
00047 , qd_desi()
00048 , tau()
00049 , J()
00050 , N()
00051 , df(0.0)
00052 , dx(0.0)
00053 , Df(0.0)
00054 , Dx(0.0)
00055 , stiffness(0.0)
00056 , compliance(0.0)
00057 {
00058 }
00059
00060 JinvTeleopControllerState_(const ContainerAllocator& _alloc)
00061 : header(_alloc)
00062 , x(_alloc)
00063 , x_desi(_alloc)
00064 , x_desi_filtered(_alloc)
00065 , x_err(_alloc)
00066 , xd(_alloc)
00067 , xd_desi(_alloc)
00068 , F(_alloc)
00069 , q_proxy(_alloc)
00070 , qd_pose(_alloc)
00071 , qd_posture(_alloc)
00072 , qd_posture_raw(_alloc)
00073 , qd_desi(_alloc)
00074 , tau(_alloc)
00075 , J(_alloc)
00076 , N(_alloc)
00077 , df(0.0)
00078 , dx(0.0)
00079 , Df(0.0)
00080 , Dx(0.0)
00081 , stiffness(0.0)
00082 , compliance(0.0)
00083 {
00084 }
00085
00086 typedef ::std_msgs::Header_<ContainerAllocator> _header_type;
00087 ::std_msgs::Header_<ContainerAllocator> header;
00088
00089 typedef ::geometry_msgs::PoseStamped_<ContainerAllocator> _x_type;
00090 ::geometry_msgs::PoseStamped_<ContainerAllocator> x;
00091
00092 typedef ::geometry_msgs::PoseStamped_<ContainerAllocator> _x_desi_type;
00093 ::geometry_msgs::PoseStamped_<ContainerAllocator> x_desi;
00094
00095 typedef ::geometry_msgs::PoseStamped_<ContainerAllocator> _x_desi_filtered_type;
00096 ::geometry_msgs::PoseStamped_<ContainerAllocator> x_desi_filtered;
00097
00098 typedef ::geometry_msgs::Twist_<ContainerAllocator> _x_err_type;
00099 ::geometry_msgs::Twist_<ContainerAllocator> x_err;
00100
00101 typedef ::geometry_msgs::Twist_<ContainerAllocator> _xd_type;
00102 ::geometry_msgs::Twist_<ContainerAllocator> xd;
00103
00104 typedef ::geometry_msgs::Twist_<ContainerAllocator> _xd_desi_type;
00105 ::geometry_msgs::Twist_<ContainerAllocator> xd_desi;
00106
00107 typedef ::geometry_msgs::Wrench_<ContainerAllocator> _F_type;
00108 ::geometry_msgs::Wrench_<ContainerAllocator> F;
00109
00110 typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _q_proxy_type;
00111 std::vector<double, typename ContainerAllocator::template rebind<double>::other > q_proxy;
00112
00113 typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _qd_pose_type;
00114 std::vector<double, typename ContainerAllocator::template rebind<double>::other > qd_pose;
00115
00116 typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _qd_posture_type;
00117 std::vector<double, typename ContainerAllocator::template rebind<double>::other > qd_posture;
00118
00119 typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _qd_posture_raw_type;
00120 std::vector<double, typename ContainerAllocator::template rebind<double>::other > qd_posture_raw;
00121
00122 typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _qd_desi_type;
00123 std::vector<double, typename ContainerAllocator::template rebind<double>::other > qd_desi;
00124
00125 typedef std::vector<double, typename ContainerAllocator::template rebind<double>::other > _tau_type;
00126 std::vector<double, typename ContainerAllocator::template rebind<double>::other > tau;
00127
00128 typedef ::std_msgs::Float64MultiArray_<ContainerAllocator> _J_type;
00129 ::std_msgs::Float64MultiArray_<ContainerAllocator> J;
00130
00131 typedef ::std_msgs::Float64MultiArray_<ContainerAllocator> _N_type;
00132 ::std_msgs::Float64MultiArray_<ContainerAllocator> N;
00133
00134 typedef double _df_type;
00135 double df;
00136
00137 typedef double _dx_type;
00138 double dx;
00139
00140 typedef double _Df_type;
00141 double Df;
00142
00143 typedef double _Dx_type;
00144 double Dx;
00145
00146 typedef double _stiffness_type;
00147 double stiffness;
00148
00149 typedef double _compliance_type;
00150 double compliance;
00151
00152
00153 typedef boost::shared_ptr< ::pr2_manipulation_controllers::JinvTeleopControllerState_<ContainerAllocator> > Ptr;
00154 typedef boost::shared_ptr< ::pr2_manipulation_controllers::JinvTeleopControllerState_<ContainerAllocator> const> ConstPtr;
00155 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00156 };
00157 typedef ::pr2_manipulation_controllers::JinvTeleopControllerState_<std::allocator<void> > JinvTeleopControllerState;
00158
00159 typedef boost::shared_ptr< ::pr2_manipulation_controllers::JinvTeleopControllerState> JinvTeleopControllerStatePtr;
00160 typedef boost::shared_ptr< ::pr2_manipulation_controllers::JinvTeleopControllerState const> JinvTeleopControllerStateConstPtr;
00161
00162
00163 template<typename ContainerAllocator>
00164 std::ostream& operator<<(std::ostream& s, const ::pr2_manipulation_controllers::JinvTeleopControllerState_<ContainerAllocator> & v)
00165 {
00166 ros::message_operations::Printer< ::pr2_manipulation_controllers::JinvTeleopControllerState_<ContainerAllocator> >::stream(s, "", v);
00167 return s;}
00168
00169 }
00170
00171 namespace ros
00172 {
00173 namespace message_traits
00174 {
00175 template<class ContainerAllocator> struct IsMessage< ::pr2_manipulation_controllers::JinvTeleopControllerState_<ContainerAllocator> > : public TrueType {};
00176 template<class ContainerAllocator> struct IsMessage< ::pr2_manipulation_controllers::JinvTeleopControllerState_<ContainerAllocator> const> : public TrueType {};
00177 template<class ContainerAllocator>
00178 struct MD5Sum< ::pr2_manipulation_controllers::JinvTeleopControllerState_<ContainerAllocator> > {
00179 static const char* value()
00180 {
00181 return "1456444fe71f72390283aef7aca2934d";
00182 }
00183
00184 static const char* value(const ::pr2_manipulation_controllers::JinvTeleopControllerState_<ContainerAllocator> &) { return value(); }
00185 static const uint64_t static_value1 = 0x1456444fe71f7239ULL;
00186 static const uint64_t static_value2 = 0x0283aef7aca2934dULL;
00187 };
00188
00189 template<class ContainerAllocator>
00190 struct DataType< ::pr2_manipulation_controllers::JinvTeleopControllerState_<ContainerAllocator> > {
00191 static const char* value()
00192 {
00193 return "pr2_manipulation_controllers/JinvTeleopControllerState";
00194 }
00195
00196 static const char* value(const ::pr2_manipulation_controllers::JinvTeleopControllerState_<ContainerAllocator> &) { return value(); }
00197 };
00198
00199 template<class ContainerAllocator>
00200 struct Definition< ::pr2_manipulation_controllers::JinvTeleopControllerState_<ContainerAllocator> > {
00201 static const char* value()
00202 {
00203 return "Header header\n\
00204 geometry_msgs/PoseStamped x\n\
00205 geometry_msgs/PoseStamped x_desi\n\
00206 geometry_msgs/PoseStamped x_desi_filtered\n\
00207 geometry_msgs/Twist x_err\n\
00208 geometry_msgs/Twist xd\n\
00209 geometry_msgs/Twist xd_desi\n\
00210 geometry_msgs/Wrench F\n\
00211 float64[] q_proxy\n\
00212 float64[] qd_pose\n\
00213 float64[] qd_posture\n\
00214 float64[] qd_posture_raw\n\
00215 float64[] qd_desi\n\
00216 float64[] tau\n\
00217 std_msgs/Float64MultiArray J\n\
00218 std_msgs/Float64MultiArray N\n\
00219 \n\
00220 # Environmental stiffness\n\
00221 float64 df\n\
00222 float64 dx\n\
00223 float64 Df\n\
00224 float64 Dx\n\
00225 float64 stiffness\n\
00226 float64 compliance\n\
00227 \n\
00228 ================================================================================\n\
00229 MSG: std_msgs/Header\n\
00230 # Standard metadata for higher-level stamped data types.\n\
00231 # This is generally used to communicate timestamped data \n\
00232 # in a particular coordinate frame.\n\
00233 # \n\
00234 # sequence ID: consecutively increasing ID \n\
00235 uint32 seq\n\
00236 #Two-integer timestamp that is expressed as:\n\
00237 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00238 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00239 # time-handling sugar is provided by the client library\n\
00240 time stamp\n\
00241 #Frame this data is associated with\n\
00242 # 0: no frame\n\
00243 # 1: global frame\n\
00244 string frame_id\n\
00245 \n\
00246 ================================================================================\n\
00247 MSG: geometry_msgs/PoseStamped\n\
00248 # A Pose with reference coordinate frame and timestamp\n\
00249 Header header\n\
00250 Pose pose\n\
00251 \n\
00252 ================================================================================\n\
00253 MSG: geometry_msgs/Pose\n\
00254 # A representation of pose in free space, composed of postion and orientation. \n\
00255 Point position\n\
00256 Quaternion orientation\n\
00257 \n\
00258 ================================================================================\n\
00259 MSG: geometry_msgs/Point\n\
00260 # This contains the position of a point in free space\n\
00261 float64 x\n\
00262 float64 y\n\
00263 float64 z\n\
00264 \n\
00265 ================================================================================\n\
00266 MSG: geometry_msgs/Quaternion\n\
00267 # This represents an orientation in free space in quaternion form.\n\
00268 \n\
00269 float64 x\n\
00270 float64 y\n\
00271 float64 z\n\
00272 float64 w\n\
00273 \n\
00274 ================================================================================\n\
00275 MSG: geometry_msgs/Twist\n\
00276 # This expresses velocity in free space broken into its linear and angular parts.\n\
00277 Vector3 linear\n\
00278 Vector3 angular\n\
00279 \n\
00280 ================================================================================\n\
00281 MSG: geometry_msgs/Vector3\n\
00282 # This represents a vector in free space. \n\
00283 \n\
00284 float64 x\n\
00285 float64 y\n\
00286 float64 z\n\
00287 ================================================================================\n\
00288 MSG: geometry_msgs/Wrench\n\
00289 # This represents force in free space, separated into\n\
00290 # its linear and angular parts.\n\
00291 Vector3 force\n\
00292 Vector3 torque\n\
00293 \n\
00294 ================================================================================\n\
00295 MSG: std_msgs/Float64MultiArray\n\
00296 # Please look at the MultiArrayLayout message definition for\n\
00297 # documentation on all multiarrays.\n\
00298 \n\
00299 MultiArrayLayout layout # specification of data layout\n\
00300 float64[] data # array of data\n\
00301 \n\
00302 \n\
00303 ================================================================================\n\
00304 MSG: std_msgs/MultiArrayLayout\n\
00305 # The multiarray declares a generic multi-dimensional array of a\n\
00306 # particular data type. Dimensions are ordered from outer most\n\
00307 # to inner most.\n\
00308 \n\
00309 MultiArrayDimension[] dim # Array of dimension properties\n\
00310 uint32 data_offset # padding bytes at front of data\n\
00311 \n\
00312 # Accessors should ALWAYS be written in terms of dimension stride\n\
00313 # and specified outer-most dimension first.\n\
00314 # \n\
00315 # multiarray(i,j,k) = data[data_offset + dim_stride[1]*i + dim_stride[2]*j + k]\n\
00316 #\n\
00317 # A standard, 3-channel 640x480 image with interleaved color channels\n\
00318 # would be specified as:\n\
00319 #\n\
00320 # dim[0].label = \"height\"\n\
00321 # dim[0].size = 480\n\
00322 # dim[0].stride = 3*640*480 = 921600 (note dim[0] stride is just size of image)\n\
00323 # dim[1].label = \"width\"\n\
00324 # dim[1].size = 640\n\
00325 # dim[1].stride = 3*640 = 1920\n\
00326 # dim[2].label = \"channel\"\n\
00327 # dim[2].size = 3\n\
00328 # dim[2].stride = 3\n\
00329 #\n\
00330 # multiarray(i,j,k) refers to the ith row, jth column, and kth channel.\n\
00331 ================================================================================\n\
00332 MSG: std_msgs/MultiArrayDimension\n\
00333 string label # label of given dimension\n\
00334 uint32 size # size of given dimension (in type units)\n\
00335 uint32 stride # stride of given dimension\n\
00336 ";
00337 }
00338
00339 static const char* value(const ::pr2_manipulation_controllers::JinvTeleopControllerState_<ContainerAllocator> &) { return value(); }
00340 };
00341
00342 template<class ContainerAllocator> struct HasHeader< ::pr2_manipulation_controllers::JinvTeleopControllerState_<ContainerAllocator> > : public TrueType {};
00343 template<class ContainerAllocator> struct HasHeader< const ::pr2_manipulation_controllers::JinvTeleopControllerState_<ContainerAllocator> > : public TrueType {};
00344 }
00345 }
00346
00347 namespace ros
00348 {
00349 namespace serialization
00350 {
00351
00352 template<class ContainerAllocator> struct Serializer< ::pr2_manipulation_controllers::JinvTeleopControllerState_<ContainerAllocator> >
00353 {
00354 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00355 {
00356 stream.next(m.header);
00357 stream.next(m.x);
00358 stream.next(m.x_desi);
00359 stream.next(m.x_desi_filtered);
00360 stream.next(m.x_err);
00361 stream.next(m.xd);
00362 stream.next(m.xd_desi);
00363 stream.next(m.F);
00364 stream.next(m.q_proxy);
00365 stream.next(m.qd_pose);
00366 stream.next(m.qd_posture);
00367 stream.next(m.qd_posture_raw);
00368 stream.next(m.qd_desi);
00369 stream.next(m.tau);
00370 stream.next(m.J);
00371 stream.next(m.N);
00372 stream.next(m.df);
00373 stream.next(m.dx);
00374 stream.next(m.Df);
00375 stream.next(m.Dx);
00376 stream.next(m.stiffness);
00377 stream.next(m.compliance);
00378 }
00379
00380 ROS_DECLARE_ALLINONE_SERIALIZER;
00381 };
00382 }
00383 }
00384
00385 namespace ros
00386 {
00387 namespace message_operations
00388 {
00389
00390 template<class ContainerAllocator>
00391 struct Printer< ::pr2_manipulation_controllers::JinvTeleopControllerState_<ContainerAllocator> >
00392 {
00393 template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::pr2_manipulation_controllers::JinvTeleopControllerState_<ContainerAllocator> & v)
00394 {
00395 s << indent << "header: ";
00396 s << std::endl;
00397 Printer< ::std_msgs::Header_<ContainerAllocator> >::stream(s, indent + " ", v.header);
00398 s << indent << "x: ";
00399 s << std::endl;
00400 Printer< ::geometry_msgs::PoseStamped_<ContainerAllocator> >::stream(s, indent + " ", v.x);
00401 s << indent << "x_desi: ";
00402 s << std::endl;
00403 Printer< ::geometry_msgs::PoseStamped_<ContainerAllocator> >::stream(s, indent + " ", v.x_desi);
00404 s << indent << "x_desi_filtered: ";
00405 s << std::endl;
00406 Printer< ::geometry_msgs::PoseStamped_<ContainerAllocator> >::stream(s, indent + " ", v.x_desi_filtered);
00407 s << indent << "x_err: ";
00408 s << std::endl;
00409 Printer< ::geometry_msgs::Twist_<ContainerAllocator> >::stream(s, indent + " ", v.x_err);
00410 s << indent << "xd: ";
00411 s << std::endl;
00412 Printer< ::geometry_msgs::Twist_<ContainerAllocator> >::stream(s, indent + " ", v.xd);
00413 s << indent << "xd_desi: ";
00414 s << std::endl;
00415 Printer< ::geometry_msgs::Twist_<ContainerAllocator> >::stream(s, indent + " ", v.xd_desi);
00416 s << indent << "F: ";
00417 s << std::endl;
00418 Printer< ::geometry_msgs::Wrench_<ContainerAllocator> >::stream(s, indent + " ", v.F);
00419 s << indent << "q_proxy[]" << std::endl;
00420 for (size_t i = 0; i < v.q_proxy.size(); ++i)
00421 {
00422 s << indent << " q_proxy[" << i << "]: ";
00423 Printer<double>::stream(s, indent + " ", v.q_proxy[i]);
00424 }
00425 s << indent << "qd_pose[]" << std::endl;
00426 for (size_t i = 0; i < v.qd_pose.size(); ++i)
00427 {
00428 s << indent << " qd_pose[" << i << "]: ";
00429 Printer<double>::stream(s, indent + " ", v.qd_pose[i]);
00430 }
00431 s << indent << "qd_posture[]" << std::endl;
00432 for (size_t i = 0; i < v.qd_posture.size(); ++i)
00433 {
00434 s << indent << " qd_posture[" << i << "]: ";
00435 Printer<double>::stream(s, indent + " ", v.qd_posture[i]);
00436 }
00437 s << indent << "qd_posture_raw[]" << std::endl;
00438 for (size_t i = 0; i < v.qd_posture_raw.size(); ++i)
00439 {
00440 s << indent << " qd_posture_raw[" << i << "]: ";
00441 Printer<double>::stream(s, indent + " ", v.qd_posture_raw[i]);
00442 }
00443 s << indent << "qd_desi[]" << std::endl;
00444 for (size_t i = 0; i < v.qd_desi.size(); ++i)
00445 {
00446 s << indent << " qd_desi[" << i << "]: ";
00447 Printer<double>::stream(s, indent + " ", v.qd_desi[i]);
00448 }
00449 s << indent << "tau[]" << std::endl;
00450 for (size_t i = 0; i < v.tau.size(); ++i)
00451 {
00452 s << indent << " tau[" << i << "]: ";
00453 Printer<double>::stream(s, indent + " ", v.tau[i]);
00454 }
00455 s << indent << "J: ";
00456 s << std::endl;
00457 Printer< ::std_msgs::Float64MultiArray_<ContainerAllocator> >::stream(s, indent + " ", v.J);
00458 s << indent << "N: ";
00459 s << std::endl;
00460 Printer< ::std_msgs::Float64MultiArray_<ContainerAllocator> >::stream(s, indent + " ", v.N);
00461 s << indent << "df: ";
00462 Printer<double>::stream(s, indent + " ", v.df);
00463 s << indent << "dx: ";
00464 Printer<double>::stream(s, indent + " ", v.dx);
00465 s << indent << "Df: ";
00466 Printer<double>::stream(s, indent + " ", v.Df);
00467 s << indent << "Dx: ";
00468 Printer<double>::stream(s, indent + " ", v.Dx);
00469 s << indent << "stiffness: ";
00470 Printer<double>::stream(s, indent + " ", v.stiffness);
00471 s << indent << "compliance: ";
00472 Printer<double>::stream(s, indent + " ", v.compliance);
00473 }
00474 };
00475
00476
00477 }
00478 }
00479
00480 #endif // PR2_MANIPULATION_CONTROLLERS_MESSAGE_JINVTELEOPCONTROLLERSTATE_H
00481