Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How are the results for calibrating sensors mounted to cars #38

Open
RichardYann opened this issue Jul 26, 2022 · 17 comments
Open

How are the results for calibrating sensors mounted to cars #38

RichardYann opened this issue Jul 26, 2022 · 17 comments

Comments

@RichardYann
Copy link

RichardYann commented Jul 26, 2022

The NOTE at the beginning said, "Accurate results require highly non-planar motions, this makes the technique poorly suited for calibrating sensors mounted to cars."

Anyone used this tool on calibrating sensors on cars?

How are the results?

@dezhi-l
Copy link

dezhi-l commented Mar 10, 2023

  • I think it is also equally applicable to the calibration of autonomous vehicle. I test it with the sensors on own self-driving car, This tool can pretty well calibrate the external parameters between lidar-imu,The lidar-imu offset accuracy of the map built by the parameters after calibration can reach less than 10cm, and the attitude accuracy can be less than 1 degree.

  • The map construction accuracy through this external parameter is very high, as shown in the figure below, The vehicle at the same position has been scanned multiple times, and the poles in the point cloud are very clear,At the same time, the position of the pole and the handheld rtk(red point) fit well

  1. Pole and sign after multiple scans of the vehicle
    1677737772692
    pole_rtk
    pole

  2. Mapping

kq_mapping
otherrjpg

@RichardYann RichardYann changed the title How is the results for calibrating sensors mounted to cars How are the results for calibrating sensors mounted to cars Apr 12, 2023
@RichardYann
Copy link
Author

@dezhi-l Well, thank you so much!

@ry4nzhu
Copy link

ry4nzhu commented Jul 4, 2023

Hi, I am wondering what is the configuration setup for getting the lidar-imu calibration accuracy you mentioned for autonomous vehicles. Are you using the default parameters?

@dezhi-l
Copy link

dezhi-l commented Jul 5, 2023

Most of the parameters just use the default parameters. I have pasted my parameters below, and it should be noted:

  1. the cloud rosbag needs to contain loopback data, so as to ensure that the position(x y) and attitude(y p r) of each dimension are constrained,and the calibration accuracy will be better.
  2. Both global optimization and local optimization can be used for calibration,and two different calibration methods, the optimized parameters ​​are almost the same. You just need to pay attention to the following two parameters, and set them as large as possible. @ry4nzhu
  • translation_range ( Search range around the inital_guess during the local optimization stage. ps: If you are using global optimization, the inital_guess are zero )
  • local_knn_max_dist && global_knn_max_dist (Error between points is limited to this value during global optimization.)

launch file

<arg name="bag_file"
    default="/media/tage06/DL-GT-1/back_curb_online_data/liucun/liucun_data_2/bag/036_2023_05_11_20_04_back_lidar.bag" />

<arg name="transforms_from_csv" default="true" />
<arg name="csv_file"
    default="/media/tage06/DL-GT-1/back_curb_online_data/liucun/liucun_data_2/processed_data/trajectory.csv" />

<arg name="inital_guess"
    default="[0.0, 0.0, 0.0, 0.0, 0.0, 0.0]" />


<node pkg="lidar_align" name="lidar_align" type="lidar_align_node" output="screen">
    <param name="input_bag_path" value="$(arg bag_file)" />
    <param name="input_csv_path" value="$(arg csv_file)" />
    <param name="output_pointcloud_path"
        value="$(find lidar_align)/results/$(anon lidar_points).ply" />
    <param name="output_calibration_path"
        value="$(find lidar_align)/results/$(anon calibration).txt" />
    <param name="transforms_from_csv" value="$(arg transforms_from_csv)" />

    <param name="local" value="false" />
    <param name="time_cal" value="false" />
    <rosparam param="inital_guess" subst_value="True">$(arg inital_guess)</rosparam>
    <param name="translation_range" value="10.0" />
    <param name="angular_range" value="0.30" />
    <param name="max_evals" value="1000" />
    <param name="local_knn_max_dist" value="10.0" />
    <param name="global_knn_max_dist" value="10.0" />
    <param name="knn_batch_size" value="1000" />
    <param name="knn_k" value="1" />
    <param name="min_point_distance" value="2.0" />
    <param name="max_point_distance" value="60.0" />
    <param name="keep_points_ratio" value="0.10" />
</node>

@ry4nzhu
Copy link

ry4nzhu commented Jul 5, 2023

Thanks a lot for your quick response! I really appreciate it.

I got [lidar_align-2] process has died [pid 23830, exit code -9, cmd /home/ryanzhu/lidar_pose_align/devel/lib/lidar_align/lidar_align_node __name:=lidar_align __log:=/home/ryanzhu/.ros/log/a5456592-1af4-11ee-8eaf-9905337355e7/lidar_align-2.log]. for setting the parameter "keep_points_ratio" any number larger than 0.01. Have you encountered this error before?

@dezhi-l
Copy link

dezhi-l commented Jul 5, 2023

sorry, I haven't encountered this issues before. but i think that the node died because the ram is full.
You can open system monitor to observe the memory usage @ry4nzhu

@ry4nzhu
Copy link

ry4nzhu commented Jul 6, 2023

Thanks @dezhi-l. Just one quick follow-up question, in your previous note, you mentioned that the cloud rosbag needs to contain loopback data. Does that mean the vehicle trajectory needs to be circular (i.e. it re-enters its beginning location to form a close loop)?

@dezhi-l
Copy link

dezhi-l commented Jul 6, 2023

yes, you are right. the vehicle trajectory needs to be circular. @ry4nzhu
I pasted the trajectory example below
image

@huangwefeng121
Copy link

你好,你的数据是lidar和纯imu的标定吗,loader.cpp代码中odom坐标系是通过imu积分得到的吗,如果是,积分得到的漂移会不会很大?期待你的回复

@dezhi-l
Copy link

dezhi-l commented Jul 13, 2023

我用的是车载组合导航(rtk)和雷达之间的标定,没有用imu做积分。 如果是imu-lidar标定的话,绕8字imu积分误差估计会很大,标定精度无法保证 @huangwefeng121

@pedestrain123
Copy link

我用的是前进组合导航(rtk)和雷达之间的标定,没有用imu做积分。如果是imu-lidar标定的话,绕8字imu积分估计会很大,标定精度无法保证@huangwefeng121

大佬你好,我这边rtk输出的是基站坐标系下的车辆位姿(话题/gps/odom),位姿数据如图所示
2024-08-10 11-57-20屏幕截图
也是采集的绕8字的激光雷达和rtk的/gps/odom话题,可以作为输入进行标定吗

@pedestrain123
Copy link

是的,你说得对。车辆轨迹需要是圆形的。@ry4nzhu 我在下面粘贴了轨迹示例 图像

大佬您好,可以提供一下您的数据包吗?想测试一下,万分感谢

@pedestrain123
Copy link

抱歉,我以前没有遇到过这个问题。但我认为节点死机是因为内存已满。 您可以打开系统监视器来观察内存使用情况@ry4nzhu
还有一个问题想请教您,您绕8字进行标定时候,用时大概多久啊?是不是需要很长时间?

@pedestrain123
Copy link

sorry, I haven't encountered this issues before. but i think that the node died because the ram is full. You can open system monitor to observe the memory usage @ry4nzhu

我用自己的数据包(平面运动绕8字)进行标定时,xy方向平移误差2cm左右和xyz旋转1度左右,但是z轴平移误差差6m,请问是什么原因?怎么解决?您有遇到这个问题吗?

@pedestrain123
Copy link

Hi, I am wondering what is the configuration setup for getting the lidar-imu calibration accuracy you mentioned for autonomous vehicles. Are you using the default parameters?

Hello, have you successfully calibrated? I use it to calibrate lidar and RTK, and the data acquisition method revolves around 8 characters. The xy direction offset and xyz axis rotation error are still acceptable, but the z-axis offset is particularly large. Have you encountered this problem?您好,请问您标定成功了吗?我用它标定lidar和rtk,数据采集方式绕8字,xy方向偏移以及xyz轴旋转误差还可以,但是z轴偏移特别大,请问您遇到这个问题了吗?

@dezhi-l
Copy link

dezhi-l commented Sep 23, 2024

@pedestrain123 z轴没有约束,标出来的offset z 是不准确的 [ps: offset-z值在enu坐标系下是整体偏移,不会影响点云精度]

@pedestrain123
Copy link

@dezhi-l 大佬你好,请问您有用过商汤opencalib的自动标定方法进行车载的lidar2ins外参标定吗?我用自己数据集标定效果不佳,用他们开源数据集标定效果较好。可以加你QQ或者微信交流一下吗?QQ2985782675 微信:19516191665

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants