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
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)
...
Please start posting anonymously - your entry will be published after you log in or create a new account.
Asked: 2011-03-15 06:14:13 -0500
Seen: 19,907 times
Last updated: Nov 29 '13
ROS2 Custom Messages Not Found
Save bagile with regular images to bagile with compressed images
Force subscriber to process messages in the right order
map does not show up on RVIZ while using hector_slam
IDE development and code completion for messages
rospy sensor_msgs.msg.BatteryState is not found
Does ROS optimize around unheard messages?