ethz-asl / ethzasl_icp_mapping

3D mapping tools for robotic applications
273 stars 156 forks source link

Any SLAM solution available here? #43

Closed baishibona closed 8 years ago

baishibona commented 8 years ago

Hi,

I was wondering is there any consideration of a SLAM solution build on top of 3D scan matching? Right now I am trying to put it together with iSAM which enable us to update the map by using key frames. I wasn't quite sure if you guys have developed that function or it is under developing?

Thanks.

pomerlef commented 8 years ago

Right now, there is none. We manage to go pretty far without global relaxation, so it wasn't a priority.

Recent results: https://www.youtube.com/watch?v=jlAArM_6N-I

baishibona commented 8 years ago

That's a cool video, however we were using the puck, which is not as powerful as 64E, and we did have errors while the robot was in a forest like environment. Could you point me to the function in ethzasl_icp_mapper that I can call for a scan matching between two point clouds (ideally ROS point cloud msg or just point cloud object)?

Thanks!

pomerlef commented 8 years ago

The conversion of pointcloud2 to our format (essentially a big Eigen matrix) is done here. It looks more complicated than how it could be used:

DP points = PointMatcher_ros::rosMsgToPointMatcherCloud<float>(cloudMsgIn);

The ICP part happen here. The object icp used here hold internal a map and is from the class ICPSequence defined in libpointmatcher.

This repository is mainly supported for our research partners and our changing needs. We have less time for public support right now.

baishibona commented 8 years ago

Thank you very much! I think I should be able to sort it out.

2016-05-11 17:57 GMT-04:00 François Pomerleau notifications@github.com:

The conversion of pointcloud2 to our format (essentially a big Eigen matrix) is done here https://github.com/ethz-asl/ethzasl_icp_mapping/blob/master/ethzasl_icp_mapper/src/dynamic_mapper.cpp#L425. It looks more complicated than how it could be used:

DP points = PointMatcher_ros::rosMsgToPointMatcherCloud(cloudMsgIn);

The ICP part happen here https://github.com/ethz-asl/ethzasl_icp_mapping/blob/master/ethzasl_icp_mapper/src/dynamic_mapper.cpp#L566. The object icp used here hold internal a map and is from the class ICPSequence defined in libpointmatcher https://github.com/ethz-asl/libpointmatcher.

This repository is mainly supported for our research partners and our changing needs. We have less time for public support right now.

— You are receiving this because you authored the thread. Reply to this email directly or view it on GitHub https://github.com/ethz-asl/ethzasl_icp_mapping/issues/43#issuecomment-218602654