Actuator dynamics with gazebo+ros2: Best practices for simulation?
Hi, I'm looking for some best practices to implement actuator dynamics in a ros2-control/gazebo simulation environment.
In my case I have hydraulic actuators and want to implement a black-box velocity-controlled actuator with force-compliant behavior. The interface to the physics engine in gazebo has to be the effort-interface to simulate multi-body contacts.
At the stage of implementation on real hardware, this velocity controller is then implemented on an embedded platform and not part of the ROS software anymore. Therefore, I'd like to make the velocity-command interface available for higher control tasks, and make the underlying velocity-controller with the actuator dynamics contained to be then able to switch to the hardware with its proper hardware_interface.
I've found two articles for ROS1 with different approaches:
- Gazebo Plugin https://www.frontiersin.org/articles/...
- ros2-control controller https://www.researchgate.net/publicat...
Are there other approaches with ROS2? Which one would you prefer thinking of my application?
I guess that an extension to the GazeboSystem from gazebo_ros2_control is the most promising approach.