안녕하세요. 본 아우스터사에서 만들어진 라이다 OS-1 64는 64채널의 레이어를 갖고 있는 라이다 센서입니다.
자율주행자동차에서 SLAM을 수행하기위해 필수적인 센서인 LiDAR를 UBUNTU PC와 연결하여 데이터를 시각화 하는 과정을 소개하겠습니다.
컴퓨터 환경은 Ubuntu 18.04 / ROS melodic / legion 530y 입니다.
본 글은 다음의 내용을 중심으로 전개합니다.
https://github.com/ouster-lidar/ouster_example
1. ouster-lidar ROS 환경설정
1.1 아우스터 예제를 다운로드 한 후 안에 있는 client, ros, viz 등의 example 전체폴더를 자신의 work space에 옮겨준다.
1.2 cmake 관련 파일을 설치해주자.
$ sudo apt install build-essential cmake libglfw3-dev libglew-dev libeigen3-dev \
libjsoncpp-dev libtclap-dev
1.2 catkin_make를 해준다.
$ cm
$ source ~/.bashrc
2. ouster_ros package를 통한 PC와 OS-1 연결
본 패키지는 OS1 data를 ROS 토픽의 표준에 따라 publish하는 샘플코드를 포함한다.
ubuntu 18.04 / ubuntu 16.04 모두에서 지원한다고 한다.
2.1 Path 설정
아우스터 예제를 포함하고 있는 폴더에 path를 설정한다.
터미널에서 다음과 같이 코드를 입력한다.
$ export CMAKE_PREFIX_PATH=/home/jeff/catkin_ws/ouster_example
2.2 Source 등록
$ source /opt/ros/melodic/setup.bash
2.3 OS1에 전원을 인가하고 랜선으로 컴퓨터와 연결시킨다.
2.4 네트웤크 설정에서 IPv4 탭으로 들어가고 임의의 address와 Netmask 를 입력하고 Apply를 눌러준다.
2.5 ifconfig 을 통해서 네트워크가 잘 잡혔는지 확인한다.
$ ifconfig
2.6 터미널에서 ~/catkin_ws/src/ouster_example/ouster_ros 로 이동한다.
$ roscd ouster_ros/
2.7 os1.launch파일을 실행한다.
$ roslaunch os1.launch os1_hostname:=os1-992007000***.local os1_udp_dest:=192.168.100.1
# os1_hostname은 os1.시리얼넘버.local (시리얼 넘버는 제품의 상단에 위치한다.)
# os1_udp_dest는 컴퓨터에서 잡은 네트워크 ip주소를 입력한다.
3. rosbag 기능을 통한 vizualization
3.1 Rviz 실행
$ rviz -d c/ouster_example/ouster_ros/viz.rviz
3.2 Rviz 설정
add 버튼을 누르고 by topic 탭에서 pointcloud2를 설정해준다.
좌측 상단에 fixed frame 에 os1_lidar를 입력해준다.
3.3 센서의 raw data 확인
3.4 아우스터 ROS 기반 샘플 데이터 (데이터 rosbag 파일)
3.5 샘플 데이터 중 아무 rosbag 파일이나 다운로드한다.
3.6 다음코드를 입력하여 리플레이를 하여 토픽을 생성시킨다.
$ roslaunch os1.launch replay:=true os1_hostname:=<os1_hostname>
$ cd
$ cd Downloads
$ rosbag play --clock <bagfile>
기타 유용한 코드들
To record raw sensor output
- In another terminal instance, run rosbag record /os1_node/imu_packets /os1_node/lidar_packets
- This will save a .bag file of recorded data in that directory
Rviz에서 단축키
o | Increase point size |
p | Decrease point size |
m | Cycle point cloud coloring by z-height / intensity / z-height plus intensity / range |
c | Cycle color scheme for range image |
shift c | Cycle color scheme for point cloud |
v | Toggle color cycling in range image |
n | Display ambient image from the sensor |
r | Reset camera position |
0 (zero) | Toggle parallel projection and reset camera |
d | Cycle through fraction of the window height used for displaying range and intensity image |
'Autonomous Vehicle > LiDAR : Point Cloud' 카테고리의 다른 글
[ROS PCL] 포인트 클라우드 포인트 추출하고 군집화 하기 (차선 추출 및 Euclidean Distance Clustering) (0) | 2020.08.19 |
---|---|
[ROS PCL] 포인트 클라우드 ROI(Region of Interest) 설정하기 (4) | 2020.08.16 |
[ROS PCL] 포인트 클라우드 회전변환행렬을 통한 Rotation 하기 : Using a matrix to transform a point cloud (0) | 2020.08.16 |
ROS PCL : Voxelize 포인트 클라우드 라이브러리를 이용하여 voxelize 하기 (0) | 2020.08.04 |
Loam velodyne : LOAM Open Source 실행 하기 (11) | 2020.07.28 |