ethz-asl / segmap

A map representation based on 3D segments
BSD 3-Clause "New" or "Revised" License
1.06k stars 394 forks source link

use segmatch in real environment #42

Closed ArthurYu96 closed 6 years ago

ArthurYu96 commented 7 years ago

Hi, thank you for all your works. I want to use segmatch in real environment, especially use real 3D lidar to realize this algorithm, but i don't know how can i do that. Can you give me some advice?

rdube commented 7 years ago

Hi @ArthurYu96 thank you for getting in touch! Have you tried the two demonstrations? I would make sure to do that at first. Do you want to do SLAM or localization? You would have to create your own launch and parameters files which should be based on the ones provided for the demonstrations. The next step will be to adjust the topics and tf frames to fit with your application, eg:

https://github.com/ethz-asl/segmatch/blob/master/laser_mapper/launch/kitti/kitti_localization.yaml#L21

Finally you will most likely have to identify a good set of parameters for your application. Make sure that you have a look at our paper in order to better understand the effect of each parameter. I hope that helps!

ArthurYu96 commented 7 years ago

Hi @rdube , thank you for your quick response! Yeah I have tried both the 2 demonstrations and have read your paper, the demonstrations works really well so i want to use 3D LIDAR to do SLAM in real environment. I created a new launch and a parameters file based on the demonstrations, and also adjusted the parameters in .yaml file, but it seems that my .launch file doesn't work. Anyway, really thank you for your help, i will try to debug the .launch file.

rdube commented 7 years ago

Are you getting any specific error? Feel free to paste it here.

ArthurYu96 commented 7 years ago

Hi @rdube , it finally worked! I will change the parameters to get a better result and i'll send the final result to you, thank you very much! Now i have a new problem, I've got a outdoor map in real environment, how can i train a classifier using this map? I know the algorithm is Random Forests but i'm confused about the detailed method~

rdube commented 7 years ago

I am happy to hear that! I would recommend that you at first try with simple knn retrieval for the matching part. This is much simpler (no need to train anything) and can potentially yield very similar results.

This can be done by setting the following parameter to false:

https://github.com/ethz-asl/segmatch/blob/master/laser_mapper/launch/kitti/kitti_localization.yaml#L88

and by adjusting the number of nearest neighbours:

https://github.com/ethz-asl/segmatch/blob/master/laser_mapper/launch/kitti/kitti_localization.yaml#L86

VincentCheungM commented 7 years ago

@ArthurYu96 @rdube So sorry for bothering you. I'm having problem on setting up the tf from world to imu for my own data while doing SLAM on real environment. I've run the two fantastic demonstrations with the kitti rosbag, and it workd well. Is that the tf from world to imu some kind of pose or odometry? Odometry is one of the input according to your paper. Thanks for your reply.

rdube commented 7 years ago

@VincentCheungM thanks for getting in touch! The transformation from the odom_frame to the sensor_frame should be given by your odometry estimate module. It is a tf transformation and queried with scan callbacks in laser_slam:

https://github.com/ethz-asl/laser_slam/blob/6faea1c86f6b6828ee5dea7fa4efad5be4d7a90b/laser_slam_ros/src/laser_slam_worker.cpp#L99

You should then set these two parameters (odom_frame and sensor_frame) to reflect your setup. I hope that helps!

VincentCheungM commented 7 years ago

@rdube Thanks for your great help!!!

rdube commented 7 years ago

@ArthurYu96 any update on your work? Did you manage to use segmatch on your own datasets?

rdube commented 6 years ago

Guys, I will close that issue. Feel free to re-open if you have any updates!