ros-simulation/stage_ros

[Feature Request] Reset and Teleport robots service

daenny opened this issue · 3 comments

Hi,
At the moment there is no possibility to move the robots in stage without GUI interaction or driving the robots around. It would be nice to have a "Teleport robot" service to move the robots anywhere on the map and I already implemented a "reset" service which resets the robots positions to the starting positions. This can be handy for running multiple experiments. (#19)
Cheers,
Daniel

Hi Daniel,

Thanks for the request, but realistically I won't have anytime to spend on this. If you or someone else is interested in opening a pull request then I'll happily work with them to get it merged and released.

Please let me know if pull request #26 captures the requested feature.

Thanks for the update. I did not test yet, but from looking at your code, your approach should work. I guess I would prefer to have it as a service call, so that you cannot spam it and call it easily in your code with the check if it actually succeeded. One question is if there should be any checking if the given pose is actually "free space", so that you do not teleport robots into collision or outside the map.
So I like the approach you did with adding a new subscriber for each robot. I was always thinking a bit too complicated, since my idea was to create a single "teleport" service which takes in a robot name. Your approach is simpler and cleaner.
I would probably do it then like you did, but then instead of adding a Subscriber, I would add a service, that takes in a Pose2D.