Cloned objects in poinclouds

Discuss all Mobile Scanning related issues here.
Post Reply
FocusFeli2
I have made <0 posts
I have made <0 posts
Posts: 1
Joined: Mon Jun 13, 2022 2:43 pm
Full Name: Felipe Moran
Company Details: Focus Ingenieria
Company Position Title: Electronics Engineer
Country: Uruguay

Cloned objects in poinclouds

Post by FocusFeli2 »

Hi! I'm new to mapping and laserscan and I'm having some troubles with my point clouds. I think the problems are caused by some known effect, but as I said, I am a newbie. Basically, I'm using a Velodyne VLP16 mounted on top of a truck to map. I'm using ROS Melodic in Ubuntu 18.04.

What I'm doing:
I'm using this driver to get sensor_msg::poincloud2 messages. Then I do as follows (I want geolocalized points):

Pabs = Pimu + geo(Prel)

Where:
  • Pabs -> Absolute position of a point, in lat long & altitude
  • Pimu -> Absolute position of the gps+imu , in lat long & altitude
  • Prel -> Position of a point, relative to the imu, in meters
  • geo() -> Function that takes a position in meters, and translates it to lat and long (degrees)

After this, I just accumulate and save point clouds in .las format, using PDAL.

What I'm seeing:
Everything looks roughly fine, but some objects seem to be cloned multiple times. This effect appears to be noticeable when the truck takes curves, and is present in this picture.

What could be causing this? Is this a known issue?
User avatar
smacl
Global Moderator
Global Moderator
Posts: 976
Joined: Tue Jan 25, 2011 5:12 pm
11
Full Name: Shane MacLaughlin
Company Details: Atlas Computers Ltd
Company Position Title: Managing Director
Country: Ireland
Linkedin Profile: Yes
Location: Ireland
Has thanked: 402 times
Been thanked: 415 times
Contact:

Re: Cloned objects in poinclouds

Post by smacl »

Looks very much like you're matching sets of laser and GPS observations together to form a final point rather than interpolating GPS position based on time, bearing and velocity. Say for example my laser gives me 100,000 points per second, my GPS give me 10 points per second and my IMU gives me 100 points per second. For any given laser observation, you need to interpolate GPS position and IMU values based on surrounding readings. Each unique laser point needs matching unique GPS position which you haven't observed directly and hence need to interpolate. You can linearly interpolate GPS over time as one solution, which assumes constant velocity. Better to interpolate velocity and direction from IMU values based on time and interpolate position based on next and last nearest positions, time, velocity and direction.
Post Reply

Return to “Mobile Scanning”