I tried the solution with the MultiDOFJointState but the problem persists.
I' ve a virtual joint between
/odom and
/base_link (as example you can see the
file developed for MoveIt, between /odom_combined and /base_footprint).
The virtual joint has 6 DOF, is also a virtual floating joint.
Later on I pass to the MultiDOFJointState the following informations:
joint_state.header.frame_id = "odom";
joint_state.joint_names[0] = "world";
joint_state.transforms[0].translation ...
joint_state.transforms[0].rotation ...
where
translation and
rotation are taken from the calculated
odometry by my robot's drivers.
The joint_state is then published over ROS through the following publisher:
joint_pub_ = nh_.advertise<sensor_msgs::MultiDOFJointState>( "joint_states", 1 );
Problem: The program crashes after few seconds with the following error:
[ERROR] [1416345970.180590249]: Client [/robot_state_publisher] wants topic /joint_states to have datatype/md5sum [sensor_msgs/JointState/3066dcd76a6cfaef579bd0f34173e9fd], but our version has [sensor_msgs/MultiDOFJointState/690f272f0640d2631c305eeb8301e59d]. Dropping connection.
[ERROR] [1416345970.181654144]: Client [/move_group] wants topic /joint_states to have datatype/md5sum [sensor_msgs/JointState/3066dcd76a6cfaef579bd0f34173e9fd], but our version has [sensor_msgs/MultiDOFJointState/690f272f0640d2631c305eeb8301e59d]. Dropping connection.
It seems also that the robot_state_publisher, which listens to the topic /joint_states, doesn't accept the MultiDOFJointState
How can I get a solution for this problem? Is something "wrong" in the way I feed the move_group?
I' m really willing to understand how MoveIt works. The lack of documentation and examples is overwhelming me!!!
Regards