본문 바로가기

Jetson/Jetson ROS

[Jetson ROS] 1. ROS 설치 및 초기 설정

 ROS는 Robot Operation System으로 PC내에서 다양한 slave device와 통신해 제어하는것이 가능한 소프트웨어이다. 필자도 간단한 것이지만 이를 석사연구 및 졸업 논문에 사용한적이 있다. 프로그래밍은 C++ 및 Python으로 구동하도록 되어 있다. 

 

 소프트웨어 내에 Node라는 독립구동되는 요소들이 각자 구동하고 ROSCORE 내에서 message를 통해 소통하는 방식으로 기억한다.

 

 따라서 전혀 다른 목적으로 만들어진 하드웨어끼리 통신도 간단하게 구현이 가능하며 실제로 필자의 경우도 연구실 내 다른 연구원이 만든 로봇과 필자가 만든 로봇를 따로 만든뒤 각 노드를 간단하게 수정하는것으로 기기간 연동이 되도록 구현한 기억이 있다.

 

 본론으로 넘어와서 설치 방법을 설명하도록 하겠다. 

 

 우선 jetson에 ROS를 설치하는 것은 jetsonhack이라는 유저가 간단하게 설치 패키지를 만들어 둔 것이 있다. 이를 사용하는 방법은 다음과 같다. 

 

git clone https://github.com/jetsonhacks/installROSXavier.git
cd installROSXavier
./installROS.sh -p ros-melodic-desktop
rosdep init
rosdep update
./setupCatkinWorkspace.sh

 

git clone을 통해 해당 유저가 올려둔 파일들을 다운 받을 수 있고 폴더내로 진입해 install을 진행하면 된다. 

 

이후 리부트를 진행하면 설치가 완료된다.

 

 필자의 경우 ubuntu 18.04(Bionic)을 사용하기 때문에 이에 맞는 버전인 ros melodic을 설치했다. 이부분은 설치 환경에 따라 달라지니 꼭 확인하는 것을 추천한다.

 

 필자가 사용한 jetson Xavier NX의 경우 위와 같은 코드를 사용했지만 Jetson Nano 2GB의 경우 아래의 코드로 설치하면 된다. 주소를 installROS.git으로만 설치해도 되는데 Xavier NX에서도 이 코드가 작동하는지는 확인하지 못했다.

 

git clone https://github.com/jetsonhacks/installROS.git
cd installROS
./installROS.sh -p ros-melodic-desktop
rosdep init
rosdep update
./setupCatkinWorkspace.sh

 

 설치가 완료된 이후엔 roscore실행을 통해 확인이 가능하다.

 

 원래는 catkin workspace등도 따로 구현해야 하는 것으로 기억하는데 설치하니 자동으로 catkin_ws폴더가 생성되었다.

 

cd catkin_ws
roscore

 

 실행이 완료되었다면 설치 성공이다.

 

 

 자세한 내용은 http://wiki.ros.org/melodic/Installation/Ubuntu 를 참고하면 된다.

 

 다음은 초기 설정에 대한 내용이다.

 

cd catkin_ws
source devel/setup.bash
source /opt/ros/melodic/setup.bash
sudo apt-get install python3-rospkg

 

 솔직히 말해 해당 코드가 왜 필요한지는 정확히 모른다. 하지만 ROS의 작동시 기본 source 경로를 어디로 해줄지에 대한 설정이다 정도로만 기억하고 있으며 정확하진 않다. 마지막 줄 코드는 ros패키지 내에서 python3를 사용하도록 해주는 코드이다.

 

 위의 명령 이후 bashrc에 몇가지 확인 및 추가할 내용이 있다. 이를 위해 gedit으로 해당파일에 접근해 위의 source가 정확히 입력이 되어있으며 export uri 및 path의 설정을 확인해야한다.

 

그뒤 ROS에 사용할 수 있는 유용한 단축 명령어를 추가하면 된다.

 

gedit ~/.bashrc

 

alias cw ='cd ~/catkin_ws'
alias cs ='cd ~/catkin_ws/src'
alias cm ='cd ~/catkin_ws && catkin_make'

 

각 코드는 catkin workspace 및 src폴더에 바로 진입하게 해주는 단축명령어이며 cm의 경우 workspace에 진입후 catkin make를 진행해주는 코드이다. 많이 사용하는 명령어로 해외 및 국내에서 정보를 찾을때 이러한 단축명령어를 당연하게 사용하는 글들이 많기 때문에 신경써 주는것이 좋다.