voxel option for kinbodies

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

voxel option for kinbodies

Dmitry Berenson
Hello, I would like to request an addition to the kinbody::link
geometries. Instead of only choosing between primitives and trimeshes,
could we also have an option to specify a voxilization of the link?

Namely, the voxel option will have attributes like the number of
cells, the grid, the transform of the grid center, and the resolution.
The reason I am requesting this is that I would like to write a
collision checker for voxels. It would be quite useful for collision
checking with laser data. Our current approach is quite slow because
we create a small box for each voxel and the collision checking
sometimes takes a long time for complex scenes.

It would also be nice to have a field in the link geometry that would
allow us to store points. This would be useful for representing
samples taken from the trimeshes of links. These points would then be
placed into the voxel grid at a certain transform and checked for
occupancy.

Of course the standard collision checkers would ignore the voxel stuff for now.

I know this may be somewhat complicated so maybe a simpler option for
now would be to add another collisionchecker option, something of the
form:
CheckCollision(KinBodyPtr, std::vector<std::vector<Vector> >& body
points [vector of points inside each link of kinbody],  VoxelGrid&
voxelgrid)

You would have to define the Voxelgrid class, but that would be quite
simple (for instance ROS already has one)
ros-pkg/collision_environment/distance_field/include/distance_field/voxel_grid.h

What do you think?

--

Dmitry

------------------------------------------------------------------------------

_______________________________________________
Openrave-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/openrave-users
Reply | Threaded
Open this post in threaded view
|

Re: voxel option for kinbodies

Rosen Diankov
Administrator
hi dmitry,

the voxel grid geometry idea is great, i have created a ticket for it:
https://sourceforge.net/apps/trac/openrave/ticket/33

having geometry as an input parameter to a CheckCollision function
will break consistency, so it's probably not a good idea to do that.

rosen,

2010/5/25 Dmitry Berenson <[hidden email]>:

> Hello, I would like to request an addition to the kinbody::link
> geometries. Instead of only choosing between primitives and trimeshes,
> could we also have an option to specify a voxilization of the link?
>
> Namely, the voxel option will have attributes like the number of
> cells, the grid, the transform of the grid center, and the resolution.
> The reason I am requesting this is that I would like to write a
> collision checker for voxels. It would be quite useful for collision
> checking with laser data. Our current approach is quite slow because
> we create a small box for each voxel and the collision checking
> sometimes takes a long time for complex scenes.
>
> It would also be nice to have a field in the link geometry that would
> allow us to store points. This would be useful for representing
> samples taken from the trimeshes of links. These points would then be
> placed into the voxel grid at a certain transform and checked for
> occupancy.
>
> Of course the standard collision checkers would ignore the voxel stuff for now.
>
> I know this may be somewhat complicated so maybe a simpler option for
> now would be to add another collisionchecker option, something of the
> form:
> CheckCollision(KinBodyPtr, std::vector<std::vector<Vector> >& body
> points [vector of points inside each link of kinbody],  VoxelGrid&
> voxelgrid)
>
> You would have to define the Voxelgrid class, but that would be quite
> simple (for instance ROS already has one)
> ros-pkg/collision_environment/distance_field/include/distance_field/voxel_grid.h
>
> What do you think?
>
> --
>
> Dmitry
>
> ------------------------------------------------------------------------------
>
> _______________________________________________
> Openrave-users mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/openrave-users
>

------------------------------------------------------------------------------

_______________________________________________
Openrave-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/openrave-users
Reply | Threaded
Open this post in threaded view
|

Re: voxel option for kinbodies

Nick Hillier
Hi Dmitry, Rosen,

In our lab, we use multi-resolution non-cubic voxel representations in
some of our applications (see the work of J. Ryde and H. Hu). We import
these geometries into OpenRAVE as a trimesh of the surface. There is a
large literature on creating such surface models and it's not all that
hard to do a naive implementation that just picks vertices on the
surface and creates a quad mesh that OR seems to handle just fine.

Our first implementation just created a trimesh that was all the voxel
vertices without any consideration for the actual outer or inner
surface. This worked quite well also, mainly because the voxels were
only on the surface of an object anyway so there are really only about
twice as many vertices as required.

Nick



On Wed, 2010-05-26 at 02:49 +1000, Rosen Diankov wrote:

> hi dmitry,
>
> the voxel grid geometry idea is great, i have created a ticket for it:
> https://sourceforge.net/apps/trac/openrave/ticket/33
>
> having geometry as an input parameter to a CheckCollision function
> will break consistency, so it's probably not a good idea to do that.
>
> rosen,
>
> 2010/5/25 Dmitry Berenson <[hidden email]>:
> > Hello, I would like to request an addition to the kinbody::link
> > geometries. Instead of only choosing between primitives and trimeshes,
> > could we also have an option to specify a voxilization of the link?
> >
> > Namely, the voxel option will have attributes like the number of
> > cells, the grid, the transform of the grid center, and the resolution.
> > The reason I am requesting this is that I would like to write a
> > collision checker for voxels. It would be quite useful for collision
> > checking with laser data. Our current approach is quite slow because
> > we create a small box for each voxel and the collision checking
> > sometimes takes a long time for complex scenes.
> >
> > It would also be nice to have a field in the link geometry that would
> > allow us to store points. This would be useful for representing
> > samples taken from the trimeshes of links. These points would then be
> > placed into the voxel grid at a certain transform and checked for
> > occupancy.
> >
> > Of course the standard collision checkers would ignore the voxel stuff for now.
> >
> > I know this may be somewhat complicated so maybe a simpler option for
> > now would be to add another collisionchecker option, something of the
> > form:
> > CheckCollision(KinBodyPtr, std::vector<std::vector<Vector> >& body
> > points [vector of points inside each link of kinbody],  VoxelGrid&
> > voxelgrid)
> >
> > You would have to define the Voxelgrid class, but that would be quite
> > simple (for instance ROS already has one)
> > ros-pkg/collision_environment/distance_field/include/distance_field/voxel_grid.h
> >
> > What do you think?
> >
> > --
> >
> > Dmitry
> >
> > ------------------------------------------------------------------------------
> >
> > _______________________________________________
> > Openrave-users mailing list
> > [hidden email]
> > https://lists.sourceforge.net/lists/listinfo/openrave-users
> >
>
> ------------------------------------------------------------------------------
>
> _______________________________________________
> Openrave-users mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/openrave-users



------------------------------------------------------------------------------

_______________________________________________
Openrave-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/openrave-users