libSimpleTrackedVehiclePlugin.so ROS support workflow
Hello,
I am attempting to control a tracked robot through ROS using the gazebo-9 plugin 'libSimpleTrackedVehiclePlugin.so'. I am having a bit of an issue finding any sort of concise documentation for implementation of this plugin, other than the 'trackedvehiclesimple.world' example implementation, which does not implement ROS control. I do not think there is an implementation difference between gazebo-9 and gazebo-11 but I may be mistaken. I have a few ROS Melodic dependencies in my codebase that requires I use gazebo-9 for compatibility through the current recommendations.
In the example implementation the plugin is initiated with the following code.
<plugin filename="libSimpleTrackedVehiclePlugin.so" name="simple_tracked_vehicle">
<body>base_link</body>
<left_track>left_track</left_track>
<right_track>right_track</right_track>
<left_flipper>front_left_flipper</left_flipper>
<left_flipper>rear_left_flipper</left_flipper>
<right_flipper>front_right_flipper</right_flipper>
<right_flipper>rear_right_flipper</right_flipper>
<track_mu>2</track_mu>
<track_mu2>0.5</track_mu2>
</plugin>
<plugin filename="libKeysToCmdVelPlugin.so" name="keyboard_control">
<publish_as_twist>true</publish_as_twist>
<cmd_vel_topic>~/simple_tracked/cmd_vel_twist</cmd_vel_topic>
</plugin>
I have a bit of confusion on a few key aspects of this implementation. First, my implementation does not have any "flippers" and I am unsure of how integral these flippers are to this plugin. Are they optional? Second, the drive options that have built in ros support such as 'libgazeborosskidstreerdrive.so' allow for the command and odometry topic configuration using the
In particular, I could use some insight into how to properly implement the transport library for use with ROS. I think that I may understand from comparing the .cc source code for track systems vs diff drive/skid steer differences, but some additional guidance that doesn't come from me attempting to reverse engineer code would be nice. I can't find documentation on the tutorial site for it, but I may be missing something.
Thank you in advance,
Grant
Asked by gmetts on 2020-12-03 11:10:33 UTC
Comments