robotology / gym-ignition

Framework for developing OpenAI Gym robotics environments simulated with Ignition Gazebo

Home Page:https://robotology.github.io/gym-ignition

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Implement `JointControlMode::PositionInterpolated`

diegoferigo opened this issue · comments

ScenarIO offers the JointControlMode::PositionInterpolated it is not implemented in any backend.

/// Marks the joint to be controlled in position with trajectory
/// smoothing. A PositionInterpolated joint receives position references
/// that are filtered to get a smooth trajectory. The resulting
/// trajectory is then actuated using a position PID controller.
PositionInterpolated,

Originally, my idea was to exploit iCub::ctrl::minJerkTrajGen, but introducing the dependency of the whole icub-main could be too much, and vendoring would be suboptimal.

Maybe we can use pantor/ruckig instead (arxiv).

Considering the need of specifying the parameters (velocity / acceleration / jerk limits) and its multi-DoF formulation, I think the most simple implementation is a standalone plugin. This means that it will not use our existing JointController plugin.

In the meantime, smooth trajectories can be generated using the LowPassTarget plugin implemented in ami-iit/gazebo-scenario-plugins#4.