0
$\begingroup$

Rosanswers logo

i find this method in planning_environment::CollisionModels

void getAllCollisionsForState(const planning_models::KinematicState& state, std::vector<arm_navigation_msgs::ContactInformation>& contacts, unsigned int num_per_pair = 1);

and the arm_navigation_msgs::ContactInformation do have a field named depth. but with my test, it's always equal to 0 even when two objects penetrating into each other deeply. why this method doesn't give correct depth? is it because ODE doesn't support it? and do we have other method to get the depth value?

thanks.


Originally posted by yangyangcv on ROS Answers with karma: 741 on 2012-11-01

Post score: 0

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

ode can give the penetration depth, so with CollisionModels we can also get this info. just need to add this line in line 1427 of planning_environment/src/models/collision_models.cpp

contact_info.depth = contact.depth;

but this depth is somehow useless. because when the robot link penetrates into an object, there are usually many collision points, and it's hard to find the one we specially need.

besides, it seems that we can only get the penetration depth between the robot link and the object. we cannot get the depth between two objects.


Originally posted by yangyangcv with karma: 741 on 2012-11-07

This answer was ACCEPTED on the original site

Post score: 0

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.