Quantcast

how to efficiently update a mesh?

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

how to efficiently update a mesh?

Evan Herbst
Rosen/all:

I'm importing a mesh from a sensor for collision checking purposes. I'm not using ros. Right now I'm running the following each frame:

OpenRAVE::KinBodyPtr raveMeshPtr = OpenRAVE::RaveCreateKinBody(env);
raveMeshPtr->InitFromTrimesh(raveMesh, true);
const auto bodyptr = env->GetKinBody("mesh");
if(bodyptr) env->Remove(bodyptr);
raveMeshPtr->SetName("mesh");
env->Add(raveMeshPtr);

This takes about 3 seconds, all in the Add() call. The various other things I do with the mesh take two orders of magnitude less time than this. Is there a faster way to update it?

Thanks.

- Evan

------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT
organizations don't have a clear picture of how application performance
affects their revenue. With AppDynamics, you get 100% visibility into your
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
_______________________________________________
Openrave-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/openrave-users
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: how to efficiently update a mesh?

Rosen Diankov
Administrator
hi evan,

how many triangles is the mesh? The Add call basically triggers the triangle mesh to be loaded inside the collision checker (ODE by default), and I think that call is what is taking the bulk of the time, and there's nothing we can do about it on the openrave frontend. Feel free to profile the calls inside plugins/oderave/odespace.h and double-check if that really is what's taking so long.

Another option is to check collision checkers, but I think triangle mesh will give you the best performance.

best,



2013/12/11 Evan Herbst <[hidden email]>
Rosen/all:

I'm importing a mesh from a sensor for collision checking purposes. I'm not using ros. Right now I'm running the following each frame:

OpenRAVE::KinBodyPtr raveMeshPtr = OpenRAVE::RaveCreateKinBody(env);
raveMeshPtr->InitFromTrimesh(raveMesh, true);
const auto bodyptr = env->GetKinBody("mesh");
if(bodyptr) env->Remove(bodyptr);
raveMeshPtr->SetName("mesh");
env->Add(raveMeshPtr);

This takes about 3 seconds, all in the Add() call. The various other things I do with the mesh take two orders of magnitude less time than this. Is there a faster way to update it?

Thanks.

- Evan

------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT
organizations don't have a clear picture of how application performance
affects their revenue. With AppDynamics, you get 100% visibility into your
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
_______________________________________________
Openrave-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/openrave-users


------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT
organizations don't have a clear picture of how application performance
affects their revenue. With AppDynamics, you get 100% visibility into your
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
_______________________________________________
Openrave-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/openrave-users
Loading...