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 imageseanarm ( 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 imageegiljones ( 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 imageseanarm ( 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 imageegiljones ( 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: 371 times

Last updated: Oct 17 '11