ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

can we get the penetration depth with CollisionModels?

asked 2012-11-01 16:54:25 -0600

updated 2012-11-01 16:55:58 -0600

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?


edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2012-11-07 19:36:10 -0600

updated 2012-11-07 19:36:32 -0600

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.

edit flag offensive delete link more

Question Tools


Asked: 2012-11-01 16:54:25 -0600

Seen: 234 times

Last updated: Nov 07 '12