Using data from 3d for localization

853 views
Skip to first unread message

Holmar

unread,
Mar 29, 2017, 11:07:33 AM3/29/17
to google-cartographer
Hello,
first of all, nice work. Thank you for that!

I am using the 3d cartographer with a VLP16 + IMU and it works very good.

My biggest problem right now is that I don't know how to use the aquired data.
I would like to use the map to locate myself in the environment. It's not necessary yet to resume the mapping process (I believe there are programmers working on that).

As far as I understand my only option is to use the xray picture I get from finish_trajectory and feed it to acml. But I would have to change the pointcloud to a laserscan for that.
I'm not sure how well I could locate myself like that.
Furthermore it would be nice to be able to use several floors.

Does someone have experience with localization using the 3d cartographer data?

Thank you
Holmar

Damon Kohler

unread,
Mar 30, 2017, 4:22:55 AM3/30/17
to Holmar, google-cartographer
Aside from the work on life long mapping you referred to, I am aware of 6 DoF localization against an OctoMap. You'll need to convert your data into an OctoMap first, though. I believe some folks have been working on an OctoMap plugin for the asset writer pipeline. 

Maybe try asking on http://answers.ros.org/. There's bound to be a few different localization options. You may need to extend the asset writer pipeline to generate the appropriate type of map. X-rays will likely not be useful for 6 DoF localization. They're designed for human consumption.

--
You received this message because you are subscribed to the Google Groups "google-cartographer" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-cartogra...@googlegroups.com.
To post to this group, send email to google-ca...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-cartographer/f6decc56-eef8-40f8-a8a6-f20e856470e7%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
Google Germany GmbH | Erika-Mann-Strasse | 80636 Muenchen | Germany

AG Hamburg, HRB 86891 | Sitz der Gesellschaft: Hamburg | Geschäftsführer: Matthew Scott Sucherman, Paul Terence Manicle

Atsushi Watanabe

unread,
Mar 31, 2017, 4:51:55 AM3/31/17
to google-cartographer
I have an experience of 6-DOF robot localization by using 3D cartographer_ros output.
As a part of my work on autonomous robot navigation, I'm developing light-weight (requiring 50% of i5 single core in a demo) 6-DOF MCL package.

https://github.com/at-wat/mcl_3dl

In this package, PointCloud2 can be used as a map.
For example, the map data packed in the demo bag file of mcl_3dl pkg was generated as following:

1. run cartographer_ros to generate .ply pointcloud file (output by default)
2. convert .ply to .pcd using pcl_ply2pcd (provided by PCL)
3. remove outlier points using pcl_outlier_removal
4. reduce the number of the points using pcl_voxel_grid
5. load filtered .pcd file into ROS as PointCloud2 using pcd_to_pointcloud node (provided by pcl_ros)

You can easily try mcl_3dl localization demo that uses the map generated by cartographer_ros.
It works fine in our case of development of plant inspection robot system.

// Atsushi WATANABE
// Assistant Professor
// Field Robotics Laboratory, Tohoku University
// 6-6-10, Aramaki-Aoba, Aoba-ku, Sendai, 980-8579, Japan
// Phone: 022-795-4317 / E-mail: atsushi.w at ieee.org
Message has been deleted

Holmar

unread,
Mar 31, 2017, 5:37:41 AM3/31/17
to google-cartographer, 2009...@gmail.com
@Damon the 6 DoF localization looks very promising. I thought I might directly use it with octomap for mapping but unfortunately kinetic is not supported in 6 DOF/humanoid_navigation. Partly because sbpl does not support it.

@Atsushi which ROS version does your package support?

Atsushi Watanabe

unread,
Mar 31, 2017, 7:17:55 AM3/31/17
to google-cartographer, 2009...@gmail.com
@Atsushi which ROS version does your package support?

It is tested on Indigo and Kinetic, but not yet registered to the rosdistro.
Still, it is easy to build from source since this package only depends on pcl_ros and some common ROS messages.
Message has been deleted

Holmar

unread,
Apr 6, 2017, 8:33:23 AM4/6/17
to google-cartographer
@Atsushi thank you for sharing your package. I'm trying to use it right now but I think my problem is that I don't have odometry.

I was able to load my map and my sensor data. The localisation won't match with my map and the pointcloud is a little rotated to the map.
I need to figure out how to use my IMU data to produce odometry and link it to my base_link.

When I was able to get the odometry the scan matching should also work, I guess?

Another problem might be that my floor is not even, so after setting the 2d pose est. I'm a few meters above my position.

Best regards
Holger Willing


Am Freitag, 31. März 2017 10:51:55 UTC+2 schrieb Atsushi Watanabe:
I have an experience of 6-DOF robot localization by using 3D cartographer_ros output.
As a part of my work on autonomous robot navigation, I'm developing light-weight (requiring 50% of i5 single core in a demo) 6-DOF MCL package.

https://github.com/at-wat/mcl_3dl

In this package, PointCloud2 can be used as a map.

Atsushi Watanabe

unread,
Apr 6, 2017, 11:58:39 AM4/6/17
to google-cartographer
@Holmar, it is better to be discussed on mcl_3dl's GitHub issue page.
I have opened an issue on https://github.com/at-wat/mcl_3dl/issues/56.

wenw...@gmail.com

unread,
May 8, 2017, 9:09:10 AM5/8/17
to google-cartographer
Hi, Astushi Watanabe, Thanks a lot for your excellent work in mcl_3dl. I have test it but I find the map file in .ply format was too big if the environment was big.
  1. Do you plan to do 3D localization based on octomap? octopmap file is smaller in memory consuming.
  2. have you try the humanoid_localization package to localization in octomap? 

Thanks a lot!


在 2017年4月6日星期四 UTC+8下午11:58:39,Atsushi Watanabe写道:
Reply all
Reply to author
Forward
0 new messages