프로그램 설치 및 환경설정/IOT

[ROS / Jetson Nano] cyglidar_d1 라이다센서 ROS에 설치 및 실행

LiaLi_1997 2023. 5. 6. 18:54

이번에 졸업작품에서 cyglidar_d1 이라는 라이다센서를 사서 그 라이다 센서를 ROS 에 올리고 python3 로 코드를 정리하는 과정을 정리해 보았다.

 

device : jetson nano 4gb

os : ubuntu 18.04

ros : melodic

 

ROS melodic 설치 방법은 아래 링크를 참고하라

https://jeahun10717.tistory.com/68

 

[ROS / Jetson Nano] Jetson Nano ROS 설치

1. Jetson Nano 에 Ubuntu 설치하기 Jetson Nano 에 Ubuntu 설치는 아래 링크에 설명해 두었으니 참고하라 https://jeahun10717.tistory.com/65 [IOT / Jetson Nano] jetson 나노 초기화 밑 ubuntu 설치 졸업작품을 IOT 기기를 활

jeahun10717.tistory.com

 

CygLiDAR ROS 설치는 아래 링크를 참고하면 된다.

https://github.com/CygLiDAR-ROS/cyglidar_d1

 

GitHub - CygLiDAR-ROS/cyglidar_d1

Contribute to CygLiDAR-ROS/cyglidar_d1 development by creating an account on GitHub.

github.com

하지만 위의 링크에서 생략되거나 설명을 안해주는 부분이 좀 있어서 내가 다시 정리한다.

 


1. Preparation

mkdir -p ~/cyglidar_ws/src/
cd ~/cyglidar_ws/src/
git clone https://github.com/CygLiDAR-ROS/cyglidar_d1.git
cd ..
catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3

위의 명령어 차례대로 치면 된다.

* 여기서 주의해야할 점이 원래 공식사이트에서는 catkin_make 를 치는데 이렇게 되면 python 2.x 버전을 사용하게 된다.

필자의 경우 numpy 와 추후에 사용할 tensorflow 때문에 python3.x 버전을 사용해야 해서 catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3 명령어를 사용하였다.

* 그리고 위의 catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3 명령어를 치더라도 아래 오류가 뜰 수 있다.

이는 cmake 과정에서 import 할 패키지가 없을 경우에 발생한다.

따라서 아래 명령어를 치면 해결된다.

# pip3 가 안깔려 있을 때 아래 명령어로 pip3 실행
$ sudo apt install python3-pip

# rosdep 관련 패키지들 설치
$ pip3 install -U rosdep rosinstall_generator wstool rosinstall six vcstools

위 명령어 치고 다시 catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3 치면 정상적으로 동작한다.

sudo apt install ros-noetic-pcl-conversions
sudo apt install ros-noetic-pcl-ros
---or---
# 필자는 ros-melodic 을 설치하여서 아래 2개의 명령어만 쳤다.
sudo apt install ros-melodic-pcl-conversions
sudo apt install ros-melodic-pcl-ros

2. Installation Udev

roscd cyglidar_d1
cd scripts
chmod +x create_udev_rules.sh
./create_udev_rules.sh

위의 명령어중 roscd 를 했을 때 아래 오류가 뜰 수 있다.

roscd: No such package/stack 'cyglidar_d1'

이는 ros 패키지에 cyglidar_d1 을 등록하지 않아서 생기는 문제이다. 등록은 아래 명령어를 치면 된다.

# 1회성으로 해당 터미널에서만 적용하고 싶을 때
$ source ~/cyglidar_ws/devel/setup.bash

# 새로운 터미널이 열릴 때마다 디폴트로 실행하고 싶을 때
$ echo "source ~/cyglidar_ws/devel/setup.bash" >> ~/.bashrc

 


3. Run CygLiDAR

roslaunch cyglidar_d1 cyglidar.launch
roslaunch cyglidar_d1 view_cyglidar.launch

위의 명령어를 치면 아래 결과가 나온다.

# 활성화 되어 있는 rostopic 을 보여준다
$ rostopic list

[결과화면]

 

# [토픽이름]으로 전송되어지고 있는 자료를 터미널에서 볼 수 있게 해 준다.
$ rostopic echo [topic_name]
# ex) 
$ rostopic echo scan_3D

 

[결과화면]