[ros-users] [Discourse.ros.org] [Next Generation ROS] Ros_control in ROS2 wishlist

gavanderhoorn via Discourse.ros.org ros.discourse at gmail.com
Mon Feb 11 13:13:04 UTC 2019

My first response would be: all of those, good suggestions (perhaps maybe the first two).

But thinking about it a bit more I would like to see:

 1. maintain deterministic execution in everything (ie: hard real-time capability, not as a requirement (so keep components capable of running in deterministic environments, but don't require it: see executors below))
 1. support chaining controllers natively (*probably* using topics for input/output?), no subclassing
 1. support mimo setups (should be doable if the previous item lands)
 1. support industry-standard trajectory generators (almost off-topic, but you asked about `joint_trajectory_controller`, so: trapezoidal / s-curve profiles / higher-order interpolation / jerk-limited, etc)
 1. Cartesian controllers (would probably require a Cartesian msg set as well ..)
 1. fully support managed nodes:
    - distribution and scheduling of controllers and other infrastructure with executors
    - full component life-cycle (error states, recovery mechanisms, etc) and management
 1. usability: more clearly document controller hierarchy ("`position_controllers/JointPositionController` ignores my PID parameters?")
 1. usability: don't call everything a "controller" (`joint_state_controller`)
 1. C++11/14/17/20?

And I'm sure I'm missing some things I've though of over the years. Others will post those probably.


[ros-controls/ros_control#174](https://github.com/ros-controls/ros_control/issues/174) has some previous discussion on using a message/port based framework underneath `ros_control` (ie: OROCOS).


MachineKit devs have done a bit of work with `ros_control` and MachineKit integration, perhaps @zultron and @machinekoder have some inputs.

[Visit Topic](https://discourse.ros.org/t/ros-control-in-ros2-wishlist/7803/3) or reply to this email to respond.

More information about the ros-users mailing list