Robotics StackExchange | Archived questions

multiple pointcloud2 to one single laserscan

Hello there,

I have a robot using 2 3D cámeras (both different) Astra Pro and Pico_flexx, both them get a different pointcloud output but both are pointcloud2, one of those cámeras is watching forward and the other one backwards.

I am trying to get odometry and navigation with those cámeras both since one wouldn't be enough, and for that i was already using laserscanmatcher, in the documentation says it can use pointcloud2 as an input.

AMCL accepts only laserscan for navigation since it was developed for 2d navigation.

So, what i tried first was pointcloudtolaserscan with one camera which i found insufficient for the purpose (that's why 2 cameras).

I need to "merge" those 2 pointclouds into one but what i found at the forums tells that both pointclouds need to have the same number of points (to concat...)

Any idea what to use to either use both clouds for laserscanmatcher, or to achive 2 pointclouds into 1 laserscan?

thank you

Asked by herimakil on 2016-10-05 04:02:13 UTC

Comments

transform both pointclouds to laserscan1 and laserscan2, in a script, subscribe to both laserscans and make another one which is -PI to PI, fill the angle with both laserscans data and infinity for blind zone angle.

Asked by zhibo on 2016-10-05 08:19:51 UTC

could this help with the merging of the laserscans? https://github.com/iralabdisco/ira_laser_tools

Asked by herimakil on 2016-10-06 09:39:59 UTC

Yes, this is a very nice one, the inputs are laserscan msg descrived in the launch file, so you have to convert point_cloud to laser scan first, and i think you can adjust the relative angle by dynamic config, you should be able to output one single laserscan topic

Asked by zhibo on 2016-10-06 11:24:52 UTC

Okay, i tried it and i can't make it work, not to mention that it does a lot of transformations between laser to pointcloud to move it to a frame destination.

From what i've seen here tutorial it transforms

Asked by herimakil on 2016-10-14 03:34:37 UTC

the lasers to pointclouds to use x y z pose to move it to the frame destination since the laser has only x y. In my case i don't need Z because i already transform the lasers from pointclouds and they will all be in the same plane (even if they came from different Z positions).

Asked by herimakil on 2016-10-14 03:38:19 UTC

Answers