GetStateValidity ignores the RobotState field
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 /checkstatevalidity service:
self.col_srv = rospy.ServiceProxy('/check_state_validity',GetStateValidity)
http://docs.ros.org/hydro/api/moveit_msgs/html/srv/GetStateValidity.html
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.
Asked by blooop on 2018-10-30 10:30:35 UTC
Comments