Re: [ros-users] Standardization of mapping interfaces

Forside
Vedhæftede filer:
Indlæg som e-mail
+ (text/plain)
Slet denne besked
Besvar denne besked
Skribent: User discussions
Dato:  
Til: User discussions
Emne: Re: [ros-users] Standardization of mapping interfaces
How is the process designated to go from here - should we propose
changes by branching from Stéphane's files and discuss at Github? To
summarize, I started branching and put my comments below.

On 2012-10-20 01:00, Stéphane Magnenat wrote:
> Hello,
>
> The first draft of REP 129, Node API for SLAM Packages, is available 
> for review:
>     https://github.com/ros-infrastructure/rep/pull/6/files

>
> Your comments and contributions are warmly welcome,


I propose to get rid of the reference to octree and octree maps in the
REP. This is an implementation detail that depends on the underlying 3D
map structure. Similarly, you could compress a 2D map in a quad-tree,
but the common map format remains an OccupancyMap msg.

I started changing this at the beginning of "Specification", should I go
on and propose a complete change of the file?
https://github.com/ahornung/rep/commit/2d3ecd2a90a9c73df8915b19998e0d9cd805ae43

The idea is that the common format for occupied cells in 3D are voxels,
an octree can be used to store and maintain them efficiently (e.g. in
OctoMap) but that should not affect the exchange format. After all, for
small areas, a VoxelGrid may work just as well as map representation. So
the 3D profiles should only specify volumetric 3D occupancy maps,
encoded as centers of voxels and only one (homogeneus) size parameter
for the map (this is completely analogous to the 2D case, minus the free
space). If an octree structure is explicitly desired, it can be
exchanged as octomap_msgs including full probabilities and free space. I
don't think it makes sense to try and replicate the structure halfway
with a PointCloud2 (that is missing essential parts of the tree
structure anyways). Alternatively, only if differently-size voxels are
permitted (which I think can only come from an octree), it may be useful
to the store per-voxel cube size (essentially a CollisionMap from
arm_navigation_msgs / moveit_msgs). In any case, since it's axis-aligned
boxes, origin information is required.

In 3D Node API, I don't understand the following part or why it's there:
"For algorithms working with octrees, one point shall be returned for
every face of the cuboids pointing to the sensor."

In general, what I'm missing is viewpoint information in the final point
cloud map (and incremental update), associated to each single point
cloud after aligning it with SLAM. I'm thinking of the following
scenario: You build a 3D map with a number of point clouds from the
sensor, register them properly, and then want to build a 3D occupancy
map e.g. in OctoMap. To clear the space and fill free space information,
you will need the sensor origin for each single point cloud.

Best,
Armin

--
Armin Hornung
Humanoid Robots Lab, Albert-Ludwigs-Universität Freiburg
Contact: http://www.informatik.uni-freiburg.de/~hornunga