moveit / moveit_core

THIS REPO HAS MOVED TO https://github.com/ros-planning/moveit
30 stars 76 forks source link

getLinkState() from robot_state issue #87

Closed davetcoleman closed 11 years ago

davetcoleman commented 11 years ago

In the Rviz plugin, using the interactive markers, the end effector of Baxter is being rendered incorrectly with its links in the wrong position. I have also ran into this issue in some of my custom code. I have tracked it down to the getRobotMarkers() function in robot_state.cpp so I am positing this issue in moveit_core. Perhaps the issue is in the function getLinkState() - what is a link's state when no tf or joint_states are being published?

The two green fingers in the bottom left are the issue - they work normal in most other situations as pictured on the right.

Thanks!

end_effector_marker

isucan commented 11 years ago

I was worries the code was not using updated transforms, but things seem to be fine. If there are no joint states published, a default transform is used (as computed by RobotState::setToDefaultValues())

davetcoleman commented 11 years ago

I'm not sure what you are saying - I am still having the issue pictures above where the green fingers are "floating" in the wrong position, when they should be attached to the end effector. I'm having this issue both with the current debs release and the latest source build.

Since I am not publishing joint states, it will assume some default value - usually 0, correct? Even if it assumed the joints were at zero, the above image should not happen.

davetcoleman commented 11 years ago

As we discussed via chat, does this really fix the issue I was experiencing? I think we agreed that the bug is in global_link_transforms_[lm->getLinkIndex()], though I'm not using this latest version of MoveIt!

isucan commented 11 years ago

Not properly fixed indeed. Will fix properly :)