배경
ROS2를 Ubuntu에 설치하는 방법은 비교적 간단하다. 하지만 내가 주로 사용하는 환경이 윈도우10이라 여기에 ROS2를 설치할 수 있어야 했다. 찾아보니 여기에 윈도우10에 설치하는 가이드가 있어 이 방법대로 2번 정도 시도해보았지만 중간중간에 알 수 없는 에러가 발생하고 이걸 해결하는데 또 시간을 잡아먹어 결국 포기했다. MS에서는 ROS를 윈도우에서 지원한다고는 하지만 ROS2와 윈도우10는 궁합이 별로인 것 같다. 최근 윈도우10를 2004로 업데이트하면 WSL2를 사용할 수 있어 윈도우10에서도 리눅스의 사용이 편해졌다. 이 소식을 접하고 WSL2에 Ubuntu를 올리고 여기에 ROS2를 설치하면 Ubuntu에서 설치하고 사용하는 것이라 가능할 것 같았다. 또한 ROS2에서 GUI로 지원하는 여러 기능을 사용하려면 X Server를 활용하면 된다. 그러면 윈도우10에서 ROS2로 뭔가 해볼 수 있는 환경이 마련되는 것이다. 그렇다면 하나씩 살펴보자.
1. WSL2 설치 + Ubuntu 20.04 설치
WSL2와 Ubuntu20.04 설치는 여기에 자세히 설명이 되어있으니 여기에서는 생략한다.
2. X server 설치
ROS2의 시뮬레이션, rqt 등 GUI 화면을 띄우게 하려면 호스트 쪽에 X Server가 설치되어있어야 한다. X Server 설치 방법은 여기에 자세히 설명되어있으니 참조하면 된다.
3. ROS2 설치
ROS2의 다양한 버전이 있지만 최신이면서 지원 오래되는 Foxy 버전을 설치한다. ROS2를 리눅스에 설치하는 방법은 직접 소스를 빌드하는 것과 binaray를 다운로드하여 설치하는 두 가지 방법이 있다. 나는 binary를 다운로드하여 설치하는 방법으로 하였으며 가이드는 여기를 참조하면 된다. 이때 가이드의 마지막 부분에 try some example 섹션에서 "ros2 run demo_nodes_py listener"를 실하면 에러가 발생하여 알아보니 colcon이 설치되어있지 않았다. 그래서 아래와 같이 설치하여 문제를 해결하였다. 참고로 colcon은 ROS에서 사용하는 빌드 툴이다.
💦 colcon 직접 설치하기
. ~/ros2_foxy/ros2-linux/setup.bash
ros2 run demo_nodes_py listener
~~~ 에러발생 ~~~
sudo apt install python3-colcon-common-extensions
💦 ROS 관련 command들을 바로 실행할 수 있도록 ~/. bashrc에 아래 내용들을 추가한다.
source ~/ros2_foxy/ros2-linux/setup.bash
source /usr/share/colcon_cd/function/colcon_cd.sh
export _colcon_cd_root=~/ros2_foxy/ros2-linux
🍔 간단한 확인
- Ubuntu 터미널을 하나 띄어 C++ talker를 실행하여 말을 하기 시작한다.
user@DESKTOP-CGAFCFL:/mnt/c/Users/username$ ros2 run demo_nodes_cpp talker
[INFO] [1611248515.905419300] [talker]: Publishing: 'Hello World: 1'
[INFO] [1611248516.905369800] [talker]: Publishing: 'Hello World: 2'
[INFO] [1611248517.905035800] [talker]: Publishing: 'Hello World: 3'
...
[INFO] [1611248530.905266200] [talker]: Publishing: 'Hello World: 16'
[INFO] [1611248531.905040900] [talker]: Publishing: 'Hello World: 17'
[INFO] [1611248532.905182500] [talker]: Publishing: 'Hello World: 18'
[INFO] [1611248533.905148100] [talker]: Publishing: 'Hello World: 19'
[INFO] [1611248534.905282100] [talker]: Publishing: 'Hello World: 20'
[INFO] [1611248535.905336600] [talker]: Publishing: 'Hello World: 21'
[INFO] [1611248536.905059700] [talker]: Publishing: 'Hello World: 22'
...
- 또 다른 Ubuntu 터미널을 띄어 Python listener를 실행했을 때 talker가 말한걸 listener가 들으면 성공이다.
user@DESKTOP-CGAFCFL:/mnt/c/Users/username$ ros2 run demo_nodes_py listener
[INFO] [1611248532.938319600] [listener]: I heard: [Hello World: 18]
[INFO] [1611248533.908239700] [listener]: I heard: [Hello World: 19]
[INFO] [1611248534.910155200] [listener]: I heard: [Hello World: 20]
[INFO] [1611248535.909502500] [listener]: I heard: [Hello World: 21]
[INFO] [1611248536.906707200] [listener]: I heard: [Hello World: 22]
[INFO] [1611248537.907110000] [listener]: I heard: [Hello World: 23]
...
4. 테스트
turtlesim 패키지로 간단한 테스트 하여 ROS2가 잘 설치되었는지 확인한다. 그러기 위해서는 앞에서 설치한 XLaunch를 실행시킨다. 이때 "Disable access control"를 체크하는 걸 까먹으면 안 된다. 그러면 새로운 Ubuntu 터미널을 하나 띄어 turtlesim 패키지의 turtlesim_node 실행한다. 거북이 한 마리가 외롭게 있는 창이 뿅 하고 나타난다. 참고로 저 거북이는 이 명령을 실행할 때마다 모양과 색깔이 같거나 다를 수 있다.
user@DESKTOP-CGAFCFL:/mnt/c/Users/username$ ros2 run turtlesim turtlesim_node
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-andy'
[INFO] [1611249714.970382700] [turtlesim]: Starting turtlesim with node name /turtlesim
[INFO] [1611249714.977421600] [turtlesim]: Spawning turtle [turtle1] at x=[5.544445], y=[5.544445], theta=[0.000000]
[INFO] [1611249747.582305200] [turtlesim]: Rotation goal completed successfully
[INFO] [1611249748.222055200] [turtlesim]: Rotation goal completed successfully
또 다른 Ubuntu 터미널을 하나 띄어 turtlesim 패키지의 turtle_teleop_key를 실행한다. 이 명령을 실행한 화면 위에서 방향키와 키보드의 G|B|V|C|D|E|R|T 키 등을 조작해보면 거북이가 요리조리 선을 거으며 움직이는 것을 확인할 수 있다. 이까지 되면 설치는 문제없이 된 것이다. 👌
user@DESKTOP-CGAFCFL:/mnt/c/Users/username$ ros2 run turtlesim turtle_teleop_key
Reading from keyboard
---------------------------
Use arrow keys to move the turtle.
Use G|B|V|C|D|E|R|T keys to rotate to absolute orientations. 'F' to cancel a rotation.
'Q' to quit.
'robotics > ROS' 카테고리의 다른 글
3DoF Manipulator의 URDF (0) | 2022.03.14 |
---|---|
URDF (0) | 2022.03.12 |
WSL Ubuntu 18.04에 ROS Melodic 설치 (0) | 2022.03.08 |
Raspberry Pi 4에 ROS 2 설치 (Install ROS 2 on Raspberry Pi 4) (0) | 2021.10.18 |
댓글