Hello everyone! On Tue, Jan 29, 2013 at 12:04 AM, Adolfo Rodríguez Tsouroukdissian < adolfo.rodriguez@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. Regards, Marcus 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@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 - Twitter- PAL > Robotics YouTube Channel > > 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@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@yujinrobot.com Phone: +82-70-46577073