๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋กœ๋ณดํ‹ฑ์Šค

Installing ROS2 humble [Ubuntu 22.04]

728x90

ROS์™€ ROS 2

  • ROS 2 Foxy๋Š” ๋” ์ด์ƒ ํ…Œ์ŠคํŠธ๋˜๊ฑฐ๋‚˜ ์ง€์›๋˜์ง€ ์•Š๋Š”๋‹ค. ์ด๋กœ ์ธํ•ด ROS 2 Foxy๋ฅผ Isaac Sim 4.2 ์ด์ƒ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์ž ์žฌ์ ์ธ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.
  • Omniverse Isaac Sim์—์„œ ์ƒ์„ฑ๋œ ํ•ฉ์„ฑ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•˜๊ณ  ์กฐ์ž‘ํ•˜๊ณ  ์ด๋ฅผ ROS ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๊ฒŒ์‹œํ•˜๋Š” ๊ณผ์ •
  • Isaac Sim์—์„œ ROS/ROS2 Bridge๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ์›Œํฌํ”Œ๋กœ๊ฐ€ ์ตœ์‹  Isaac Sim ๋ฆด๋ฆฌ์Šค์—์„œ ๋ณ€๊ฒฝ๋˜์—ˆ๋‹ค.

⇒ ๋‚˜๋Š” Ubuntu 22.04 ๋ฅผ ์‚ฌ์šฉ์ค‘์ด๋ฏ€๋กœ ROS 2์˜ Humble ๋ฅผ ์„ค์น˜ํ•  ๊ฒƒ์ด๋‹ค.

 

 

๐Ÿ’กIsaac Sim ROS Bridge๋ž€?

  • Isaac Sim๊ณผ ROS (Robot Operating System) ์‹œ์Šคํ…œ ๊ฐ„์˜ ์—ฐ๊ฒฐ์„ ์ œ๊ณต
  • ์ด ๋ธŒ๋ฆฌ์ง€๋Š” Isaac Sim์˜ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ํ™˜๊ฒฝ๊ณผ ROS ๊ฐ„์˜ ๋ฉ”์‹œ์ง€ ๊ตํ™˜์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด์ค€๋‹ค.

⇒ ์ฆ‰, Isaac Sim ๋‚ด์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋กœ๋ด‡์˜ ์ƒํƒœ๋‚˜ ์„ผ์„œ ๋ฐ์ดํ„ฐ๋ฅผ ROS ํ™˜๊ฒฝ์œผ๋กœ ์ „์†กํ•˜๊ณ , ROS์—์„œ ์ œ์–ด ๋ช…๋ น์„ Isaac Sim์œผ๋กœ ์ „๋‹ฌํ•˜๋Š” ์—ญํ• 

  • ROS 2 Humble: ROS 2์˜ ์ตœ์‹  LTS ๋ฒ„์ „. ROS 2์˜ ๊ธฐ๋Šฅ๊ณผ ์„ฑ๋Šฅ ๊ฐœ์„ ๋œ ๋ฒ„์ „์œผ๋กœ, ํŠนํžˆ ์‹ค์‹œ๊ฐ„ ์ฒ˜๋ฆฌ์™€ ๋ณด์•ˆ ๊ธฐ๋Šฅ์ด ๊ฐ•์กฐ
  • ROS Noetic: ROS 1์˜ ๋งˆ์ง€๋ง‰ LTS ๋ฒ„์ „์œผ๋กœ, ROS 1 ํ™˜๊ฒฝ์—์„œ ๋กœ๋ด‡ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ฐœ๋ฐœํ•  ๋•Œ ์‚ฌ์šฉ
  •  

1. ๋„ค์ดํ‹ฐ๋ธŒ ROS ์‹คํ–‰

ํ™˜๊ฒฝ

  • Ubuntu 22.04
  • Isaac Sim์€ Python3.10๊ณผ ํ•จ๊ป˜ ์ œ๊ณต
  • env ROS_DISTRO๋ณ€์ˆ˜๋Š” ROS 2๊ฐ€ ์†Œ์Šค์ธ์ง€์™€ ์–ด๋–ค ๋ฐฐํฌํŒ์„ ์‚ฌ์šฉํ• ์ง€ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ
    • ์ด ๋ณ€์ˆ˜๊ฐ€ ์„ค์ •๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋‚ด๋ถ€ ROS 2 ๋ฐฐํฌํŒ ๋นŒ๋“œ๊ฐ€ ์‚ฌ์šฉ
  • ์ ์ ˆํ•œ ROS 2 ๋ฐฑ์—”๋“œ๋Š” ์†Œ์Šค๋œ ROS ๋ฐฐํฌํŒ์— ๋”ฐ๋ผ ๋™์ ์œผ๋กœ ๋กœ๋“œ
โš ๏ธIsaac Sim ์‹คํ–‰ ์ „์— ROS 2 ํ™˜๊ฒฝ์„ ์†Œ์‹ฑ

Isaac Sim๊ณผ ROS 2๋ฅผ ์—ฐ๋™ํ•˜์—ฌ ์‚ฌ์šฉํ•  ๋•Œ, ROS 2 ํ™˜๊ฒฝ์„ ๋จผ์ € ์„ค์ •ํ•˜๊ณ  ๋‚˜์„œ Isaac Sim์„ ์‹คํ–‰ํ•ด์•ผ ํ•œ๋‹ค.
์†Œ์‹ฑ์€ ROS 2 ์„ค์น˜ ๊ฒฝ๋กœ์— ์žˆ๋Š” ์„ค์ • ํŒŒ์ผ์„ ์‹คํ–‰ํ•˜์—ฌ, ROS 2 ๊ด€๋ จ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋“ค์„ ์‹œ์Šคํ…œ์— ์„ค์ •ํ•˜๋Š” ๊ณผ์ •์„ ๋งํ•œ๋‹ค.
๋งŒ์•ฝ ๋งค๋ฒˆ source ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด ๋ฒˆ๊ฑฐ๋กญ๋‹ค๋ฉด, ROS 2๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋Š” ๋ช…๋ น์–ด๋ฅผ ~/.bashrc ํŒŒ์ผ์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค. ~/.bashrc๋Š” ํ„ฐ๋ฏธ๋„์„ ์—ด ๋•Œ๋งˆ๋‹ค ์ž๋™์œผ๋กœ ์‹คํ–‰๋˜๋Š” ์„ค์ • ํŒŒ์ผ์ด๋‹ค.
  1. ๊ณต์‹ ์›น์‚ฌ์ดํŠธ์˜ ์ง€์นจ์— ๋”ฐ๋ผ ROS 2๋ฅผ ๋‹ค์šด๋กœ๋“œ
  2. (์„ ํƒ ์‚ฌํ•ญ) ROS 2 Bridge์˜ ์ผ๋ถ€ ๋ฉ”์‹œ์ง€ ์œ ํ˜•(๋ฐ”์šด๋”ฉ ๋ฐ•์Šค ๊ฒŒ์‹œ์— ์‚ฌ์šฉ๋˜๋Š” Detection2DArray ๋ฐ Detection3DArray)์€ vision_msgs_package ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง„๋‹ค . ์•„๋ž˜ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ ์‹œ์Šคํ…œ์— ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. vision_msgs ๊ฒŒ์‹œ์ž๋ฅผ ์‹คํ–‰ํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฉด ์ด ๋‹จ๊ณ„๋ฅผ ๊ฑด๋„ˆ๋›ธ ์ˆ˜ ์žˆ๋‹ค. 
    • sudo apt install ros-humble-vision-msgs
  3. (์„ ํƒ ์‚ฌํ•ญ) ROS 2 Bridge์˜ ์ผ๋ถ€ ๋ฉ”์‹œ์ง€ ์œ ํ˜•(AckermannDriveStamped๋Š” Ackermann ์Šคํ‹ฐ์–ด๋ง ๋ช…๋ น์— ๋Œ€ํ•œ ๊ฒŒ์‹œ ๋ฐ ๊ตฌ๋…์— ์‚ฌ์šฉ๋จ)์€ ackermann_msgs_package ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ ์ง„๋‹ค. ์•„๋ž˜ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ ์‹œ์Šคํ…œ์— ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜. ackermann_msgs publishers/subscribers๋ฅผ ์‹คํ–‰ํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฉด ์ด ๋‹จ๊ณ„๋ฅผ ๊ฑด๋„ˆ๋›ธ ์ˆ˜ ์žˆ๋‹ค. 
    • sudo apt install ros-humble-ackermann-msgs
  4. ROS ํ™˜๊ฒฝ์ด ํ„ฐ๋ฏธ๋„์ด๋‚˜ ~/.bashrcํŒŒ์ผ์—์„œ ์†Œ์‹ฑ๋˜์—ˆ๋Š”์ง€ ํ™•์ธ. ์ด ๋‹จ๊ณ„๋Š” ๋งค๋ฒˆ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋ฉฐ ROS ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ Isaac Sim์„ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ์ˆ˜ํ–‰. 
    • source /opt/ros/humble/setup.bash

 

 

1-1. ๊ณต์‹ ์›น์‚ฌ์ดํŠธ์˜ ์ง€์นจ์— ๋”ฐ๋ผ ROS 2๋ฅผ ๋‹ค์šด๋กœ๋“œ

https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debs.html

๋กœ์ผ€์ผ ์„ค์ •

UTF-8 ๋ฌธ์ž ์ธ์ฝ”๋”ฉ์„ ์‚ฌ์šฉํ•˜๋„๋ก ๋กœ์ผ€์ผ(locale)์„ ์„ค์ •ํ•œ๋‹ค.

locale  # check for UTF-8

sudo apt update && sudo apt install locales
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

locale  # verify settings

[๊ฒฐ๊ณผ]

Setup Sources

์‹œ์Šคํ…œ์— ROS 2 apt ์ €์žฅ์†Œ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผํ•œ๋‹ค.

ROS 2๋ฅผ ์„ค์น˜ํ•˜๋ ค๋ฉด Ubuntu Universe ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๊ฐ€ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์–ด์•ผํ•œ๋‹ค.

โ“Ubuntu Universe ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ž€?

Ubuntu์—์„œ ์ œ๊ณตํ•˜๋Š” ๋‹ค์–‘ํ•œ ์†Œํ”„ํŠธ์›จ์–ด ํŒจํ‚ค์ง€๋ฅผ ํฌํ•จํ•˜๋Š” ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ค‘ ํ•˜๋‚˜์ด๋‹ค. Universe ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ํŒจํ‚ค์ง€๋ฅผ ํฌํ•จํ•˜๋ฉฐ, ROS (Robot Operating System), ffmpeg, VLC, GIMP ๋“ฑ๊ณผ ๊ฐ™์€ ๋งŽ์€ ์˜คํ”ˆ ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์ด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ํฌํ•จ๋œ๋‹ค.

 

sudo apt install software-properties-common # add-apt-repository ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋„๊ตฌ
sudo add-apt-repository universe #  Universe ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ถ”๊ฐ€

 

ROS 2 ํŒจํ‚ค์ง€์˜ GPG ํ‚ค๋ฅผ ์„ค์น˜ํ•˜์—ฌ ROS ํŒจํ‚ค์ง€๊ฐ€ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ํŒจํ‚ค์ง€์ž„์„ ํ™•์ธํ•œ๋‹ค. GPG ํ‚ค๋Š” ํŒจํ‚ค์ง€์˜ ์ง„์œ„๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

sudo apt update && sudo apt install curl -y
# ROS์˜ GPG ํ‚ค๋ฅผ ๋‹ค์šด๋กœ๋“œ ->  ๋‹ค์šด๋กœ๋“œํ•œ ํ‚ค๋ฅผ ์ง€์ •๋œ ์œ„์น˜์— ์ €์žฅ
sudo curl -sSL <https://raw.githubusercontent.com/ros/rosdistro/master/ros.key> -o /usr/share/keyrings/ros-archive-keyring.gpg 

 

ROS 2์˜ apt ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์‹œ์Šคํ…œ์˜ ํŒจํ‚ค์ง€ ์†Œ์Šค ๋ชฉ๋ก์— ์ถ”๊ฐ€ํ•œ๋‹ค.

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] <http://packages.ros.org/ros2/ubuntu> $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

 

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด apt ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ROS 2 ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ €์žฅ์†Œ๋ฅผ ์„ค์ •ํ•œ ํ›„ apt ์ €์žฅ์†Œ ์บ์‹œ๋ฅผ ์—…๋ฐ์ดํŠธํ•œ๋‹ค.

sudo apt update

 

ROS 2๋ฅผ ์„ค์น˜ํ•˜๊ธฐ ์ „์— ์‹œ์Šคํ…œ์ด ์ตœ์‹  ์ƒํƒœ์ธ์ง€ ํ™•์ธํ•œ๋‹ค. apt upgrade ๋ช…๋ น์–ด๋กœ ์‹œ์Šคํ…œ์˜ ๋ชจ๋“  ํŒจํ‚ค์ง€๋ฅผ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•œ๋‹ค.

sudo apt upgrade

 

โš ๏ธ์ฃผ์˜

Ubuntu 22.04์˜ ์ดˆ๊ธฐ ์—…๋ฐ์ดํŠธ๋กœ ์ธํ•ด ROS 2๋ฅผ ์„ค์น˜ํ•˜๊ธฐ ์ „์— ๋ฐ ๊ด€๋ จ ํŒจํ‚ค์ง€๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค. udev์—…๊ทธ๋ ˆ์ด๋“œํ•˜์ง€ ์•Š๊ณ  ์ƒˆ๋กœ ์„ค์น˜ํ•œ ์‹œ์Šคํ…œ์— ROS 2 ์ข…์†์„ฑ์„ ์„ค์น˜ํ•˜๋ฉด ์ค‘์š”ํ•œ ์‹œ์Šคํ…œ ํŒจํ‚ค์ง€๊ฐ€ ์ œ๊ฑฐ ๋  ์ˆ˜ ์žˆ๋‹ค .

 

๊ทธ๋ฆฌ๊ณ  ๋‹ค์Œ ์„ธ๊ฐ€์ง€ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•œ๋‹ค.

 

1. ๋ฐ์Šคํฌํ†ฑ ์„ค์น˜(๊ถŒ์žฅ): ROS, RViz, ๋ฐ๋ชจ, ํŠœํ† ๋ฆฌ์–ผ.

```

sudo apt install ros-humble-desktop

```

2. ROS-Base ์„ค์น˜(Bare Bones): ํ†ต์‹  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ๋ฉ”์‹œ์ง€ ํŒจํ‚ค์ง€, ๋ช…๋ น์ค„ ๋„๊ตฌ. GUI ๋„๊ตฌ ์—†์Œ.

```

sudo apt install ros-humble-ros-base

```

3. ROS ํŒจํ‚ค์ง€๋ฅผ ๋นŒ๋“œํ•˜๊ธฐ ์œ„ํ•œ ์ปดํŒŒ์ผ๋Ÿฌ ๋ฐ ๊ธฐํƒ€ ๋„๊ตฌ

```

sudo apt install ros-dev-tools

```

Environment setup

ROS 2๋ฅผ ์„ค์น˜ํ•˜๊ณ  ๋‚˜๋ฉด, ROS 2 ํ™˜๊ฒฝ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด ํ™˜๊ฒฝ ์„ค์ • ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์†Œ์‹ฑํ•ด์•ผํ•œ๋‹ค. ์ด ๊ณผ์ •์„ ํ†ตํ•ด ROS 2 ๊ด€๋ จ ๋ช…๋ น์–ด ๋ฐ ๋„๊ตฌ๋“ค์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ๋œ๋‹ค.

 

1.1. ROS 2 ํ™˜๊ฒฝ ์„ค์ • ์Šคํฌ๋ฆฝํŠธ ์†Œ์‹ฑ ์ด๋ฅผ ์œ„ํ•ด ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ํ„ฐ๋ฏธ๋„์— ์ž…๋ ฅํ•˜์—ฌ ํ™˜๊ฒฝ ์„ค์ • ํŒŒ์ผ์„ ์†Œ์‹ฑํ•œ๋‹ค.

source /opt/ros/humble/setup.bash

 

source ๋ช…๋ น์–ด๋Š” ์…ธ ์Šคํฌ๋ฆฝํŠธ๋‚˜ ํŒŒ์ผ์„ ํ˜„์žฌ ์…ธ ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์„ค์ •ํ•˜๋Š” ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋‚˜ ์„ค์ •์„ ํ˜„์žฌ ์…ธ ์„ธ์…˜์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” ์ƒˆ๋กœ์šด ํ”„๋กœ์„ธ์Šค๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ , ํ˜„์žฌ ์…ธ์—์„œ ๋ฐ”๋กœ ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— ํ•ด๋‹น ์…ธ ํ™˜๊ฒฝ์— ์ฆ‰์‹œ ์˜ํ–ฅ์„ ๋ฏธ์นœ๋‹ค.

 

1.2. ์ž๋™ํ™” ๋ฐฉ๋ฒ•: .bashrc์— ์ถ”๊ฐ€ ๋งค๋ฒˆ ํ„ฐ๋ฏธ๋„์„ ์—ด ๋•Œ๋งˆ๋‹ค source /opt/ros/humble/setup.bash ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๋Œ€์‹ , ~/.bashrc ํŒŒ์ผ์— ํ•ด๋‹น ๋ช…๋ น์–ด๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์ž๋™์œผ๋กœ ์‹คํ–‰๋˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค.

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

 

์˜ˆ์ œ ์‹คํ–‰ (Talker-Listener) ํ…Œ์ŠคํŠธ

 

talker๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐœํ–‰(publish) ํ•˜๊ณ , listener๋Š” ๊ทธ ๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์‹ (subscribe) ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค.

  1. C++๋กœ Talker ์‹คํ–‰
ros2 run demo_nodes_cpp talker

2. Python์œผ๋กœ Listener ์‹คํ–‰

ros2 run demo_nodes_py listener

 

[๊ฒฐ๊ณผ]

talker์—์„œ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐœํ–‰ํ•˜๋Š” ๋กœ๊ทธ๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค. listener๋Š” talker๊ฐ€ ๋ฐœํ–‰ํ•˜๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ˆ˜์‹ ํ•˜๋ฉฐ, ์ˆ˜์‹ ๋œ ๋ฉ”์‹œ์ง€๋ฅผ I heard: [๋ฉ”์‹œ์ง€ ๋‚ด์šฉ] ํ˜•์‹์œผ๋กœ ์ถœ๋ ฅํ•œ๋‹ค.

1-2. vision_msgs ํŒจํ‚ค์ง€( ์„ ํƒ )

vision_msgs ํŒจํ‚ค์ง€๋Š” ๋น„์ „ ๊ด€๋ จ ๋ฉ”์‹œ์ง€๋ฅผ ์ •์˜ํ•˜๋Š” ํŒจํ‚ค์ง€๋กœ, ์˜ˆ๋ฅผ ๋“ค์–ด Detection2DArray๋‚˜ Detection3DArray์™€ ๊ฐ™์€ ๋ฉ”์‹œ์ง€ ์œ ํ˜•์„ ํฌํ•จํ•œ๋‹ค.

์ด ๋ฉ”์‹œ์ง€๋“ค์€ ๊ฐ์ฒด ํƒ์ง€๋‚˜ ๋น„์ „ ๊ด€๋ จ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

sudo apt install ros-humble-vision-msgs

1-3. ackermann_msgs ํŒจํ‚ค์ง€

ackermann_msgs ํŒจํ‚ค์ง€๋Š” Ackermann ์กฐํ–ฅ ๋ช…๋ น์„ ์œ„ํ•œ ๋ฉ”์‹œ์ง€ ์œ ํ˜•์„ ์ •์˜ํ•œ๋‹ค.

์ด ํŒจํ‚ค์ง€์—์„œ ์ •์˜ํ•˜๋Š” AckermannDriveStamped ๋ฉ”์‹œ์ง€๋Š” ์ž์œจ ์ฃผํ–‰ ์‹œ์Šคํ…œ์—์„œ ์ฐจ๋Ÿ‰ ์ œ์–ด ๋ช…๋ น(์˜ˆ: ์Šคํ‹ฐ์–ด๋ง ๋ช…๋ น-์ฐจ๋Ÿ‰์˜ ์กฐํ–ฅ ๋ฐฉํ–ฅ)์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

sudo apt install ros-humble-ackermann-msgs

์ œ๊ฑฐ

๋ฐ”์ด๋„ˆ๋ฆฌ์—์„œ ์ด๋ฏธ ์„ค์น˜ํ•œ ํ›„ ROS 2๋ฅผ ์ œ๊ฑฐํ•˜๊ฑฐ๋‚˜ ์†Œ์Šค ๊ธฐ๋ฐ˜ ์„ค์น˜๋กœ ์ „ํ™˜ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•œ๋‹ค.

sudo apt remove ~nros-humble-* && sudo apt autoremove

 

์ €์žฅ์†Œ๋ฅผ ์ œ๊ฑฐํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

sudo rm /etc/apt/sources.list.d/ros2.list
sudo apt update
sudo apt autoremove
*# Consider upgrading for packages previously shadowed.*
sudo apt upgrade

2. ROS Bridge Extension ํ™œ์„ฑํ™”

์„ ํƒ์ ์œผ๋กœ Cyclone DDS๋กœ Isaac Sim์„ ์‹คํ–‰ํ•˜๋Š” ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅธ๋‹ค.

Isaac Sim๊ณผ ROS 2๋ฅผ ์—ฐ๊ฒฐํ•  ๋•Œ ์ค‘์š”ํ•œ ์„ค์ •์„ ํฌํ•จํ•œ๋‹ค.

2-1. Fast DDS ์„ค์ •

ROS 2 ๋ธŒ๋ฆฌ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด Isaac Sim์„ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ROS 2 ๋ฉ”์‹œ์ง€๋ฅผ ์ „๋‹ฌํ•  ๋ชจ๋“  ํ„ฐ๋ฏธ๋„ ์—์„œ Fast DDS ๋ฏธ๋“ค์›จ์–ด๋ฅผ ์„ค์ •ํ•ด์•ผํ•œ๋‹ค. Fast DDS๋Š” DDS(Data Distribution Service) ๊ตฌํ˜„์ฒด๋กœ, ROS 2์—์„œ ํ†ต์‹ ์„ ์œ„ํ•œ ๊ธฐ๋ณธ ๋ฏธ๋“ค์›จ์–ด๋กœ ์‚ฌ์šฉ๋œ๋‹ค.

fastdds.xml ํŒŒ์ผ์€ DDS์˜ ์„ค์ •์„ ์ •์˜ํ•œ๋‹ค. ์ด ํŒŒ์ผ์—๋Š” UDP ๊ธฐ๋ฐ˜์˜ ํ†ต์‹  ์„ค์ •์ด ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ, ROS 2์™€์˜ ํ†ต์‹ ์„ ์„ค์ •ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•˜๋‹ค.

ROS 2 ์ž‘์—…๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋ฉด, fastdds.xml ํŒŒ์ผ์€ ์ด๋ฏธ ์ž‘์—…๊ณต๊ฐ„์˜ ๋ฃจํŠธ ํด๋”์— ์žˆ์„ ๊ฒƒ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ROS 2 ์ž‘์—…๊ณต๊ฐ„์ด ros2_ws๋ผ๋ฉด, ros2_ws ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด๋ถ€์— fastdds.xml ํŒŒ์ผ์ด ์œ„์น˜ํ•ด์•ผํ•œ๋‹ค.

๋”ฐ๋ผ์„œ ๋จผ์ € ROS 2 ์ž‘์—…๊ณต๊ฐ„์„ ๋งŒ๋“ค์–ด์ค€๋‹ค.

 

 

๐Ÿ ROS 2 ์ž‘์—…๊ณต๊ฐ„์ด๋ž€?

ROS 2 ํŒจํ‚ค์ง€๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ๊ฐœ๋ฐœํ•˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๋งํ•œ๋‹ค.
์‰ฝ๊ฒŒ ๋งํ•˜๋ฉด, ROS 2์˜ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ์œ„ํ•œ ํด๋”์ด๋‹ค. ROS 2 ์ž‘์—…๊ณต๊ฐ„์€ ROS 2์˜ ํŒจํ‚ค์ง€์™€ ์˜์กด์„ฑ์„ ๊ด€๋ฆฌํ•˜๊ณ , ํŒจํ‚ค์ง€๋“ค์„ ๋นŒ๋“œํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.
my_ros2_ws/            # ์ž‘์—…๊ณต๊ฐ„ ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ
โ”œโ”€โ”€ src/               # ์†Œ์Šค ๋””๋ ‰ํ† ๋ฆฌ (๊ฐœ๋ฐœ ์ค‘์ธ ROS 2 ํŒจํ‚ค์ง€)
โ”‚   โ”œโ”€โ”€ my_robot_control/
โ”‚   โ”œโ”€โ”€ sensor_driver/
โ”‚   โ””โ”€โ”€ demo_nodes_cpp/
โ”œโ”€โ”€ build/             # ๋นŒ๋“œ ๋””๋ ‰ํ† ๋ฆฌ (์ปดํŒŒ์ผ ์ค‘๊ฐ„ ํŒŒ์ผ)
โ”œโ”€โ”€ install/           # ์„ค์น˜๋œ ํŒจํ‚ค์ง€ (๋นŒ๋“œ ํ›„ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ํŒŒ์ผ)
โ””โ”€โ”€ log/               # ๋กœ๊ทธ ๋””๋ ‰ํ† ๋ฆฌ (๋นŒ๋“œ ๋ฐ ์‹คํ–‰ ๋กœ๊ทธ)โ€‹โ€‹


 

๐Ÿ› Isaac Sim ROS 2 ์ž‘์—…๊ณต๊ฐ„์„ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•


IsaacSim์—์„œ ROS 2 ์ž‘์—…๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ROS 2 ์ž‘์—…๊ณต๊ฐ„์„ ๋นŒ๋“œํ•ด์•ผ ํ•œ๋‹ค.

 

1. ๊ฐ€์žฅ ๋จผ์ €, ๋‹ค์Œ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์—์„œ ๋ฒ ์ด์Šค ํŒจํ‚ค์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œํ•œ๋‹ค. https://github.com/isaac-sim/IsaacSim-ros\_workspaces

2. ROS 2 ์ž‘์—… ๊ณต๊ฐ„์„ ๋นŒ๋“œํ•˜๋ ค๋ฉด ์ถ”๊ฐ€ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•ด์•ผํ•œ๋‹ค.

# For rosdep install command
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
# For colcon build command
sudo apt install python3-colcon-common-extensionsโ€‹
  1. ๋„ค์ดํ‹ฐ๋ธŒ ROS 2๊ฐ€ ์†Œ์‹ฑ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.
  2. ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌROS 2 ์ž‘์—…๊ณต๊ฐ„์—์„œ ํŒจํ‚ค์ง€๋ฅผ ๋นŒ๋“œํ•˜๊ธฐ ์ „์—, ํ•ด๋‹น ํŒจํ‚ค์ง€๊ฐ€ ํ•„์š”๋กœ ํ•˜๋Š” ์˜์กด์„ฑ(dependencies)์„ ์ž๋™์œผ๋กœ ์„ค์น˜ํ•œ๋‹ค.
cd humble_ws
rosdep install -i --from-path src --rosdistro humble -y

 

์ตœ์ดˆ ์„ค์น˜์‹œ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ERROR ๊ฐ€ ๋œจ๋Š”๋ฐ ๋‹นํ™ฉํ•˜์ง€ ๋ง๊ณ  ์ดˆ๊ธฐํ™”๋ฅผ ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

 

4. ์ž‘์—… ๊ณต๊ฐ„ ๊ตฌ์ถ•

colcon build ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ROS 2๋ฅผ ๋นŒ๋“œํ•œ๋‹ค. ๋นŒ๋“œํ•˜๋ฉด ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ ์•„๋ž˜์— ์ƒˆ๋กœ์šด build, install, log๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.

colcon build

 

5. ๋‚ด์žฅ๋œ ROS 2 ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉ

์ด ์ž‘์—… ๊ณต๊ฐ„ ๋‚ด์— ๋‚ด์žฅ๋œ ROS 2 ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์ƒˆ ํ„ฐ๋ฏธ๋„์„ ์—ด๊ณ  ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์—… ๊ณต๊ฐ„์„ ์†Œ์‹ฑํ•œ๋‹ค.

source /opt/ros/humble/setup.bash
cd humble_ws
source install/local_setup.bash

 

FASTRTPS_DEFAULT_PROFILES_FILE ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜์—ฌ ํ•ด๋‹น ์„ค์ • ํŒŒ์ผ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

# ROS 2 ์ž‘์—…๊ณต๊ฐ„ ๊ฒฝ๋กœ์— ๋งž๊ฒŒ ์ˆ˜์ •
export FASTRTPS_DEFAULT_PROFILES_FILE=<path_to_ros2_ws>/fastdds.xml

 

์—ฌ๊ธฐ์„œ <path_to_ros2_ws>๋Š” ์‹ค์ œ ์ž‘์—…๊ณต๊ฐ„์˜ ๊ฒฝ๋กœ๋กœ ๋ฐ”๊ฟ”์•ผํ•œ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด, ์ž‘์—…๊ณต๊ฐ„์ด /home/ubuntu/ros2_ws์— ์žˆ๋‹ค๋ฉด, ๊ฒฝ๋กœ๋Š” /home/ubuntu/ros2_ws/fastdds.xml๋กœ ์ง€์ •๋œ๋‹ค.

๋‚˜ ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ์ž‘์—…๊ณต๊ฐ„์ด /home/ubuntu/humble_ws์— ์žˆ์œผ๋ฏ€๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฒฝ๋กœ๋ฅผ ๋ฐ”๊พธ์–ด ์ค€๋‹ค.

 

export FASTRTPS_DEFAULT_PROFILES_FILE=/home/ubuntu/humble_ws/fastdds.xml

 

Nucleus Launcher์—์„œ Isaac Sim์„ ์‹คํ–‰ํ•  ๋•Œ "Extra Args"์—์„œ๋„ ์„ค์ •ํ•ด์•ผํ•œ๋‹ค.

2-2 ROS_DOMAIN_ID ์„ค์ • (์„ ํƒ ์‚ฌํ•ญ)

ROS_DOMAIN_ID๋Š” ROS 2 ์‹œ์Šคํ…œ์—์„œ DDS ํ†ต์‹ ์„ ์œ„ํ•œ ๋„๋ฉ”์ธ ID๋ฅผ ์ง€์ •ํ•˜๋Š” ํ™˜๊ฒฝ ๋ณ€์ˆ˜์ด๋‹ค. ์—ฌ๋Ÿฌ ์‹œ์Šคํ…œ์ด ๊ฐ™์€ ๋„คํŠธ์›Œํฌ์—์„œ ROS 2 ๋ฉ”์‹œ์ง€๋ฅผ ์„œ๋กœ ์ถฉ๋Œ ์—†์ด ์ฒ˜๋ฆฌํ•˜๋ ค๋ฉด, ๊ฐ ์‹œ์Šคํ…œ์— ๊ณ ์œ ํ•œ ROS_DOMAIN_ID๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด๋Š” ์„ ํƒ ์‚ฌํ•ญ์ด์ง€๋งŒ, ์—ฌ๋Ÿฌ ๊ฐœ์˜ ROS 2 ์‹œ์Šคํ…œ์ด ๋™์ผํ•œ ๋„คํŠธ์›Œํฌ์—์„œ ๋…๋ฆฝ์ ์œผ๋กœ ์ž‘๋™ํ•˜๋„๋ก ํ•  ๋•Œ ์œ ์šฉํ•˜๋‹ค.

# ์›ํ•˜๋Š” ๋„๋ฉ”์ธ ID๋กœ ์„ค์ •
export ROS_DOMAIN_ID=<id_number>

2-3 ํ™•์žฅ ๊ธฐ๋Šฅ ํ™œ์„ฑํ™”

ROS 2 ๋ธŒ๋ฆฌ์ง€๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด, ํ™•์žฅ ๊ด€๋ฆฌ์ž ๋ฉ”๋‰ด์—์„œ "ํ™•์žฅ"์œผ๋กœ ์ด๋™ํ•˜์—ฌ ROS 2 ๋ธŒ๋ฆฌ์ง€๋ฅผ ๊ฒ€์ƒ‰ํ•œ๋‹ค. ํ™•์žฅ ํƒญ์€ windows → extensions ์— ์žˆ๋‹ค.

์ด๋•Œ ์ฃผ์˜ํ•  ์ ์€ ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ๋ธŒ๋ฆฌ์ง€๋งŒ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค.

Isaac Sim์„ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ROS 2๋ฅผ ์†Œ์‹ฑํ•ด์•ผ ํ•œ๋‹ค๋Š” ์ ์ด ๋งค์šฐ ์ค‘์š”ํ•˜๋‹ค.

"์†Œ์‹ฑ"์€ ํŠน์ • ํ™˜๊ฒฝ์„ ์„ค์ •ํ•˜๋Š” ๊ณผ์ •์œผ๋กœ, ROS 2์˜ ํ™˜๊ฒฝ ๋ณ€์ˆ˜์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ฒฝ๋กœ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋Š” ์ž‘์—…์ด๋‹ค.

https://docs.omniverse.nvidia.com/isaacsim/latest/\_images/isaac\_ros\_install\_enable\_extension.png

 

[๊ฒฐ๊ณผ]

 

ROS 2 ๋ธŒ๋ฆฌ์ง€์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

 

ROS 2 ๋ธŒ๋ฆฌ์ง€๋Š” Isaac Sim์ด ์‹คํ–‰๋  ๋•Œ ์†Œ์‹ฑ๋œ ROS 2 ์„ค์น˜์—์„œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋กœ๋“œํ•œ๋‹ค. Isaac Sim์„ ์‹คํ–‰ํ•  ๋•Œ ROS 2 ๋ฒ„์ „์„ ๋ช…์‹œ์ ์œผ๋กœ ์„ ํƒํ•˜๊ฑฐ๋‚˜, ROS 2๊ฐ€ ์†Œ์‹ฑ๋˜์ง€ ์•Š์œผ๋ฉด ๋ฏธ๋ฆฌ ํŒจํ‚ค์ง•๋œ Humble ๋ฒ„์ „์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋กœ๋“œ๋œ๋‹ค.

3. ROS ํ† ํ”ฝ์— ๋Œ€ํ•œ ๊ฒŒ์‹œ ๋ฐ ๊ตฌ๋…์„ ์‹œ์ž‘

ROS Bridge๋ฅผ ํ™œ์„ฑํ™”ํ•œ ํ›„, ROS ํ† ํ”ฝ์— ๋Œ€ํ•ด publish ๋ฐ subscribe ์ž‘์—…์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค. ROS ํŠœํ† ๋ฆฌ์–ผ์„ ํ•™์Šตํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•˜๋ฉฐ, ์ด๋ฅผ ์™„๋ฃŒํ•˜๋ ค๋ฉด Isaac Sim ROS ์›Œํฌ์ŠคํŽ˜์ด์Šค๋ฅผ ๋จผ์ € ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค.

 

1. ๋กœ์ปฌ์— ROS๊ฐ€ ์„ค์น˜๋œ ๊ฒฝ์šฐ:

  • Ubuntu 22.04์—์„œ๋Š” Isaac Sim ROS ์›Œํฌ์ŠคํŽ˜์ด์Šค๋ฅผ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•œ ์ง€์นจ์„ ๋”ฐ๋ฅผ ์ˆ˜ ์žˆ๋‹ค.
  • Ubuntu 20.04์—์„œ๋Š” Python 3.10๊ณผ ํ•จ๊ป˜ Isaac Sim ROS ์›Œํฌ์ŠคํŽ˜์ด์Šค๋ฅผ ๋นŒ๋“œํ•ด์•ผ ํ•œ๋‹ค.

2. ๋กœ์ปฌ์— ROS๊ฐ€ ์„ค์น˜๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ:

  • Linux์—์„œ๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ด์šฉํ•ด Isaac Sim ROS ์›Œํฌ์ŠคํŽ˜์ด์Šค๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๋นŒ๋“œํ•˜๋Š” ์ง€์นจ์„ ๋”ฐ๋ฅธ๋‹ค.
  • Windows 10 ๋ฐ 11์—์„œ๋Š” ํ˜„์žฌ ์ด ์˜ต์…˜์ด ์ง€์›๋˜์ง€ ์•Š๋Š”๋‹ค. ๋ชจ๋“  ROS 2 ์„ค์น˜๋Š” Ubuntu 22.04์˜ WSL2๋ฅผ ํ†ตํ•ด ๋„ค์ดํ‹ฐ๋ธŒ๋กœ ์‹คํ–‰ํ•ด์•ผ ํ•œ๋‹ค.

'๋กœ๋ณดํ‹ฑ์Šค' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Isaac Sim์—์„œ Nav2๋กœ ์ž์œจ์ฃผํ–‰ ํ…Œ์ŠคํŠธ  (0) 2025.01.08
Running Isaac Lab in the Cloud  (0) 2025.01.08