-
ROS1, ROS2 동시 사용ROS 2024. 11. 12. 07:17반응형
ROS1이 설치된 상태에서 ROS2를 같이 설치해줘야 하는 경우에 대한 내용이다.
설치는 그냥 각각 공식 문서 보고 똑같이 해주면 된다.
단, 소스 코드를 실행하기 전에 각 코드에 맞게 ROS 버전을 적용을 해줘야 하는데,
매번 source 시키기 번거로우므로 .bashrc(zshell일 경우 .zshrc) 파일에 스위칭 함수 같은 걸 만들어서 넣어주면 편리하다.
e.g. Ubuntu 18.04에 ROS1(melodic)과 ROS2(eloquent)를 설치한 경우
# for ros1 rosv1() { source /opt/ros/melodic/setup.bash source ~/ros1_ws/devel/setup.bash } # for ros2 rosv2() { source /opt/ros/eloquent/setup.bash source ~/ros2_ws/install/setup.bash }
터미널 창에 rosv1을 입력할 경우 ros1 melodic 버전이, rosv2를 입력할 경우 ros2 eloquent 버전이 적용된다.
(ros1_ws, ros2_ws에 각 워크스페이스 디렉토리 이름을 적어준다.)
좀 더 편리하게 작성해보자.
rosv1, rosv2를 입력했을 때 각 버전이 잘 적용되었다고 알려주는 메시지(echo)를 추가했다.
# for ros1 rosv1() { source /opt/ros/melodic/setup.bash source ~/ros1_ws/devel/setup.bash echo "ros1 melodic activated" } # for ros2 rosv2() { # colcon_cd configuration source /usr/share/colcon_cd/function/colcon_cd.sh export _colcon_cd_root=~/ros2_ws # colorized terminal log export RCUTILS_COLORIZED_OUTPUT=1 # auto-complete command line eval "$(register-python-argcomplete3 ros2)" eval "$(register-python-argcomplete3 colcon)" source /opt/ros/eloquent/setup.bash source ~/ros2_ws/install/setup.bash echo "ros2 eloquent activated" }
하는 김에 colcon_cd 세팅 커맨드랑 커맨드 자동완성 시켜주는 커맨드도 같이 넣어준다.
(eloquent colcon_cd 세팅 관련 설명은 여기서 볼 수 있다.)
만약 colcon 관련해서 command not found 메시지가 뜰 경우 다음 명령어를 통해 관련 패키지를 설치해준다.
sudo apt install python3-colcon-common-extensions
source 하거나 새 터미널 창을 열어서 추가한 내용을 적용시켜준다.
이후 데모 노드를 실행해보고, 잘 되는지 확인한다.
$ source ~/.bashrc
$ rosv2 ros2 eloquent activated
$ ros2 run demo_nodes_cpp talker [INFO] [talker]: Publishing: 'Hello World: 1' [INFO] [talker]: Publishing: 'Hello World: 2' [INFO] [talker]: Publishing: 'Hello World: 3' [INFO] [talker]: Publishing: 'Hello World: 4' ...
잘 된다.
이번에는 ros1으로 전환해보자.
$ rosv1 ROS_DISTRO was set to 'eloquent' before. Please make sure that the environment does not mix paths from different distributions. ros1 melodic activated
잘 된다.
중간에 뜨는 Please make sure~~ 메시지는 버전 변경에 대한 일종의 경고문이므로 무시해도 괜찮다.
반응형'ROS' 카테고리의 다른 글
ROS gdb, valgrind 디버깅 (0) 2023.03.01 osm_cartography - RViz에 오픈스트리트맵(OSM) 데이터 시각화하기 (0) 2022.12.25 터틀봇3 Navigation (0) 2020.12.30 터틀봇3 SLAM (0) 2020.12.27 터틀봇3 연결하기 (Ubuntu 18.04, ROS Melodic) (3) 2020.12.18