Giter VIP home page Giter VIP logo

voxblox's People

Contributors

alexmillane avatar cwitting avatar eggerk avatar fabianbl avatar fabioruetz avatar ffurrer avatar gasserl avatar genemerewether avatar helenol avatar jaeyoung-lim avatar lsolanka avatar marco-tranzatto avatar margaritag avatar mbuerki avatar mfehr avatar ntonci avatar oleg-alexandrov avatar raghavkhanna avatar rikba avatar schmluk avatar skohlbr avatar timethy avatar tkazik avatar tonirv avatar victorreijgwart avatar zacharytaylor avatar zarmomin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

voxblox's Issues

Something goes terribly wrong with big maps!

When I ran the test_protobuf unit tests with a "big" layer, it behaved very strangely.
The unit test allocates a cube of blocks ([-7, -7, -7] to [7, 7, 7]) and after serialization and de-serialization all the blocks that are located on the boarder of the cube, i.e. with one of the index entries being the max index, e.g. [7,1,2] or [-3,7,4] become suddenly [8,1,2] , [-3,8,4]. Something seems to go wrong with the indexing, but I'm not sure it happens because of serialization,

To reproduce:
run the test_protobuf unit test after changing the kBlockVolumeDiameter to something larger than 12

Using Voxblox in planners that do not support ESDF

Hello,
first of all, thank you on making this excellent code public!

I am currently experimenting with the Voxblox and looking into its possibilities. The recent change on the possibility of local scene reconstruction looks and works great.
Now, I would also like to use it in my planner, but it does not operate with ESDF. I have tried taking surface point cloud from TSDF and using point cloud to laser scan converter which is able to create a 2D-like scan that I can use in my planner.

However, with the frequency of ~10 Hz, it is too slow. I was wondering do You maybe have an advice on what is the best way to convert TSDF/ESDF to laser scan or to obtain something like laser scan?

Thank You in advance!

Hash collisions are super easy to generate

Our hashing function has some issues:

Turns out that for all the values I tested if an index is (x, y, z) then hash(x, y, z) == hash(x, -y, -z)
This means we will see a massive amount of hash collisions when exploring near the origin

Catkin build error!

I followed the tutorial and everything war normal but error happened when using catkin build voxblox_ros. The following is the detail. Is there anyone who can help me? Thank you so much!

-> src catkin build voxblox_ros
-------------------------------------------------------
Profile:                     default
Extending:        [explicit] /opt/ros/kinetic
Workspace:                   /home/bryan/ros_ws
-------------------------------------------------------
Source Space:       [exists] /home/bryan/ros_ws/src
Log Space:         [missing] /home/bryan/ros_ws/logs
Build Space:        [exists] /home/bryan/ros_ws/build
Devel Space:        [exists] /home/bryan/ros_ws/devel
Install Space:      [unused] /home/bryan/ros_ws/install
DESTDIR:            [unused] None
-------------------------------------------------------
Devel Space Layout:          merged
Install Space Layout:        None
-------------------------------------------------------
Additional CMake Args:       -DCMAKE_BUILD_TYPE=Release
Additional Make Args:        None
Additional catkin Make Args: None
Internal Make Job Server:    True
Cache Job Environments:      False
-------------------------------------------------------
Whitelisted Packages:        None
Blacklisted Packages:        None
-------------------------------------------------------
Workspace configuration appears valid.

NOTE: Forcing CMake to run for each package.
-------------------------------------------------------
[build] Found '12' packages in 0.0 seconds.                                                                                                                                                                
[build] Updating package table.                                                                                                                                                                            
Starting  >>> catkin_simple                                                                                                                                                                                
Finished  <<< catkin_simple                       [ 1.5 seconds ]                                                                                                                                          
Starting  >>> eigen_catkin                                                                                                                                                                                 
Starting  >>> gflags_catkin                                                                                                                                                                                
Starting  >>> voxblox_msgs                                                                                                                                                                                 
Finished  <<< eigen_catkin                        [ 1.8 seconds ]                                                                                                                                          
Finished  <<< voxblox_msgs                        [ 3.0 seconds ]                                                                                                                                          
___________________________________________________________________________________________________________________________________________________________________________________________________________
Warnings   << gflags_catkin:make /home/bryan/ros_ws/logs/gflags_catkin/build.make.000.log                                                                                                                  
make[3]: warning: -jN forced in submake: disabling jobserver mode.
make[3]: warning: -jN forced in submake: disabling jobserver mode.
cd /home/bryan/ros_ws/build/gflags_catkin; catkin build --get-env gflags_catkin | catkin env -si  /usr/bin/make --jobserver-fds=6,7 -j; cd -
...........................................................................................................................................................................................................
Finished  <<< gflags_catkin                       [ 13.4 seconds ]                                                                                                                                         
Starting  >>> glog_catkin                                                                                                                                                                                  
___________________________________________________________________________________________________________________________________________________________________________________________________________
Errors     << glog_catkin:make /home/bryan/ros_ws/logs/glog_catkin/build.make.000.log                                                                                                                      
/bin/sh: 1: autoreconf: not found
make[2]: *** [glog_src-prefix/src/glog_src-stamp/glog_src-configure] Error 127
make[1]: *** [CMakeFiles/glog_src.dir/all] Error 2
make: *** [all] Error 2
cd /home/bryan/ros_ws/build/glog_catkin; catkin build --get-env glog_catkin | catkin env -si  /usr/bin/make --jobserver-fds=6,7 -j; cd -
...........................................................................................................................................................................................................
Failed     << glog_catkin:make                    [ Exited with code 2 ]                                                                                                                                   
Failed    <<< glog_catkin                         [ 5.9 seconds ]                                                                                                                                          
Abandoned <<< eigen_checks                        [ Unrelated job failed ]                                                                                                                                 
Abandoned <<< minkindr                            [ Unrelated job failed ]                                                                                                                                 
Abandoned <<< minkindr_conversions                [ Unrelated job failed ]                                                                                                                                 
Abandoned <<< voxblox                             [ Unrelated job failed ]                                                                                                                                 
Abandoned <<< voxblox_rviz_plugin                 [ Unrelated job failed ]                                                                                                                                 
Abandoned <<< voxblox_ros                         [ Unrelated job failed ]                                                                                                                                 
[build] Summary: 4 of 11 packages succeeded.                                                                                                                                                               
[build]   Ignored:   1 packages were skipped or are blacklisted.                                                                                                                                           
[build]   Warnings:  1 packages succeeded with warnings.                                                                                                                                                   
[build]   Abandoned: 6 packages were abandoned.                                                                                                                                                            
[build]   Failed:    1 packages failed.                                                                                                                                                                    
[build] Runtime: 21.0 seconds total.                                                                                                                                                                       
[build] Note: Workspace packages have changed, please re-source setup files to use them.

Question in /voxblox_node/mesh & Mesh saving

_Hi, thanks a lot for providing such a useful tool.

I already source devel/setup.bash. And changed the bag path in cow_and_lady_dataset.launch file.
Use rosrun tf static_transform_publisher 0 0 0 0 0 1 world my_frame 10 to set fixed frame as 'world'.
Then I can see mesh in rviz. However, I am still confused about few questions.

Below is something I am confused with and need your kind help.

  1. If I echo /voxblox_node/mesh,

` -
x: [0.875, 0.875, 0.8785830140113831]
y: [-2.469820499420166, -2.4749999046325684, -2.4749999046325684]
z: [2.375, 2.3868136405944824, 2.375]
r: [139, 139, 139]
g: [133, 133, 133]
b: [130, 130, 130]
a: [255, 255, 255]
--
header:
seq: 57
stamp:
secs: 1534564190
nsecs: 150633121
frame_id: "world"
mesh_blocks: []


The mesh block is empty.

  1. in my roslaunch terminal,

[ WARN] [1534564560.045967660]: No match found for transform timestamp: 1473521413.111484105
[ WARN] [1534564560.046022270]: Queue front: 1473521411.774098268 back: 1473521412.044124231

Thanks a lot in advance and look forward!

Mapping using Realsense D435 and orb_slam_2

Hi,

I'm trying to create a map using the pose from ethz-asl/orb_slam_2_ros (running from a realsense D435) and the point cloud from the same D435 (/camera/depth_registered/points). I think I've connected everything fine, voxblox node spins, and repeatedly outputs

[ INFO] [1531490886.374945217]: Updating mesh.

to the terminal. However, if I look at the mesh topic the mesh_blocks are always empty:

$ rostopic echo /voxblox_node/mesh
header: 
  seq: 263
  stamp: 
    secs: 1531490808
    nsecs: 375656235
  frame_id: "world"
mesh_blocks: []
---
header: 
  seq: 264
  stamp: 
    secs: 1531490809
    nsecs: 375167789
  frame_id: "world"
mesh_blocks: []
---
...

what am I'm missing?

this is my launch file:

<launch>
  <arg name="voxel_size" default="0.05"/>
  <arg name="generate_esdf" default="true" />
  
   <node name="voxblox_node" pkg="voxblox_ros" type="tsdf_server" output="screen" args="-alsologtostderr" clear_params="true">
    <remap from="pointcloud" to="~camera/depth_registered/points"/>
    <param name="tsdf_voxel_size" value="$(arg voxel_size)" />
    <param name="tsdf_voxels_per_side" value="16" />
    <param name="voxel_carving_enabled" value="true" />
    <param name="color_mode" value="color" />
    <param name="use_tf_transforms" value="false" />
    <param name="update_mesh_every_n_sec" value="1" />
    <param name="min_time_between_msgs_sec" value="0.0" />
    <param name="method" value="fast" />
    <param name="use_const_weight" value="false" />
    <param name="allow_clear" value="true" />
    <param name="verbose" value="true" />
    <param name="output_mesh_as_pointcloud" value="true" />
    <remap from="transform" to="~orb_slam_2_ros_node/transform_cam" />
    <rosparam file="$(find voxblox_ros)/cfg/realsense_D435.yaml"/>
    <param name="mesh_filename" value="$(find voxblox_ros)/mesh_results/$(anon cow).ply" />
  </node>
</launch>

and the realsense_D435.yaml:

T_B_C:
- [1.0, 0.0, 0.0, 0.0]
- [0.0, 1.0, 0.0, 0.0]
- [0.0, 0.0, 1.0, 0.0]
- [0.0, 0.0, 0.0, 1.0]
invert_T_B_C: false

T_B_D:
- [ 1.0, 0.0, 0.0, 0.0]
- [ 0.0, 1.0, 0.0, 0.0]
- [ 0.0, 0.0, 1.0, 0.0]
- [ 0.0, 0.0, 0.0, 1.0]
invert_T_B_D: false

I admittedly don't really know if these transforms are. with the realsense I use aligned color and depth frames so I assume I can put identities for these and at least see something in rviz, even if wrong.

Possible avenues for further optimization

Not really an issue but this seemed the best place to record what I have found while optimizing voxblox over the last two weeks.

Overall, currently the fast and simple integrators are badly memory bound. While there are a hundred little tweaks/hacks to make them use less CPU, they won't go any faster without reading or writing less data (or vectorizing the reads/writes). The merged integrator does not currently seem to suffer from this same limitation.

Below is a list of possible ways to speed things up and my findings from running some quick tests. Listed roughly in order of viability.

  1. Switch to floats as the FloatingPoint
    The fast integrator is badly memory bound, and so while this makes no difference for the merged integrator, for 5cm voxels the fast integrator speeds up by over 30%.

  2. Use fast-math
    Initially this put nans in voxel distances, this was fixed by checking if weights were near zero before dividing by them.
    Same quick tests gave very small improvement maybe 1-5% faster. This will mostly be coming from the std::floor instruction in transforming coordinates to indexes. Without fast-math floor needs to handle nans and infs in a correct manner that makes it surprisingly expensive.

  3. Switch the underlying hash-map
    Looked at a large range of ones on the Internet. I tested them by having them store voxel indexes for 15 seconds and found the per scan time. This was a quite quick test, so don't take these numbers as perfect.

Just looping through all the points without actually casting any rays: 6 ms

Our current std::unordered_map 159 ms

libcuckoo (https://github.com/efficient/libcuckoo)
A concurrent hash map implementation. Note that each thread uses 100% of its core in this test
running in 1 thread: 187 ms
running in 2 threads: 147 ms
running in 4 threads: 114 ms
running in 8 threads: 100 ms
running in 4 threads, and mixing up the order the threads get the indexes: 87 ms

google dense_hash_map (https://github.com/sparsehash/sparsehash)
Well known, but also very memory heavy can take over 4x more than std::unordered_map. Also needs a null hash
run time: 76 ms

flat_hash_map (https://github.com/skarupke/flat_hash_map)
Written by some random guy on a blog, fastest in the test but c++14 only
run time: 73 ms

hopscotch-map (https://github.com/Tessil/hopscotch-map)
Drop in replacement for std::unordered_map that also lets you reuse the hash
run time: 78 ms

junction (https://github.com/preshing/junction/tree/master/junction)
Another concurrent hash_map, claims to be much faster than libcuckoo I could not get it to compile with our code.

boost and intel also have some hashmaps, but every chart and benchmark I saw put them much slow than those listed above.

From the tests I like hopscotch-map as it is almost as fast as the others, is header only, pretty good on ram and has no special conditions.
On testing on our actual situation it seems it could give somewhere between a 5 to 10% performance boost, maybe more if we use its hash lookup options.

  1. Using more experimental compiler flags
    Tried profile guided optimization and all these flags -march=native -fassociative-math -fno-signed-zeros -freciprocal-math -frename-registers -funroll-loops -fopenmp -D_GLIBCXX_PARALLEL
    Speed gain was less than 1% if any.

  2. using Eigens experimental AlignedVector3 (basicly a wrapper round a vector4) wherever we use indexes.
    In some quick tests made things slightly slower, guess this will be due to it making memory bandwidth issues worse.

Loop closure

Hi,

Thanks for sharing the code.
I wonder if this does loop closure?

Kind Regards,
Chang

How to use save_map service ?

Hello, friends
When I use the voxblox node, I want to save the TSDF. But when I enter the following instructions:

$ rosservice call /voxblox_node/save_map "test1.vxblx"

But nothing happened, and I couldn't find the saved file. Is it stored in a strange location? Why can't I search for it?
And

$  rosservice type /voxblox_node/save_map | rossrv show
string file_path
---

Where am I wrong? Can someone help me? thank you very much
11

max_ray_length_m not used properly with all integrators

The max_ray_length_m param is used properly with the simple integrator, but the merged integrator ignores it. When for instance using VLP-16 clouds as input this becomes apparent really fast as integration time gets very slow with clouds containing points tens of meters away.

How is ICP done?

Hello.

I saw recently you added ICP capabilities. However, there is no mention of how it was set-up (in an abstract way). What ICP implementation are you doing? Is it the classical frame-to-frame ICP, the frame-to-model ICP (as described in "KinectFusion: Real-Time Dense Surface Mapping and Tracking" paper) or something different?

esdf_slice was not generated in RVIZ

Hello, thanks for making this useful library open-source...I just ran the cow_and_lady_dataset.launch file and the mesh data was generated perfectly. But the esdf_slice which should be displayed on XY plane as described in the paper did not show up in RVIZ. Could someone help me solve this problem? Thanks.
screenshot from 2018-01-03 23-47-13

How to view esdf in rviz

   Hi,I run roslaunch voxblox_ros cow_and_lady_dataset.launch.  no ESTF generated 

2018-08-13 15-47-11

   I saw ESTF on YouTube. the ground is how to generate the grid.

2018-08-13 17-24-54

2018-08-13 15-47-21

  Maybe I have some problems with configuration file.

Decide what to do with pybindings and tango interface

Since there's no longer a google tango, perhaps it doesn't make sense to keep them?
The python bindings can also move to their own package/repo, as we do not maintain them or test them, and they're anyway on the higher level interface (i.e., all they access is the internal ESDF layer anyway, no need for them to be in voxblox_ros).

@ZacharyTaylor @mfehr : thoughts?

How to transport the ESDF? Are here any planners with examples?

Good Day,

I really like this ROS package, it does great work.
Is here a way to transport the ESDF so that not a lot bandwidth is consumed?
I didn't see any examples of a ROS message interface, only the map_in subscriber, but that does use a lot of bandwidth doesn't it?
why is the node using a global nodehandle and a local nodehandle?

Thanks for creating this and please keep going.

best regards

rviz can't visualize /voxblox_node/mesh

I found this unanswered question online. I'm in the same exact situation.
I can run roslaunch voxblox_ros cow_and_lady_dataset.launch
but then I can't visualize the mesh published by voxblox with rviz.

Use ESDF for planning?

Hi, are there any examples that I can follow to actually use voxblox for robot planning task (maybe use ESDF to replace costmap in ROS navigation stack or integrate it with existed planner interface)? Thanks!

Mesh Saving problem

Hi, I met with problem in using rosservice call /voxblox_node/generate_mesh "{}" to save mesh. Here is lunch file.
try .launch.txt

The terminal running rosservice call /voxblox_node/generate_mesh "{}" shows that ERROR: transport error completing service call: unable to receive data from sender, check sender's logs for details

The terminal running roslaunch voxblox_ros try.launch shows [voxblox_node-2] process has died [pid 3938, exit code -11, cmd /home/best_jill_forever/catkin_ws/devel/lib/voxblox_ros/tsdf_server -alsologtostderr pointcloud:=/camera/depth_registered/points transform:=/orb_slam_2_ros_node/transform_cam __name:=voxblox_node __log:=/home/best_jill_forever/.ros/log/d4b40912-b1a6-11e8-bfd3-a402b9214b48/voxblox_node-2.log]. log file: /home/best_jill_forever/.ros/log/d4b40912-b1a6-11e8-bfd3-a402b9214b48/voxblox_node-2*.log

And the log file shows that

Log file created at: 2018/09/06 15:31:45
Running on machine: love-mua
Log line format: [IWEF]mmdd hh:mm:ss.uuuuuu threadid file:line] msg
W0906 15:31:45.825906 3938 mesh_layer.h:56] Returning null ptr to mesh!

What could be the problem?

Add check for zero-ray bug

If there is a point that is too close to the camera origin, the ray tracing just goes on forever and crashes due to a bad_alloc

We should really add a check for this!

More allocated voxels close to surface for planning

Hello,
I am using Voxblox to plan arm motions with an ESDF, but I ran intro problems when the viewing angle to the surface is very sharp. Ideally you want to have a big margin of defined voxels around every surface so you can detect collisions early. This isn't the case for sharp viewing angles.
rviz_screenshot_2018_03_02-10_22_01
The arm get's into collision because voxels very close to the surface are not defined.
For proper planning it has to look more like this:
rviz_screenshot_2018_03_02-10_31_29
I created this by simply setting up a big wall on the left.

Do you have an idea how to implement my use-case? I think it is a common problem for planning with voxblox.
One way might be to add a new esdf integrator that updates and allocates even unobserved neighboring voxels if the voxels' distance is below a certain threshold.

Kind regards,
Martin

Getting the "Using latest TF transform instead of timestamp match." warning and not sure why...

Hello all,

I am getting this warning that I think is affecting the mesh output. The warning is: “Using latest TF transform instead of timestamp match.”

But first, some context:
For starters, I am running your project in ROS on Ubuntu 18.04 LTS.
I have been able to run the “cow_and_lady_dataset.launch” file successfully. So far, so good. What I wanted now is to use my own RGB-D camera and IMU (I will be using the RealSense D435 camera although it is irrelevant with my current question). With that in mind, I wanted to set up some ROS nodes that allow me to connect my own geometry_msgs::TransformStamped and sensor_msgs::PointCloud2 data. I was able to do this but the output mesh seems… weird.
After that, for the purpose of evaluating that my ROS nodes are set up properly, I decided to input the .dag data (through my ROS system) in to the Voxblox node and see what happens. An image of my current system is: https://ibb.co/kE1oFp. The results seen in rviz are definitely not the same as when running “cow_and_lady_dataset.launch”. When looking at the output mesh on rviz, the results are similar to the expected mesh but it can be seen that all input frames are not properly aligned. The output to the terminal is:

-----------
inserting_missed_blocks	     43	00.000607	(00.000014 +- 00.000047)	[00.000001,00.000275]
integrate              	     43	13.253579	(00.308223 +- 00.089071)	[00.176564,00.594447]
mesh/publish           	     46	00.419645	(00.009123 +- 00.007882)	[00.000017,00.020435]
mesh/update            	     46	08.213664	(00.178558 +- 00.108894)	[00.000279,00.329901]
ptcloud_preprocess     	     43	00.204254	(00.004750 +- 00.004471)	[00.002041,00.017065]
remove_distant_blocks  	     43	00.007776	(00.000181 +- 00.000228)	[00.000029,00.000817]

[ INFO] [1533916733.112463437]: Layer memory: 47226260
[ INFO] [1533916733.112528841]: Updating mesh.
[ INFO] [1533916733.742630756]: Updating mesh.
[ WARN] [1533916734.211257931]: Using latest TF transform instead of timestamp match.
[ INFO] [1533916734.250609617]: Integrating a pointcloud with 106829 points.
[ INFO] [1533916734.608154478]: Finished integrating in 0.357119 seconds, have 960 blocks.
[ INFO] [1533916734.616009911]: Timings: 
SM Timing

My current conclusion:
Taking in to account what I see on rviz and the warning message, I expect that the sensor frames are not properly synced with the correct IMU data. I tried to look in more details what is going on. The warning is coming from the Transformer::lookupTransformTf function
(declared in transformer.cc file). Specifically, the “tf_listener_.canTransform” is returning back a false. I’m not sure what that means and could not really find any useful information to help me out. I think I have set up the tf tree correctly.

Any advice why this happens? Did you ever come in to a similar problem?

access rights

fatal: clone of '[email protected]:ethz-asl/linter.git' into submodule path 'tools/linter' failed
Exception caught during install: Error processing 'voxblox' : [voxblox] Checkout of https://github.com/ethz-asl/voxblox.git version None into /home/krzysztof/catkin_ws/src/voxblox failed.

it seems like voxblox depends on linter submodule that requires ssh authentication.
[submodule "tools/linter"] path = tools/linter url = [email protected]:ethz-asl/linter.git

Potential speed-ups

(Please edit and add more)

  • Only cast each ray once per voxel, though still update per observation (or not, depending on settings)
  • Subsample incoming data to voxel size more or less
  • Do not build a hi-index and go directly to setting voxels

High resolution postpone

Hi, need your kind help again.
I want to generate high resolution mesh, say resolution = 0.01 or 0.005.
I already set
size_t integrator_threads =7;
However, the calculation speed is still super slow, which result in postpone of mesh generating( rviz showing is also performing bad)
INFO] [1537326932.820455652]: Integrating a pointcloud with 220873 points. [ INFO] [1537326937.923834207]: Finished integrating in 5.103299 seconds, have 16916 blocks. [ INFO] [1537326937.934127858]: Integrating a pointcloud with 220745 points. [ INFO] [1537326941.288767739]: Finished integrating in 3.354571 seconds, have 17747 blocks. [ INFO] [1537326941.298774226]: Integrating a pointcloud with 220395 points. [ INFO] [1537326946.805919204]: Finished integrating in 5.507082 seconds, have 18205 blocks.
The ideal processing speed is supposed to be integrating one point cloud in around 0.1 seconds, But I don't know how to make this comes true. Is it a limitation of PC?(Actually I tried on two computers and both failed to perform well)

Here is the launch file.
fail.launch.txt

Look forward and thanks a lot!!!!!!!!!!!!!

Does the project support Velodyne HDL-64E and odom as source?

Velodyne HDL-64E produces a topic (type: sensor_msgs::PointCloud2) showing the environmental pointclouds and odom can produce a topic (type: nav_msgs/Odometry) describing the robot moving. And the transformation between the two frame is showed in tf topic. I wonder the Voxblox could support the data to produce surface mesh.

Segfaults with MergedTsdfIntegrator.

Occasionally, I get segfaults after the latest voxblox update.. Any ideas?

Progress:   0.2% [--------------------------------------------------]I0804 16:13:05.733964 12470 tsdf_integrator.h:312] Went from 67 points to 41 raycasts  and 0 clear rays.
*** Error in `/home/fabian/Code/catkin_ws/devel/lib/voxblox_interface/test_voxblox_interface': double free or corruption (!prev): 0x000000000210e8e0 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x777e5)[0x7fa767b007e5]
/lib/x86_64-linux-gnu/libc.so.6(+0x8037a)[0x7fa767b0937a]
/lib/x86_64-linux-gnu/libc.so.6(cfree+0x4c)[0x7fa767b0d53c]
/home/fabian/Code/catkin_ws/devel/lib/libvoxblox.so(_ZNSt6vectorIN7voxblox6timing13TimerMapValueESaIS2_EE19_M_emplace_back_auxIJS2_EEEvDpOT_+0xff)[0x7fa76744143f]
/home/fabian/Code/catkin_ws/devel/lib/libvoxblox.so(+0x38e62)[0x7fa767440e62]
/home/fabian/Code/catkin_ws/devel/lib/libvoxblox.so(_ZN7voxblox6timing5TimerC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb+0x1e)[0x7fa767440fbe]
/home/fabian/Code/catkin_ws/devel/lib/libvoxblox_interface.so(_ZN7voxblox20MergedTsdfIntegrator14integrateVoxelERKN5kindr7minimal26QuatTransformationTemplateIdEERKSt6vectorIN5Eigen6MatrixIdLi3ELi1ELi0ELi3ELi1EEENS8_17aligned_allocatorISA_EEERKS7_INS_5ColorESaISG_EEbbRKSt4pairINS9_IiLi3ELi1ELi0ELi3ELi1EEES7_ImSaImEEERKSt13unordered_mapISM_SO_NS_14BlockIndexHashESt8equal_toISM_ENSB_ISL_IKSM_SO_EEEEPSt5queueINS0_9VoxelInfoESt5dequeIS13_SaIS13_EEE+0x5ef)[0x7fa7699789af]
/home/fabian/Code/catkin_ws/devel/lib/libvoxblox_interface.so(_ZN7voxblox20MergedTsdfIntegrator15integrateVoxelsERKN5kindr7minimal26QuatTransformationTemplateIdEERKSt6vectorIN5Eigen6MatrixIdLi3ELi1ELi0ELi3ELi1EEENS8_17aligned_allocatorISA_EEERKS7_INS_5ColorESaISG_EEbbRKSt13unordered_mapINS9_IiLi3ELi1ELi0ELi3ELi1EEES7_ImSaImEENS_14BlockIndexHashESt8equal_toISM_ENSB_ISt4pairIKSM_SO_EEEESY_PSt5queueINS0_9VoxelInfoESt5dequeIS10_SaIS10_EEEm+0x1a8)[0x7fa769979448]
/home/fabian/Code/catkin_ws/devel/lib/libvoxblox_interface.so(_ZNSt6thread5_ImplISt12_Bind_simpleIFSt7_Mem_fnIMN7voxblox20MergedTsdfIntegratorEFvRKN5kindr7minimal26QuatTransformationTemplateIdEERKSt6vectorIN5Eigen6MatrixIdLi3ELi1ELi0ELi3ELi1EEENSC_17aligned_allocatorISE_EEERKSB_INS3_5ColorESaISK_EEbbRKSt13unordered_mapINSD_IiLi3ELi1ELi0ELi3ELi1EEESB_ImSaImEENS3_14BlockIndexHashESt8equal_toISQ_ENSF_ISt4pairIKSQ_SS_EEEES12_PSt5queueINS4_9VoxelInfoESt5dequeIS14_SaIS14_EEEmEEPS4_S8_SH_SM_bbS10_S10_S19_mEEE6_M_runEv+0x64)[0x7fa769973544]
/usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0xb8c80)[0x7fa768121c80]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba)[0x7fa76974c6ba]
/lib/x86_64-linux-gnu/libc.so.6(clone+0x6d)[0x7fa767b903dd]
======= Memory map: ========
00400000-00417000 r-xp 00000000 103:02 1049832                           /home/fabian/Code/catkin_ws/devel/lib/voxblox_interface/test_voxblox_interface
00617000-00618000 r--p 00017000 103:02 1049832                           /home/fabian/Code/catkin_ws/devel/lib/voxblox_interface/test_voxblox_interface
00618000-00619000 rw-p 00018000 103:02 1049832                           /home/fabian/Code/catkin_ws/devel/lib/voxblox_interface/test_voxblox_interface
00c79000-02182000 rw-p 00000000 00:00 0                                  [heap]

How to limit the size of the map?

Thank you for sharing the code.
I am trying to use it for drone path planing.
I wonder if there is a way to limit the volume of the map to a certain distance around the drone's current location? So that it delete the old map far away?

Thank you in advance.
Chang

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.