설정
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
ROS2 패키지를 설치하거나 사용할 때 뭔가 문제가 발생한 것 같으면 가장 먼저 위 설정들이 제대로 적용 됐는지 확인해 봐야합니다.
터미널을 켤 때마다 설정을 세팅하기 귀찮으면 bashrc에 세팅 명령을 미리 지정해 놓음으로 자동 실행되게 실행 할 수 있습니다.