-
Notifications
You must be signed in to change notification settings - Fork 63
Description
It would be nice to have an example of how to package a custom systems plugin for ignition. For example, the classic gazebo version of dolly uses the libgazebo_ros_diff_drive plugin for mapping command velocities to the joint control for a respective wheelbase of the robot:
dolly/dolly_gazebo/models/dolly/model.sdf
Line 330 in 349c352
| <plugin name='diff_drive' filename='libgazebo_ros_diff_drive.so'> |
The ignition gazebo version of dolly uses the libignition-gazebo-diff-drive-system instead:
dolly/dolly_ignition/models/dolly_ignition/model.sdf
Lines 330 to 332 in 349c352
| <plugin | |
| filename="libignition-gazebo-diff-drive-system.so" | |
| name="ignition::gazebo::systems::DiffDrive"> |
For instances where an existing plugin bundled in ignition may not suffice or not exist, it would be helpful to have a packaged example of something like the diff_drive plugin as a local package here.
Perhaps a simple ignition plugin to control the tail_joint of dolly, that could be controlled via topic to active waggle, passively dampen, or hold still/break. It would also provide as a reference template for the cmake and ament exports necessary for ignition to find and load the externally compiled plugin.
| <joint name='tail_joint' type='revolute'> |
Personally, I'd like to prototype an ackermann steering model, but want to avoid having to rebuild the entire ign-gazebo code base until the plugin is working and ready to upstream, keeping my development confined to a minimal dolly like colcon workspace/repo. As of yet, the current Ignition Robotics plugin and systems docs do not specify how to write your own, external from the upstream binaries.