2018년 6월 19일 화요일

밸로다인 LiDAR 센서와 VeloView 사용기

이 글은 밸로다인(Velodyne) LiDAR 센서와 VeloView 사용기를 간략히 공유한다.

진행 중인 연구과제 핵심 기술을 좀 더 깊게 이해하기 위해, 벨로다인 센서를 구입해 분석중이다. 2014년부터 진행한 비전 역설계 과제의 활용 센서는 Kinect, Intel RGBD sensor, RPLiDAR 였다. 이때 목적은 저렴한 스캔 기술이 가능한지 파악하는 것이었다. 그때 문제는 정확도와 밀도였는 데, Trimble TX5 LiDAR에 비해 현격하게 차이나는 정확도와 밀도는 플랜트와 같은 정밀 엔지니어링에 활용하기 어려운 수준이었다(플랜트 대상).

밸로다인센서 VLP-16은 IMU 데이터를 입력받을 수 있는 데이터 통합 보드를 함께 제공한다. 센서 스펙 (문서 다운로드)은 다음과 같다. 참고로, TX5 같은 전문적인 LiDAR 센서는 최소 수백만 포인트 이상 획득되는 데 실시간은 아니며, 가격이 고가이다. 참고로, 저가 모델인 VLP-16은 7~8백만원대로 구입할 수 있다.
  • Dual Returns
  • 830 grams
  • 16 Channels
  • 100m Range
  • Up to 600,000 Points per Second
  • 360° Horizontal FOV
  • ±15° Vertical FOV
  • Low Power Consumption
  • Protective Design
벨로다인에서 얻은 (X, Y, Z, I) 데이터로 구성된 포인트 클라우드 데이터에는 가속도 값이 포함되어 있지 않다. 센서가 기울어지면, 데이터도 함께 기울어지므로, 이를 보정할려면, IMU에서 제공하는 Xa, Ya, Za 가속도 값이 필수적이다. 통합 보드에 IMU를 장착하고, 데이터를 취득하면, (X, Y, Z, I, Xa, Ya, Za) 값이 함께 TCP/IP 케이블을 통해 컴퓨터에 전달되는 구조이다.
센서, 데이터 통합 보드 및 통신 케이블

벨로다인 라이다 센서

데이터 통합 보드

이론상 VLP-16센서는 100미터까지 스캔을 할 수 있다. 본인은 사무실 공간에서 스캔을 해 보았는 데, 600 미터제곱 면적의 사무실 공간 벽체까지 스캔되는 것을 확인하였다. 참고로, 사무실은 둥근 직사각형 모양이며, 중간에서 벽체까지 거리는 25미터 정도이다.
스캔된 포인트 클라우드 모습

밸로다인 센서를 구동하는 프로그램은 VeloView이다. 윈도우에서는 VeloView를 설치하면드라이버가 함께 설치된다. TCP/IP4 네트워크 등 설정 후, 프로그램을 실행하고 연결된 라이다 장치를 VLP-16으로 선택하면 바로 점군을 실시간으로 볼 수 있다. 

TCP/IP4 설정

단, TCP/IP 이더넷 케이블 통신이므로, 방화벽이 있는 경우, 비활성화해야 한다. 우분투 리눅스에서는 아래 github 링크에서 다운로드 받은 VeloView 소스를 빌드해야 한다. 
VeloView는 포인트 클라우드를 시계열방식으로 캡쳐할 수 있는 기능있다. .pcap 점군 캡쳐파일을 저장한 후, 다시 재생할 수 있다. VeloView의 자세한 기능은 다음 영상을 참고한다.

ParaView는 획득된 점군을 분석하고, 처리하는 프로그램으로 구입시 함께 포함되어 있다. 오픈소스이므로, 다운로드받아 설치해도 된다. 
ParaView 활용 예

3차원 점군은 대용량이다. 임베디드 보드는 대용량 점군 처리가 가능한 것이어야 하며, 다음과 같은 것을 추천한다. 
NVIDIA TX2
NVIDIA TX2 CARRIER BOARD(캐리어 보드. TX2 개발보드 크기가 너무 커 이동성이 떨어진다면 캐리어 보드를 사용하면 된다. USB 인식이 안될 경우에는 이 링크(#1, #2)를 참고 한다)

다음은 라떼판다(LATTE PANDA) 임베디드 컴퓨터에 VELOVIEW를 설치한 후 실행한 모습이다. 큰 문제 없이 포인트 클라우드가 실시간으로 획득되어 가시화되는 것을 확인할 수 있다.
 



아래는 ODROID XU4에 VLP16를 마운트해 만든 드론 기반 LiDAR 스캔 프로젝트 사례이다. 

이제, 엔지니어링 전용 라이다, 토탈 스테이션과 밸로다인 센서의 정확도, 밀도를 확인 비교해 볼 계획이다.

댓글 14개:

  1. 궁금한게 있는데 혹시 질문도 받아 주시나요??

    답글삭제
    답글
    1. 댓글이 실시간으로 통보되는 거이 아닌지라... 제가 확인해 보고 발견할때 답변 드릴수 있습니다.

      삭제
  2. 통합보드에 IMU장착 기능이 있나요?

    답글삭제
    답글
    1. 댓글 달린지 몰랐네요. 벨로다인과 함께 연결되는 IMU를 구입해 사용했습니다. 작년이라 기억이 가물하긴 한데, IMU제조사에서 벨로다인 연결방법을 제공해 줘서, 세팅하는 데 크게 어렵진 않았어요.

      삭제
    2. 작성자가 댓글을 삭제했습니다.

      삭제
    3. 좋은 글 잘 읽었습니다, 고맙습니다.
      저도 라이다에 IMU를 통합하고자 하는데요, 사용하신 IMU 품번/제조사를 혹시 알 수 있을지요?
      감사합니다.

      삭제
    4. https://daddynkidsmakers.blogspot.com/2019/06/gnss-ros.html
      참고 바랍니다.

      삭제
  3. Great work! How can I save the data from the point cloud in Rviz? Thank you. Best regards.

    답글삭제
    답글
    1. refer to the below link.

      http://wiki.ros.org/velodyne/Tutorials/Getting%20Started%20with%20the%20Velodyne%20VLP16

      삭제
    2. Hello, if you can visualize PCD in rviz you can save PCD by bag files.
      Insert terminal like this.
      rosbag record -O 'filename' / velodyne_cloud_2
      filename means file name to be saved

      삭제
  4. 안녕하세요. 항상 좋은 글 잘 보고 배우고 있습니다. SLAM에 입문한지 얼마 되지 않아서 많이 방황하고 있는 중이었는데 올려주신 글들이 정말 큰 도움이 되고 있습니다. 여쭙고 싶은 것이 있습니다.

    1. IMU 센서에 대한 글을 올려주신 것을 봤었는데, 저도 같은 회사에서 3DM-GX5-25 제품을 (VLP-16과 함께) 구매했습니다. Daddy maker 님께서 말씀하신대로 통합 보드에 IMU를 장착하면 IMU+LiDAR 데이터가 기록되어야 하는데, 제가 알아본 바에 의하면 VLP-16 데이터와 3DM-GX5-25 데이터를 각각 받아서 로깅을 해야 한다고 합니다. 두 센서를 임베디드 보드에 각각 연결한 이후에 로깅해서 데이터를 얻는 것이 아닌가요?
    2. 모바일 LiDAR로 SLAM을 할 때 확인용 모니터 없이 정합된 데이터를 기록할 수 있는 방법은 없을까요?

    답변 부탁드립니다! 감사합니다.

    답글삭제
    답글
    1. 1. 네. 각각 데이터를 얻습니다.
      2. ROSBAG 이용해 RECORD할 수 있습니다.

      삭제
  5. 항상 올리신 글 보면서 많은 도움 받고 있습니다.
    저도 질문 하나 드립니다. 위에 글을 보면 라이다의 설치 각도가 바뀔 시, 각도 보정을 하기 위해서, imu를 사용한다고 서술되어 있습니다.

    제가 이해한 바로는, imu와 라이다 데이터를 따로 저장 하여서, 알고리즘을 통해서, imu 데이터를 바탕으로, 라이다 데이터의 각도 보정을 한다고 이해했습니다. 혹시 맞을까요?

    답글삭제
    답글
    1. 다중 센서들의 데이터를 이용해 원하는 참값을 얻는 문제는 센서 퓨전이란 영역이고, 수치해석 계산 등이 포함됩니다. 다음 링크를 참고하시길 바랍니다.

      https://www.mdpi.com/2072-4292/14/12/2835

      삭제