at-wat / mcl_3dl

A ROS node to perform a probabilistic 3-D/6-DOF localization system for mobile robots with 3-D LIDAR(s). It implements pointcloud based Monte Carlo localization that uses a reference pointcloud as a map.
BSD 3-Clause "New" or "Revised" License
482 stars 119 forks source link

initialization of the first epoch #166

Closed weisongwen closed 4 years ago

weisongwen commented 6 years ago

Hi @at-wat , Thanks for your great work on this package. Currently, the first position of this package is given manually. but if the initial position is not given accurately, it may fail to initialize. how big the error of the initialization is acceptable in this package?

best, welson

at-wat commented 6 years ago

It depends on the number of the particles (num_particles parameter) and covariance of the initial pose (init_var_(x|y|z|roll|pitch|yaw) parameters or values given by initialpose topic).

As another solution, this package has global localization that can be triggered by /global_localization service. Of course, global localization service requires a lot of computation power; it is not reasonable for large maps on the current implementation.

weisongwen commented 6 years ago

Hi @at-wat , thanks for your kind reply, I find that only several beam is used in the beam model of this package. why you do not use more beams? this is becasue the ray-casting process is quite time-consuming? best welson

at-wat commented 6 years ago

this is becasue the ray-casting process is quite time-consuming?

Yes, especially with the long range LIDAR. You can try increasing number of beams by num_points_beam parameter. https://github.com/at-wat/mcl_3dl/blob/ec7c3d29a84f66ce966d57af91b9f744a0098bbf/src/mcl_3dl.cpp#L1542

The current implementation is not very optimal and the possibility of optimizing ray-casting in this package is quite large.

weisongwen commented 6 years ago

hi @at-wat . sure, do you think the ray-casting in octomap format will be faster? best welson

at-wat commented 6 years ago

do you think the ray-casting in octomap format will be faster?

I tried octree in PCL before. The overhead seems bigger than kd-tree and likelihood computation cost increased a lot.

I haven't tried octomap. It needs complete rewriting of the node, I guess.

at-wat commented 4 years ago

Closing as the question looks been resolved. Feel free to reopen, or open a new issue, if you have any other questions on this topic.