ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
1 | initial version |
Is there anything that says "Thou shalt only use geometry_msgs/Twist on the /cmd_vel topic"?
You can always do whatever you want, but you are clearly aware of the general convention around this so its good to follow it when you can and it makes sense to. No, there isn't an REP specifically listing cmd_vel as the "official" base driver topic, its just a sane default we typically use, similar to camera_info
and image
for working with camera streams. There are tools like image transport that will help you if you do it that way, but you don't have to.
What should a robot do if it is commanded to move in the Y or Z axis and it is not capable of doing so? Should it halt and catch fire? Should it silently ignore such commands?
That's up to your application and needs. If you have an omni robot, then Y could be a real command so you don't want to ignore it. If Differential, then its obviously bogus and you could either silently fail or throw something and both would be reasonable in context. If you're in control of your trajectory planners, you shouldn't have a situation ever with an invalid twist.
Oh yeah, how about some way to indicate "If you ask me to go 3e8 m/s, I'm not going to be able to achieve that. The best I can do is 1e-2 m/s, and that's only on a good day".
Lookup various forms of the velocity smoother package, that should be what you want.