Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reloading robot model #3

Closed
Patrick-Lascombe opened this issue Nov 18, 2019 · 3 comments
Closed

Reloading robot model #3

Patrick-Lascombe opened this issue Nov 18, 2019 · 3 comments

Comments

@Patrick-Lascombe
Copy link

Hello, first of all thank you for this awesome package !

I had a question about reloading the robot model by publishing on the topic /dynamic_robot_model_server/parameter_updates.

I tried to use it a few times unsuccessfully, but putting into the 'robot_model' field the path to the urdf file but received the erro 'Error document empty.'.

Do I need to to put the path to the urdf file or the content of the urdf file into the field ?

Thank you for your help

@peci1
Copy link
Owner

peci1 commented Nov 18, 2019

Hi. The field should contain the contents of the URDF file, not the path to it. Give it a try and let me know if it works.

@Patrick-Lascombe
Copy link
Author

It works, thanks!
And I had another questions concerning the inner working of the node, and I didn't knew if it was better to open a new issue or to post it here.

When I'm working with cloudpoints2, are the points compared to the actual shapes of the urdf or are they compared to the bounding spheres around these shapes. I dug into the code but didn't find a clear answer to this.

@peci1
Copy link
Owner

peci1 commented Nov 19, 2019

The logic is implemented in

void RayCastingShapeMask::classifyPointNoLock(const Eigen::Vector3d& data,
.

If you enable shadow filtering, then all points have to be processed. If you only enable containment tests, there can be lots of computations saved.

Each shape, when you construct the model, constructs its bounding sphere. At the time of filtering, the model is "arranged" according to the TFs and all bounding spheres are merged. First, each point is compared to this "big sphere" (which is quite a cheap computation). Only points inside this big sphere are then passed for more detail analysis which decides whether the point lies inside the shape or not. Even in this detailed analysis, the point is first tested for being inside the shape's bounding sphere.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants