GetStateValidity ignores the RobotState field

asked 2018-10-30 10:30:35 -0500

blooop gravatar image

I am using demo.launch from the moveit setup assistant on a custom URDF I made on ubuntu 16.04 ros-kinetic.

I have created a python ros service client that calls the /check_state_validity service:

self.col_srv = rospy.ServiceProxy('/check_state_validity',GetStateValidity)

http://docs.ros.org/hydro/api/moveit_...

If I fill the RobotState field with a set of joint angles that I know collides with the environment, the returned value does contain any collisions.

If I use the moveit demo.launch GUI and get the robot into a colliding state and call the service, then the correct collision information is returned.

As far as I can tell, it looks like the GetStateValidity ignored the RobotState field and instead uses the current /joint_states values.

I have tried to publish my own /joint_state values, but this does not work for some reason. However, it is much better for my appilcation if the GetStateValidity service used the values I provide in the service call as I want to sample as many states as quickly as possible.

Am I missing something obvious?

Thanks.

edit retag flag offensive close merge delete