Ask Your Question
0

Aligning pcd with UTM frame

asked 2019-06-19 00:14:35 -0500

eduardo gravatar image

Dear community,

I'd like to use GPS data together with NDT matching for vehicle localization. Specifically, I'm using Autoware which allows to use a pose derived from GPS to correct NDT matching. However, to do that, there must be a valid transform between the pose provided by the GPS (I guess the UTM frame)_ and the PCD (I guess the map frame). I saw some given examples where the pcd that is used is already referenced in the UTM frame. That is, the pcd points are specified in UTM coordinates. However, I have built the pcd by myself using ndt mapping and, as result, it has its own frame. How would you address this issue?

So far, I computed the transformation matrix to align my pcd to the UTM frame. I did that using cloudcompare. From the transformation matrix I derived a tf transform. However, the alignment is not fully correct (reasonably good in the x-y plane, but quite bad in z). There are several places in the map where the height difference w.r.t. other points does not correspond to reality. The wrong z value makes ndt failing to initialize the mapping algorithm, although the x-y points are a pretty good initial guess. I was thinking to project the GPS point (i.e., the derived UTM coordinate) into the pcd to get the corresponding z value. Does that make sense? I feel I am missing something here and that there must be a standard way to tackle this issue.

Thanks a lot,

Eduardo

edit retag flag offensive close merge delete

Comments

Can't you tranform you map in z direction (or maybe in pitch and roll direction) so that height of pcd matches with GPS point?

mitsudome-r gravatar imagemitsudome-r ( 2019-06-19 02:07:07 -0500 )edit

I tried using only translation transform in z and it helps a bit, but it isn't a proper solution. I'm afraid that playing with pitch and roll might affect the current goodness of x-y values. I also noticed that, in the pcd, streets that are supposed to be flat, look slightly bent in the z axis. This is probably due to the outcome of mapping, but I guess it is a normal result, right? I think the real question is whether transforming the pcd is the best solution, or are there other alternative approches to achieve the same result?

eduardo gravatar imageeduardo ( 2019-06-19 02:15:53 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
2

answered 2019-06-19 03:49:34 -0500

mitsudome-r gravatar image

I also noticed that, in the pcd, streets that are supposed to be flat, look slightly bent in the z axis

I believe this is the root cause that you can't give correct z coordinate. This "bent" cannot be avoided if you are using ndt_mapping to create large maps. If you want to use gps with large environment, then best solution is to ask some companies to create accurate HD(pcd) maps for you. (like HERE, Carmera, etc.)

I was thinking to project the GPS point (i.e., the derived UTM coordinate) into the pcd to get the corresponding z value.

This could work, but it's also very likely that your x,y coordinates are wrong in some parts of your map if the map is "bent". I think it is more appropriate to find a way to get accurate pointcloud.

FYI, PCL library functions in ndt_matching uses float to express x,y,z values. If you are having very large UTM coordinate values, then that may be worsening your ndt_matching accuracy.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2019-06-19 00:14:35 -0500

Seen: 46 times

Last updated: Jun 19