설정

source setup

ROS2 명령어들을 터미널에서 실행하기 위해서는 터미널을 켤 때 마다

source /opt/ros/<distro>/setup.bash

명령을 실행해 줘야한다. <distro>에는 현재 사용하는 ros 버전이름을 넣어야 한다.

예를 들어 지금 Humble 를 설치했으므로

source /opt/ros/humble/setup.bash

을 터미널에서 실행해 주시면 된다.

source 자동화 하기

터미널이 켜질때마다 실행되는 bashrc파일에 위 명령어를 추가하면 터미널을 실행할 때 마다 자동으로 실행하게 할 수 있습니다.

echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc

환경 변수 확인

setup.bash파일을 source 해주면 환경변수가 시스템에 등록됩니다. 제대로 등록 됐는지 아래 명령어로 확인해 주시면 됩니다.

printenv | grep -i ROS

ROS_VERSION=2
ROS_PYTHON_VERSION=3
AMENT_PREFIX_PATH=/opt/ros/humble
PYTHONPATH=/opt/ros/humble/lib/python3.10/site-packages:/opt/ros/humble/local/lib/python3.10/dist-packages
LD_LIBRARY_PATH=/opt/ros/humble/opt/rviz_ogre_vendor/lib:/opt/ros/humble/lib/aarch64-linux-gnu:/opt/ros/humble/lib
ROS_LOCALHOST_ONLY=0
PATH=/opt/ros/humble/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
ROS_DISTRO=humble

위처럼 변수가 설정돼있으면 제대로 된 것입니다.

도메인 아이디 설정

여러명이 한 공간에서 ROS2를 사용할 경우 시스템 충돌을 방지하기위해 도메인 아이디를 따로 설정할 수 있습니다.

도메인 아이디는 0~232로 설정 해 줄 수 있습니다.

export ROS_DOMAIN_ID=<your_domain_id>
echo "export ROS_DOMAIN_ID=<your_domain_id>" >> ~/.bashrc

예시

echo "export ROS_DOMAIN_ID=33" >> ~/.bashrc
source ~/.bashrc

이 경우엔 ROS_DOMAIN_ID 를 33으로 한 것입니다.

로봇과 PC 둘 다 맞춰줘야 서로 통신이 됩니다.

DDS 설정

ros2의 humble 버전에서 기본 dds인 fast dds의 연결에 대한 이슈가 많이 나와서 Eclipse Cyclone DDS 를 사용할 것이다.

sudo apt install ros-humble-rmw-cyclonedds-cpp
echo "export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp" >> ~/.bashrc
source ~/.bashrc

로봇과 PC 둘 다 맞춰줘야 서로 통신이 됩니다.

Summary

  1. ROS2 패키지를 설치하거나 사용할 때 뭔가 문제가 발생한 것 같으면 가장 먼저 위 설정들이 제대로 적용 됐는지 확인해 봐야합니다.

  2. 터미널을 켤 때마다 설정을 세팅하기 귀찮으면 bashrc에 세팅 명령을 미리 지정해 놓음으로 자동 실행되게 실행 할 수 있습니다.