[ros-users] Joint controller manager

Adolfo Rodríguez Tsouroukdissian adolfo.rodriguez at pal-robotics.com
Mon Jan 28 15:04:07 UTC 2013


Hello ROS and Orocos users,

This is a call for feedback. I'm currently working on a "joint controller
manager", that is, a component that manages joint resources and exposes
them to control. For those familiar with the pr2_controller_manager, this
would provide similar functionality and interfaces, while relaxing some
constraints to allow easy porting to different hardware platforms. Exposing
hardware to control (and realtime control in particular) is still a big
hurdle, and it would be very desirable to make this at least an order of
magnitude easier. Once a minimal set of controller interfaces are made
available for a given platform (eg. mobile base controller, spline
interpolator, ...), a truckload of higher-level functionality becomes
available.

At the moment I have an existing in-house solution that from a ROS API
point of view looks pretty much like a pr2_controller_manager, and a design
of where I'd like things to go, which is attached to this message in pdf
form. As a next step I was planning on setting up a public repo and port
the existing design from Orocos 1.x to Orocos 2.x, which adds the
expressivity needed to address the missing features. But before that, I'd
like to make a pause and ask for some feedback.

- Is there interest in giving this topic a dedicated discussion place, like
a mailing list or a ROS special interest group?.

- If you take a look at the attached design, please be critic about it.
What would you add or remove?, what would you do differently?.

- What can you not accomplish (or have had trouble accomplishing) with the
tools you or your team have used so far?.

Finally, I'd like to be aware of any active and similarly scoped
initiative, so please let me know if you're working on the subject. Late
last week I found out almost by chance about the yet undocumented
ros_control [1] repository, which deferred the writing of this email a day
so I could familiarize with it. Its scope is very much aligned with my
current objectives, as it consists of a library offering functionality
similar to that of the pr2_controller_manager that can be adapted to other
robot platforms. I'm looking forward to sharing opinions and use cases with
all interested parties, and if possible map interest overlaps to common
code. Some questions that come to my mind after reviewing the code in [1]:

- Is it possible to have a controller with multiple interfaces (eg. send
position + velocity + effort commands)?.

- If I understand correctly, interfaces are limited by design to position,
velocity and effort, and adding a new one (fancy example: stiffness) is not
possible, correct?.

- Is it possible to chain controllers as in the attached figure
(r_arm_follow_joint_traj + r_arm_pid_controller) from configuration files,
ie. without writing code?.

- Controllers running at lower frequency than the manager need to implement
this by doing work only one out of every n cycles, as separate controller
threads are not supported, correct?.

- Is there any work on decoupling the more common "workhorse" controllers
out of the pr2_controller_manager infrastructure (eg. a couple of mobile
base implementations, the FollowJointTrtajectory action)?. I've already
spent some time factoring out the spline splicing and interpolation code
from the FollowJointTrtajectory action, and was planning on writing some
unit tests on it. If not, I can also make this available once the cleanup
is complete.

That's it for now, thanks for reading.

[1] https://github.com/willowgarage/ros_control

-- 
Adolfo Rodríguez Tsouroukdissian
Senior robotics engineer
adolfo.rodriguez at pal-robotics.com
http://www.pal-robotics.com

PAL ROBOTICS S.L
c/ Pujades 77-79, 4º4ª
08005 Barcelona, Spain.
Tel. +34.93.414.53.47
Fax.+34.93.209.11.09
Skype: adolfo.pal-robotics
Facebook <http://www.facebook.com/palrobotics1> -
Twitter<http://twitter.com/#%21/palrobotics>- PAL
Robotics YouTube Channel <http://www.youtube.com/user/PALRobotics>

AVISO DE CONFIDENCIALIDAD: Este mensaje y sus documentos adjuntos, pueden
contener información privilegiada y/o confidencial que está dirigida
exclusivamente a su destinatario. Si usted recibe este mensaje y no es el
destinatario indicado, o el empleado encargado de su entrega a dicha
persona, por favor, notifíquelo inmediatamente y remita el mensaje original
a la dirección de correo electrónico indicada. Cualquier copia, uso o
distribución no autorizados de esta comunicación queda estrictamente
prohibida.

CONFIDENTIALITY NOTICE: This e-mail and the accompanying document(s) may
contain confidential information which is privileged and intended only for
the individual or entity to whom they are addressed.  If you are not the
intended recipient, you are hereby notified that any disclosure, copying,
distribution or use of this e-mail and/or accompanying document(s) is
strictly prohibited.  If you have received this e-mail in error, please
immediately notify the sender at the above e-mail address.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osuosl.org/pipermail/ros-users/attachments/20130128/2229b08c/attachment-0003.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: joint_controller_manager.pdf
Type: application/pdf
Size: 28032 bytes
Desc: not available
URL: <http://lists.osuosl.org/pipermail/ros-users/attachments/20130128/2229b08c/attachment-0003.pdf>


More information about the ros-users mailing list