Skip to content

Export SimHWInterface for combined_robot_hw #34

@RobertWilbrandt

Description

@RobertWilbrandt

It is surprisingly useful to have a purely kinematic simulation of a hardware interface in a combined_robot_hw. Using a custom adapter i already used it to allow for partially-simulated execution in a more complex combined_robot_hw setup, and it generally makes switching between real hardware and simulation in such projects much easier. I would however prefer this to be an upstream feature of ros_control_boilerplate (and am happy to provide a PR for it) for the following reasons:

  • It would demonstrate how to properly write and export a hw interface using pluginlib
  • Adding a launch file to rrbot_control could demonstrate how to use a combined_robot_hw
  • It can be quite handy to use this as a placeholder when developing bigger combined_robot_hw setups

Unfortunately i don't think simply changing SimHWInterface (or GenericHWInterface) would be possible without quite some restructuring, as pluginlib requires a parameterless constructor. Thus i would create an extra adapter class deriving from hardware_interface::RobotHW which would hold a SimHWInterface as a member and delay it's construction until init(), simply delegating all relevant calls from there on.

The way i see it the required steps for this are:

  • Create CombinedHWAdapter class
  • Export interface correctly as ros_control_boilerplate/SimHWInterface
  • Add node src to rrbot_control. Unfortunately running a combined_robot_hw from a GenericHWControlLoop doesn't seem too nice.
  • Add sample launch files to rrbot_control
  • Add short description to README.md

I'm happy to hear about opinions, otherwise i'd start implementing this in the next days.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions