Jetson nano 보드에 ROS 2를 설치하기 위해서는 먼저 보드에 설치된 ubuntu 버전을 확인해야 합니다.
Jetson nano용 jetpack 4.6.1은 ubuntu 18.04를 제공합니다.
해당 ubuntu 버전에 알맞는 ROS 2 dashing을 설치해주면 됩니다.
1. 리눅스의 로케일을 설정해줍니다.
로케일 설정 전에 apt 설치 및 업데이트를 진행합니다.
sudo apt update && sudo apt install locales
아래 그림과 같이 업데이트가 완료되었습니다.
그리고 로케일을 UTF-8로 설정합니다.
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8
2. 시스템에 ROS 2 apt 리포지토리를 추가해줍니다.
먼저 apt의 업데이트 및 다음 명령 실행을 위한 curl을 설치합니다.
sudo apt update && sudo apt install curl gnupg2 lsb-release
아래 그림과 같이 업데이트 및 설치가 완료되었습니다.
그리고 아래 명령어로 apt의 gps 키를 승인합니다.
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
이제 소스 리스트에 리포지토리를 추가합니다.
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
아래 그림과 같이 리포지토리 추가가 완료되었습니다.
3. 디벨롭먼트 툴 및 ROS 툴을 설치해줍니다.
먼저 다음 명령어를 통해 apt를 가장 최신 버전으로 업데이트하고, cmake, git, 파이썬 툴 등을 설치합니다.
sudo apt update && sudo apt install -y \
build-essential \
cmake \
git \
python3-colcon-common-extensions \
python3-pip \
python-rosdep \
python3-vcstool \
wget
아래 그림과 같이 설치가 완료되었습니다.
다음으로 아래 명령어를 통해 테스트를 위한 pip 패키지를 설치합니다.
python3 -m pip install -U \
argcomplete \
flake8 \
flake8-blind-except \
flake8-builtins \
flake8-class-newline \
flake8-comprehensions \
flake8-deprecated \
flake8-docstrings \
flake8-import-order \
flake8-quotes \
pytest-repeat \
pytest-rerunfailures \
pytest \
pytest-cov \
pytest-runner \
setuptools
아래 그림과 같이 설치가 완료되었습니다.
다음으로 아래 명령어를 통해 Fast-RTPs를 설치합니다.
sudo apt install --no-install-recommends -y \
libasio-dev \
libtinyxml2-dev
아래 그림과 같이 설치가 완료되었습니다.
마지막으로 아래 명령어를 통해 Cyclone DDC를 설치해줍니다.
sudo apt install --no-install-recommends -y \
libcunit1-dev
아래 그림과 같이 모두 설치가 완료되었습니다.
4. ROS 2 코드를 가져옵니다.
먼저 ros2_dashing 폴더에 디렉토리를 생성합니다.
해당 디렉토리로 이동 후 repos를 cloning 해줍니다.
mkdir -p ~/ros2_dashing/src
cd ~/ros2_dashing
wget https://raw.githubusercontent.com/ros2/ros2/dashing/ros2.repos
vcs import src < ros2.repos
아래 그림과 같이 cloning이 완료되었습니다.
5. rosep을 이용하여 디펜던시를 설치해줍니다.
먼저 rosep을 시작한 후 업데이트를 해줍니다.
sudo rosdep init
rosdep update
아래 그림과 같은 문구가 출력되면 업데이트가 완료된 것입니다.
이제 rosep을 이용하여 디펜던시를 설치합니다.
rosdep install --from-paths src --ignore-src --rosdistro dashing -y --skip-keys "console_bridge fastcdr fastrtps libopensplice67 libopensplice69 rti-connext-dds-5.3.1 urdfdom_headers"
설치가 완료되기까지 상당히 긴 시간이 소요됩니다.
아래 그림과 같은 문구가 출력되면 설치가 완료된 것입니다.
마지막으로 workspace에 코드를 빌드해줍니다.
cd ~/ros2_dashing/
colcon build --symlink-install
이 과정 또한 시간이 조금 소요됩니다.
아래 그림과 같은 문구가 출력되면 ROS 2의 설치가 완료된 것입니다.
6. ROS 2가 제대로 설치되었는지 예제를 통해 확인합니다.
다음 예제는 Talker-Listener 로, talker 터미널에서 출력하는 메시지를 listener 터미널에서 똑같이 출력하는 예제입니다.
먼저 새로운 터미널 창을 열어 소스를 지정한 후 C++ talker를 실행합니다.
. ~/ros2_dashing/install/local_setup.bash
ros2 run demo_nodes_cpp talker
talker가 실행되면 다음 그림과 같이 특정한 문구가 출력 횟수와 함께 일정한 시간 간격을 두고 반복적으로 출력됩니다.
새로운 터미널을 열어 이번엔 python listener를 실행시켜 줍니다. 동일하게 소스를 먼저 지정해준 후, 다음 명령을 통해 listener를 실행시킵니다.
. ~/ros2_dashing/install/local_setup.bash
ros2 run demo_nodes_py listener
listener가 실행되면 talker와 동일한 문구가 동시에 출력됩니다. 아래 그림을 보면 listener가 실행된 시점에서 출력된 talker의 22번째 문구부터 출력됨을 확인할 수 있습니다.
또다른 예제인 turtlesim과 rqt는 다른 버전인 ROS 2 humble과 동일한 방법으로 실행할 수 있습니다.
해당 내용에 대해 더 자세히 알아보고 싶다면 아래 링크의 글을 참조 부탁드립니다.
https://makingrobot.tistory.com/160?category=804423
이렇게 jetson nano의 ubuntu 18.04에 ROS 2가 제대로 설치되었음을 확인하였습니다.
이제 다양한 예제 및 데모를 실행해보거나, 자신만의 패키지를 만드는 등 여러분이 원하는 방식으로 ROS 2를 활용하시면 됩니다.
'소프트웨어 > ROS2' 카테고리의 다른 글
Ubuntu 22.04, IRON ROS2 개발환경 설치 (0) | 2024.07.23 |
---|---|
Ubuntu 22.04, IRON ROS2 설치 (0) | 2024.03.24 |
Jetson Xavier NX 보드에 ROS 2 설치 (2) | 2022.09.20 |
ROS 2의 turtlesim과 rqt 사용법 (0) | 2022.07.20 |
ubuntu 22.04에 ROS 2 설치 (2) | 2022.07.15 |