[ros-users] Joint controller manager

Marcus Liebhardt marcus.liebhardt at yujinrobot.com
Tue Feb 5 06:16:00 UTC 2013

Hello everyone!

On Tue, Jan 29, 2013 at 12:04 AM, Adolfo Rodríguez Tsouroukdissian <
adolfo.rodriguez at pal-robotics.com> wrote:

> 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.

First of all, I like to thank you, Adolfo, for getting this started! I also
see great potential in joining forces in this matter, since many robots
need or would benefit from it.

> 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?.

Really pretty, I put it up on my wall. No wonder you are in a hurry now! ;-)

> - 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

One topic I would like to add to the discussed:
Adolfo's diagram shows a transmission part for mapping from joint to
actuator space. We are currently working with a custom solution, which is
similar to the pr2_mechanism_model [1].
We implemented direct (1-to-1 mapping), revolute (angle wrapping),
prismatic and (active/passive) coupled transmissions.
It would be nice, if we can integrate something similar in the controller
or allow loading plugins which do that job.


PS: Since this design discussion will likely address multiple topics, I
wonder, if it wouldn't be a better idea to move this discussion to the SIG
and split it up in various topic-related threads. We could still leave the
orocos-dev list attached or even subscribe it to the SIG, if preferred.

PPS: Sorry for replying to the wrong OROCOS list the first time.

[1] http://ros.org/wiki/pr2_mechanism_model

> --
> Adolfo Rodríguez Tsouroukdissian
> Senior robotics engineer
> adolfo.rodriguez at pal-robotics.com
> http://www.pal-robotics.com
> c/ Pujades 77-79, 4º4ª
> 08005 Barcelona, Spain.
> Tel. +34.93.414.53.47
> Fax.+
> 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.
> _______________________________________________
> ros-users mailing list
> ros-users at code.ros.org
> https://code.ros.org/mailman/listinfo/ros-users
Marcus Liebhardt
Control Engineer
Yujin Robot
주소: 대한민국 서울시 금천구 가산동 345-30 남성프라자 #601, 153-023.
Address: Door #601, Namsung-Plaza, 345-30 Gasan-dong, Guemcheon-gu, Seoul,
153-023, Republic of Korea
Website: http://www.yujinrobot.com
Email: marcus.liebhardt at yujinrobot.com
Phone: +82-70-46577073
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osuosl.org/pipermail/ros-users/attachments/20130205/24963ebb/attachment-0003.html>

More information about the ros-users mailing list