Skip to content

Example package for ignition systems plugin #28

@ruffsl

Description

@ruffsl

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:

<plugin name='diff_drive' filename='libgazebo_ros_diff_drive.so'>

The ignition gazebo version of dolly uses the libignition-gazebo-diff-drive-system instead:

<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.

https://github.com/ignitionrobotics/ign-gazebo/tree/5b21ec87306c35b3494adc25694fac8b8d1bb7de/src/systems/diff_drive

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions