Ask Your Question
1

Root transform has no multi dof joint config

asked 2011-09-19 10:56:02 -0500

seanarm gravatar image

updated 2011-09-20 02:58:15 -0500

Whenever I try to construct a KinematicModel with my urdf, planning_environment throws the error:

"Root transform has no multi dof joint config"

My launch file attempts to launch the planning_environment environment_server, and includes multi_dof_joints.yaml, but it doesn't appear they're working correctly.

Which joint should be the multi dof joint? Or, is there some other problem of which I'm not aware?

EDIT: My biggest confusion on this arises from the following in KinematicModel:

Constructor passes in urdf, then: const urdf::Link *root = model.getRoot().get(); root_ = buildRecursive(NULL, root, multi_dof_configs);

The first line in build recursive: JointModel *joint = constructJointModel(link->parent_joint.get(), link, multi_dof_configs); This passes the model root in as "link".

In constructJointModel(const urdf::Joint *urdf_joint, const urdf::Link *child_link, const std::vector<multidofconfig>& multi_dof_configs): "link" is passed in as the child_link, which is compared against all the multi-dof child_frame_ids.

Doesn't this mean that in order for this to work, my model root must be listed as a child_frame_id in my multi_dof_joints.yaml?

edit retag flag offensive close merge delete

Comments

I "fixed" the issue, but something is not quite right about the way KinematicModel interacts with my urdf. In my multi_dof_joints, I changed the child_frame_id of each of my joints to "world". The parent_frame_id is "baseLink". That doesn't sound right.
seanarm gravatar image seanarm  ( 2011-09-19 12:15:14 -0500 )edit
What version of planning_environment are you using - electric or diamondback? Did you run the arm navigation wizard? In general the parent_frame_id should be your odometric frame if you are planning to move your base. If not, you can just make it the first link in your urdf.
egiljones gravatar image egiljones  ( 2011-09-19 13:46:14 -0500 )edit
Diamondback. I'm doing this outside the arm navigation stack-- just trying to get environment server running with the correct joints/links/etc. I think the wizard is only for electric, right? I'll edit the question with a little more info on my problem.
seanarm gravatar image seanarm  ( 2011-09-20 02:49:41 -0500 )edit
Your model root must be the child_frame_id - if it's not you'll get an error. The parent_frame_id should either be your model_root, or an odometric frame.
egiljones gravatar image egiljones  ( 2011-09-20 08:42:03 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
0

answered 2011-10-17 11:33:13 -0500

Wim gravatar image

Your model root must be the child_frame_id - if it's not you'll get an error. The parent_frame_id should either be your model_root, or an odometric frame. - egiljones

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

Stats

Asked: 2011-09-19 10:56:02 -0500

Seen: 399 times

Last updated: Oct 17 '11