5 #ifndef SENSOR_MSGS_MESSAGE_MULTIDOFJOINTSTATE_H 6 #define SENSOR_MSGS_MESSAGE_MULTIDOFJOINTSTATE_H 25 template <
class ContainerAllocator>
51 typedef std::vector<std::basic_string<char, std::char_traits<char>,
typename ContainerAllocator::template rebind<char>::other > ,
typename ContainerAllocator::template rebind<std::basic_string<char, std::char_traits<char>,
typename ContainerAllocator::template rebind<char>::other > >::other >
_joint_names_type;
54 typedef std::vector< ::geometry_msgs::Transform_<ContainerAllocator> ,
typename ContainerAllocator::template rebind< ::geometry_msgs::Transform_<ContainerAllocator> >::other >
_transforms_type;
57 typedef std::vector< ::geometry_msgs::Twist_<ContainerAllocator> ,
typename ContainerAllocator::template rebind< ::geometry_msgs::Twist_<ContainerAllocator> >::other >
_twist_type;
60 typedef std::vector< ::geometry_msgs::Wrench_<ContainerAllocator> ,
typename ContainerAllocator::template rebind< ::geometry_msgs::Wrench_<ContainerAllocator> >::other >
_wrench_type;
80 template<
typename ContainerAllocator>
81 std::ostream& operator<<(std::ostream& s, const ::sensor_msgs::MultiDOFJointState_<ContainerAllocator> &
v)
91 namespace message_traits
104 template <
class ContainerAllocator>
109 template <
class ContainerAllocator>
114 template <
class ContainerAllocator>
119 template <
class ContainerAllocator>
124 template <
class ContainerAllocator>
129 template <
class ContainerAllocator>
135 template<
class ContainerAllocator>
140 return "690f272f0640d2631c305eeb8301e59d";
143 static const char*
value(const ::sensor_msgs::MultiDOFJointState_<ContainerAllocator>&) {
return value(); }
144 static const uint64_t static_value1 = 0x690f272f0640d263ULL;
145 static const uint64_t static_value2 = 0x1c305eeb8301e59dULL;
148 template<
class ContainerAllocator>
153 return "sensor_msgs/MultiDOFJointState";
156 static const char*
value(const ::sensor_msgs::MultiDOFJointState_<ContainerAllocator>&) {
return value(); }
159 template<
class ContainerAllocator>
164 return "# Representation of state for joints with multiple degrees of freedom, \n\ 165 # following the structure of JointState.\n\ 167 # It is assumed that a joint in a system corresponds to a transform that gets applied \n\ 168 # along the kinematic chain. For example, a planar joint (as in URDF) is 3DOF (x, y, yaw)\n\ 169 # and those 3DOF can be expressed as a transformation matrix, and that transformation\n\ 170 # matrix can be converted back to (x, y, yaw)\n\ 172 # Each joint is uniquely identified by its name\n\ 173 # The header specifies the time at which the joint states were recorded. All the joint states\n\ 174 # in one message have to be recorded at the same time.\n\ 176 # This message consists of a multiple arrays, one for each part of the joint state. \n\ 177 # The goal is to make each of the fields optional. When e.g. your joints have no\n\ 178 # wrench associated with them, you can leave the wrench array empty. \n\ 180 # All arrays in this message should have the same size, or be empty.\n\ 181 # This is the only way to uniquely associate the joint name with the correct\n\ 186 string[] joint_names\n\ 187 geometry_msgs/Transform[] transforms\n\ 188 geometry_msgs/Twist[] twist\n\ 189 geometry_msgs/Wrench[] wrench\n\ 191 ================================================================================\n\ 192 MSG: std_msgs/Header\n\ 193 # Standard metadata for higher-level stamped data types.\n\ 194 # This is generally used to communicate timestamped data \n\ 195 # in a particular coordinate frame.\n\ 197 # sequence ID: consecutively increasing ID \n\ 199 #Two-integer timestamp that is expressed as:\n\ 200 # * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')\n\ 201 # * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')\n\ 202 # time-handling sugar is provided by the client library\n\ 204 #Frame this data is associated with\n\ 209 ================================================================================\n\ 210 MSG: geometry_msgs/Transform\n\ 211 # This represents the transform between two coordinate frames in free space.\n\ 213 Vector3 translation\n\ 214 Quaternion rotation\n\ 216 ================================================================================\n\ 217 MSG: geometry_msgs/Vector3\n\ 218 # This represents a vector in free space. \n\ 219 # It is only meant to represent a direction. Therefore, it does not\n\ 220 # make sense to apply a translation to it (e.g., when applying a \n\ 221 # generic rigid transformation to a Vector3, tf2 will only apply the\n\ 222 # rotation). If you want your data to be translatable too, use the\n\ 223 # geometry_msgs/Point message instead.\n\ 228 ================================================================================\n\ 229 MSG: geometry_msgs/Quaternion\n\ 230 # This represents an orientation in free space in quaternion form.\n\ 237 ================================================================================\n\ 238 MSG: geometry_msgs/Twist\n\ 239 # This expresses velocity in free space broken into its linear and angular parts.\n\ 243 ================================================================================\n\ 244 MSG: geometry_msgs/Wrench\n\ 245 # This represents force in free space, separated into\n\ 246 # its linear and angular parts.\n\ 252 static const char*
value(const ::sensor_msgs::MultiDOFJointState_<ContainerAllocator>&) {
return value(); }
260 namespace serialization
267 stream.next(m.header);
268 stream.next(m.joint_names);
269 stream.next(m.transforms);
270 stream.next(m.twist);
271 stream.next(m.wrench);
282 namespace message_operations
285 template<
class ContainerAllocator>
288 template<
typename Stream>
static void stream(Stream&
s,
const std::string& indent, const ::sensor_msgs::MultiDOFJointState_<ContainerAllocator>&
v)
290 s << indent <<
"header: ";
293 s << indent <<
"joint_names[]" << std::endl;
294 for (
size_t i = 0;
i < v.joint_names.size(); ++
i)
296 s << indent <<
" joint_names[" <<
i <<
"]: ";
299 s << indent <<
"transforms[]" << std::endl;
300 for (
size_t i = 0;
i < v.transforms.size(); ++
i)
302 s << indent <<
" transforms[" <<
i <<
"]: ";
307 s << indent <<
"twist[]" << std::endl;
308 for (
size_t i = 0;
i < v.twist.size(); ++
i)
310 s << indent <<
" twist[" <<
i <<
"]: ";
315 s << indent <<
"wrench[]" << std::endl;
316 for (
size_t i = 0;
i < v.wrench.size(); ++
i)
318 s << indent <<
" wrench[" <<
i <<
"]: ";
329 #endif // SENSOR_MSGS_MESSAGE_MULTIDOFJOINTSTATE_H
typedef void(APIENTRY *GLDEBUGPROC)(GLenum source
Base type for compile-type true/false tests. Compatible with Boost.MPL. classes inheriting from this ...
Specialize to provide the md5sum for a message.
std::vector< std::basic_string< char, std::char_traits< char >, typename ContainerAllocator::template rebind< char >::other >, typename ContainerAllocator::template rebind< std::basic_string< char, std::char_traits< char >, typename ContainerAllocator::template rebind< char >::other > >::other > _joint_names_type
Base type for compile-type true/false tests. Compatible with Boost.MPL. classes inheriting from this ...
GLsizei const GLchar *const * string
::std_msgs::Header_< ContainerAllocator > _header_type
Specialize to provide the datatype for a message.
static void allInOne(Stream &stream, T m)
A fixed-size datatype is one whose size is constant, i.e. it has no variable-length arrays or strings...
static const char * value(const ::sensor_msgs::MultiDOFJointState_< ContainerAllocator > &)
Stream base-class, provides common functionality for IStream and OStream.
boost::shared_ptr< ::sensor_msgs::MultiDOFJointState_< ContainerAllocator > > Ptr
MultiDOFJointState_< ContainerAllocator > Type
std::vector< ::geometry_msgs::Transform_< ContainerAllocator >, typename ContainerAllocator::template rebind< ::geometry_msgs::Transform_< ContainerAllocator > >::other > _transforms_type
Tools for manipulating sensor_msgs.
_transforms_type transforms
#define ROS_DECLARE_ALLINONE_SERIALIZER
Declare your serializer to use an allInOne member instead of requiring 3 different serialization func...
unsigned __int64 uint64_t
Specialize to provide the definition for a message.
static const char * value()
boost::shared_ptr< ::sensor_msgs::MultiDOFJointState > MultiDOFJointStatePtr
boost::shared_ptr< ::sensor_msgs::MultiDOFJointState const > MultiDOFJointStateConstPtr
MultiDOFJointState_(const ContainerAllocator &_alloc)
std::vector< ::geometry_msgs::Twist_< ContainerAllocator >, typename ContainerAllocator::template rebind< ::geometry_msgs::Twist_< ContainerAllocator > >::other > _twist_type
static const char * value(const ::sensor_msgs::MultiDOFJointState_< ContainerAllocator > &)
_joint_names_type joint_names
boost::shared_ptr< ::sensor_msgs::MultiDOFJointState_< ContainerAllocator > const > ConstPtr
std::vector< ::geometry_msgs::Wrench_< ContainerAllocator >, typename ContainerAllocator::template rebind< ::geometry_msgs::Wrench_< ContainerAllocator > >::other > _wrench_type
::sensor_msgs::MultiDOFJointState_< std::allocator< void > > MultiDOFJointState
static const char * value()
static const char * value(const ::sensor_msgs::MultiDOFJointState_< ContainerAllocator > &)
static const char * value()
Templated serialization class. Default implementation provides backwards compatibility with old messa...
static void stream(Stream &s, const std::string &indent, const ::sensor_msgs::MultiDOFJointState_< ContainerAllocator > &v)