Adding holonomic motion disable (differential drive motion only) option to turtlesim
Tiryoh opened this issue · 3 comments
I created the issue #93 and the related PR because I believe it will be useful in introducing beginners that it is possible to work with holonomic motion.
However, it seems that if this option is always enabled, it may sometimes disturb the learning process for beginning students.
This is not what I want to do.
I just find out that the turtle is holonomic now. Because I am teaching ROS these years so want to share some thoughts here though this issue is closed.
Introducing the holonomic movement into Turtlesim is great, it does not change the learning experience. And I also want this feature to test some easy multi-robot formation or cooperation stuff. However, it brings in some confusion during learning TF using turtle_tf. My students now solve the problem mainly based on the global info, the relation between two turtles can be ignored and you can command the follower based on v.x and v.y with a zero-valued a.z. A differential model may indicate that the follower must perceive the target turtle.
Moreover, the kinematic model of the turtle is no longer the same as a Turtlebot.
It won't be a problem during our class. I don't know how this will affect the self-learner. I think your intuition is considerable @dirk-thomas . I prefer a default differential turtle and can be switched to omni-directional.
best regards,
Originally posted by @tianb03 in #93 (comment)
I think It would be nice to have an option to disable holonomic motion as @jacobperron mentions, so I'm going to submit a pull request for the option to disable it.
How do you think the options should be able to be specified, @tianb03, @jacobperron?
(If I should ask someone else, please let me know.)
I believe that rosparam is easier to specifying both from the command line and the roslaunch like the teleop_twist_keyboard.
e.g.)
rosrun turtlesim turtlesim_node _holonomic:=false
<arg name="holonomic" default="false" />
<node pkg="turtlesim" name="sim" type="turtlesim_node">
<param name="holonomic" value="$(arg false)" />
</node>
Using a ROS parameter to disable holonomic motions sounds okay to me.
I'm closing this issue because the PR has been merged to the rolling branch.
Thanks @tianb03, @jacobperron, @audrow!