포스트

3D LIDAR-Camera extrinsic calibration (maual)

3D LIDAR-Camera extrinsic calibration (maual)

extrinsic calibration이란?

💡

https://github.com/koide3/direct_visual_lidar_calibration?tab=readme-ov-file

카메라와 라이다의 상대적인 거리를 찾기 위한 변환 처리 과정이다.

  • input : 카메라 image와 info, 3d lidar point가 담긴 rosbag file
  • output : 카메라와 라이다의 변환관계가 담긴 yaml파일

진행방법

💡

installation

  • 나는 도커를 통해 이미지를 다운받았다.
1
2
3
4
5
6
7
8
9
docker pull koide3/direct_visual_lidar_calibration:humble


# bag파일을 전처리 하기 위한 명령어 
docker run   --rm   --net host   --runtime=nvidia   --gpus all   --env DISPLAY=$DISPLAY   --env XAUTHORITY=${XAUTHORITY:-$HOME/.Xauthority}   -v /tmp/.X11-unix:/tmp/.X11-unix   -v /home/loe/workspace/autoware_carla/data/rosbag_extrinsic_calib_left:/tmp/input_bags   -v /home/loe/workspace/autoware_carla/data/result:/tmp/preprocessed   koide3/direct_visual_lidar_calibration:humble   ros2 run direct_visual_lidar_calibration preprocess -adv /tmp/input_bags /tmp/preprocessed

# 수작업으로 라이다와 카메라의 correspondence를 지정해주기 위한 명령어
docker run   --rm   --net host   --runtime=nvidia   --gpus all   --env DISPLAY=$DISPLAY   --env XAUTHORITY=${XAUTHORITY:-$HOME/.Xauthority}   -v /tmp/.X11-unix:/tmp/.X11-unix   -v /home/loe/workspace/autoware_carla/data/rosbag_extrinsic_calib_right:/tmp/input_bags   -v /home/loe/workspace/autoware_carla/data/result:/tmp/preprocessed   koide3/direct_visual_lidar_calibration:humble   ros2 run direct_visual_lidar_calibration initial_guess_manual /tmp/preprocessed

data collection

  • bag record를 통해 약 40초간 bag파일을 수집해줍니다. (16채널이므로 많이 따야한다)
  • 이후 위의 preprocess command를 입력한다.

preprocess

1
2
3
4
5
6
docker run \
  --rm \
  -v /home/loe/workspace/autoware_carla/data/calibration_center:/tmp/input_bags \
  -v /home/loe/workspace/autoware_carla/data/lidar_calibration:/tmp/preprocessed \
  koide3/direct_visual_lidar_calibration:humble \
  ros2 run direct_visual_lidar_calibration preprocess -a /tmp/input_bags /tmp/preprocessed

  • 2~3분정도의 처리시간이 소요된다.

  • 이후 내가 지정한 result파일에 ply파일과 png파일이 잘 저장되었는지 확인한다.

manual pointing

1
2
docker run   --rm   --net host   --runtime=nvidia   --gpus all   --env DISPLAY=$DISPLAY   --env XAUTHORITY=${XAUTHORITY:-$HOME/.Xauthority}   -v /tmp/.X11-unix:/tmp/.X11-unix   -v /home/loe/workspace/autoware_carla/data/rosbag_extrinsic_calib_right:/tmp/input_bags   -v /home/loe/workspace/autoware_carla/data/result:/tmp/preprocessed   koide3/direct_visual_lidar_calibration:humble   ros2 run direct_visual_lidar_calibration initial_guess_manual /tmp/preprocessed

왼쪽 카메라가 잘 calibration된 모습이다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.