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: 25,926 times
Last updated: Nov 29 '13
finding the right action name and package names to import for smach
rospy ColorRGBA array messages changing all vectors
Sensor discovery on runtime with ROS?
map does not show up on RVIZ while using hector_slam
Message set for GNSS/INS ROS Driver (node) - Standardized
Catkin: Use ROS message from another package
I want to store in an array messages from a ROS topic for further elaboration