Enum in msg
Hi there,
does anybody know if there's a way to put an enum type into a message? How's it done?
Thanks!
Hendrik
ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
Hi there,
does anybody know if there's a way to put an enum type into a message? How's it done?
Thanks!
Hendrik
You can use constants in ROS messages:
http://www.ros.org/wiki/msg#Constants
They don't map explicitly to higher-level enum types in programming languages, but they generally let you deal with the same issues.
I know this is a very old chain, however has this been implemented? Could I have a look?
Here is an example from joystick_drivers https://github.com/ros-drivers/joystick_drivers :
$ rosmsg show sensor_msgs/JoyFeedbackArray
sensor_msgs/JoyFeedback[] array
uint8 TYPE_LED=0
uint8 TYPE_RUMBLE=1
uint8 TYPE_BUZZER=2
uint8 type
uint8 id
float32 intensity
There is nothing special or required about the constants TYPE_LED and TYPE_RUMBLE being capitalized or having a prefix in common with the field 'type' for which they are supposed to be the values it ought to have.
In https://github.com/ros-drivers/joystick_drivers/blob/groovy-devel/ps3joy/scripts/ps3joy_node.py the usage of the enum like fields is shown for Python:
rospy.Subscriber("joy/set_feedback",sensor_msgs.msg.JoyFeedbackArray,self.set_feedback)
...
def set_feedback(self,msg):
for feedback in msg.array:
if feedback.type == sensor_msgs.msg.JoyFeedback.TYPE_LED and feedback.id < 4:
self.led_values[feedback.id] = int(round(feedback.intensity))
elif feedback.type == sensor_msgs.msg.JoyFeedback.TYPE_RUMBLE and feedback.id < 2:
...
In C++ it would look like this:
if (msg->waveform == sensor_msgs::JoyFeedback::TYPE_RUMBLE)
...
Asked: 2011-03-15 06:14:13 -0500
Seen: 26,037 times
Last updated: Nov 29 '13
finding the right action name and package names to import for smach
rostopic echo does not work with Gazebo topics and my own topics
are there standard battery level messages in ROS
Cannot load message class for .... Are your messages built?
rospy ColorRGBA array messages changing all vectors
map does not show up on RVIZ while using hector_slam
Why ROS messages do not inherit from a base class??
Unexplainable Segfault (double free) in templated Subscriber (polling)