먼저 이 코드를 사용하기에 앞서서 Github: https://github.com/Mindkosh/colorize-lidar-pointcloud 이곳을 참고하여서 code를 수정했음을 밝힌다.
나의 github: https://github.com/Yoon-Ji-Il/colorize_map
<설치>
<aside> 💡
sudo apt-get update sudo apt-get install -y ros-noetic-cv-bridge python3-rosbag python3-rospkg pip3 install --user open3d
</aside>
<aside> 💡
colorize-lidar-pointcloud/ ├─ params/ │ └─ camera-parameters.json # 카메라 파라미터 (PINHOLE + LiDAR→Camera extrinsic 4×4) ├─ exports/ #이곳은 자신에게 맞게 만들어야 한다. │ ├─ images/ # bag에서 추출된 이미지 │ ├─ clouds/ # bag에서 추출된 PCD │ ├─ colorized/ # 프레임별 colorized PLY │ └─ merged_colorized.ply # (옵션) 병합 결과 ├─ tools/ │ ├─ export_from_bag.py # bag → images/ + clouds/ │ ├─ make_pairs.py # 타임스탬프 매칭 리스트 생성 │ ├─ colorize_pairs.py # 1카메라 색입히기 실행 │ ├─ merge_colorized.py # (옵션) 여러 프레임 병합 │ ├─ pub_pointcloud.py # (옵션) RViz 퍼블리셔 │ └─ overlay_one.py # (옵션) 이미지 위 오버레이 점검 ├─ lidarProjectionUtils.py # Mindkosh 유틸 └─ pointcloudIO.py # Mindkosh 유틸
</aside>
여기서 조금 더 추가설명하자면, bag파일로부터 images,clouds를 추출해야한다. 특히 exports를 자신에게맞게 설정해두면 된다.
params/camera-parameters.json
)-camera_model: pinhole -intrinsic,distortion은 matlab,py-OCamCalib를 통해서 구한다. -extrinsic은 koide3를 통해서 구한다.(여기에 집어넣어야하는 값은 lidar→camera transformation matrix를 집어넣어야한다. 그런데 우리가 koide3에서 구한 값은 이미 lidar →camera이기 때문에 그 값을 그대로 집어넣어도 된다.) 다만 주의점이 1가지 있다.
강제로 4x4 matrix로 변환이 이루어진 채로 json파일에 넣어지기 때문에 반드시 주의를 기울여서 값을 넣어줘야한다.
tools/export_from_bag.py 이곳에서 경로를 바꾸어 bag file로부터 pcl,image를 추출해서 저장한다.