laas / jrl_dynamics_urdf

URDF parser for jrl-dynamics
2 stars 9 forks source link

Order of the joints in the state vector #12

Open francois-keith opened 10 years ago

francois-keith commented 10 years ago

Using jrl_dynamics_urdf parser, the rank of each joint is defined by the browsing of the tree. It is browsed in a depth first way, and the priority of rank between childrens is determined by the alphabetical order.

To make it more concrete, the order of the dofs in the state vector for the Romeo robot is:

Free flyer
* Left leg   
* Right leg  
* Trunk
* * Left arm   
* * Head
* * Right arm  

As a result, depending on the name of the joints, their order in the state vector changes from one robot to another. I think defining a generic order for the joint vector based on the REP 120 frames would make the reading easier (between robots), e.g.: [FF, left-leg, right-leg, chest, head, left-arm, right-arm]

thomas-moulard commented 10 years ago

Hi Francois, Why don't you just access joints by name and stop relying on order which is a bad idea anyway?

Le jeudi 9 janvier 2014, François Keith a écrit :

Using jrl_dynamics_urdf parser, the rank of each joint is defined by the browsing of the tree. It is browsed in a depth first way, and the priority of rank between childrens is determined by the alphabetical order.

To make it more concrete, the order of the dofs in the state vector for the Romeo robot is:

Free flyer

  • Left leg
  • Right leg
  • Trunk
  • * Left arm
  • * Head
  • * Right arm

As a result, depending on the name of the joints, their order in the state vector changes from one robot to another. I think defining a generic order for the joint vector based on the REP 120 frames would make the reading easier (between robots), e.g.: [FF, left-leg, right-leg, chest, head, left-arm, right-arm]

— Reply to this email directly or view it on GitHubhttps://github.com/laas/jrl_dynamics_urdf/issues/12 .

Thomas Moulard(ムラー トマ) CNRS-AIST JRL (Joint Robotics Laboratory), UMI3218/CRT, Tsukuba, Japan http://thomas.moulard.net | Tel: +81 (0)80-9436-1985 | GPG Key Id: 516FC68F31496D58 Add me on LinkedIn: http://www.linkedin.com/in/moulard

francois-keith commented 10 years ago

Hello Thomas,

I was mostly thinking of the definition of the half-sitting position, that is still set by a vector in the robot.py file. (e.g.: https://github.com/stack-of-tasks/sot-romeo/blob/master/src/dynamic_graph/sot/romeo/robot.py.in#L36-L44 ) But it also could be done by parsing the srdf file. https://github.com/laas/romeo/blob/master/romeo_description/srdf/romeo_small.srdf

So, yes, I guess accessing the joints by their name can do. I just thought this would make the reading of the state vector / Jacobian matrices easier.