Its a great comment. The way to resolve your question is to think about specific use cases where we suspect velocity would make more sense. (by the way I’ve added a little more detail in a reply to the original post)
So what are the applications where a velocity controller would make more sense? Self driving cars maybe? Even then I struggle. The self driving car will get obstacle data in meters not in speeds. Once you have the sensor data you will then be able to say where the safe zones are* and plan your arc accordingly. The car will seek to go at the target velocity - so what’s the problem?
Maybe where you don’t have a single motor controller controlling all motion (e.g. an ackerman steering arrangement with a separate steering system to the drive system) but even then to interpret cmd_vel messages you need some process handing instructions to the steering system and the drive system separately.
I am struggling to think of a case where this situation is worse than cmd_vel - and I can think of plenty of cases where it is better. Maybe you can help me think of an actual counter-example?
The only time I can think of is if you have a standard, off the shelf velocity controller and you don’t want to screw with it - but I’d have thought that by now in our joint journey of having robots conquer the universe we would be far beyond that parlous situation.
As an aside this is not a theoretical concept. We at Ubiquity Robotics moved our control stack partly in this direction and we got much better results.