[IoT] TurtleBot3

bbolddaguยท2023๋…„ 5์›” 1์ผ
0

IoT

๋ชฉ๋ก ๋ณด๊ธฐ
2/7

ROS ์„ค์น˜

๐Ÿ“Œ ROS (Robot Operating System)
ROS๋Š” ์šด์˜์ฒด์ œ์—์„œ ์‹คํ–‰๋˜๋Š” ๋กœ๋ด‡ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ์— ํ•„์š”ํ•œ ๋„๊ตฌ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ ๊ทœ๊ฒฉ์„ ์ œ๊ณต

1. ๊ฐ€์ƒ ๋จธ์‹  ์„ค์น˜

์œˆ๋„์šฐ ์šด์˜์ฒด์ œ์—์„œ ROS๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋ฉด ๊ฐ€์ƒ๋จธ์‹ (Virtual Machine)์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜, WSL(Windows Subsystem for Linux)์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์ƒ๋จธ์‹ ์„ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด, VirtualBox๋‚˜ VMWare์™€ ๊ฐ™์€ ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌ๋ˆ…์Šค ์šด์˜์ฒด์ œ๋ฅผ ์„ค์น˜ํ•˜๊ณ  ROS๋ฅผ ์„ค์น˜ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. WSL์„ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด, Windows์—์„œ ๋ฆฌ๋ˆ…์Šค ํ™˜๊ฒฝ์„ ์‹คํ–‰ํ•˜์—ฌ ROS๋ฅผ ์„ค์น˜ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

1-1. Oracle VM VirtualBox ์„ค์น˜

๋‹ค์šด๋กœ๋“œ ๋งํฌ
์šด์˜์ฒด์ œ์— ๋งž๋Š” ์„ค์น˜ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ์„ค์น˜

1-2. Ubuntu ๋‹ค์šด๋กœ๋“œ

๋‹ค์šด๋กœ๋“œ ๋งํฌ
Ubuntu OS ๋‹ค์šด๋กœ๋“œ

1-3. ๊ฐ€์ƒ๋จธ์‹  ๋งŒ๋“ค๊ธฐ

VirtualBox๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์ƒˆ ๊ฐ€์ƒ๋จธ์‹ ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ด๋ฆ„๊ณผ ์šด์˜์ฒด์ œ๋ฅผ ์„ค์ •ํ•˜๊ณ , ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ๋ฅผ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค. Ubuntu๋ฅผ ์„ค์น˜ํ•  ISO ์ด๋ฏธ์ง€ ํŒŒ์ผ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ”ง ์ขŒ์ธก ์ƒ๋‹จ ๋จธ์‹  โžก ์ƒˆ๋กœ ๋งŒ๋“ค๊ธฐ

๐Ÿ”ง ISO Image โžก ๋‹ค์šด๋ฐ›์€ Ubuntu ์ด๋ฏธ์ง€ ์„ ํƒ (์ด๋ฆ„์€ ์›ํ•˜๋Š” ๊ฑธ๋กœ: ๋‚˜๋Š” Ubuntu-20.04.6 ๋กœ ์„ค์ •) โžก ๋‹ค์Œ


๐Ÿ”ง ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ ์ •ํ•˜๊ธฐ: ์ผ๋‹จ ๊ธฐ๋ณธ ๊ฐ’์œผ๋กœ ๋‘๊ณ  ํŒจ์Šค


๐Ÿ”ง ๊ฐ€์ƒ ๋””์Šคํฌ ๊ณต๊ฐ„์ด ๋˜๋Š” ํŒŒ์ผ ๋งŒ๋“ค๊ธฐ: ์ƒˆ๋กœ ๋งŒ๋“ค๊ธฐ ๋•Œ๋ฌธ์— create a virtual hard disk now ์„ ํƒ

๐Ÿ‘Š ์šฐ๋ถ„ํˆฌ OS ์„ค์น˜ ์ค€๋น„ ์™„๋ฃŒ


๐Ÿ‘Š ๋‹ค์šด๋ฐ›์€ ISO ํŒŒ์ผ VMmachine์— ์ถ”๊ฐ€ํ•ด์„œ OS ์„ค์น˜ํ•˜๊ธฐ


๐Ÿ”ง ๋ฐฉ๊ธˆ ๋งŒ๋“  ๊ฐ€์ƒ ๋จธ์‹  ์„ ํƒ โžก ์„ค์ • ๋ฒ„ํŠผ ํด๋ฆญ


๐Ÿ”ง ์ขŒ์ธก์ €์žฅ์†Œ ํด๋ฆญ โžก ์ปคํŠธ๋กค๋Ÿฌ:IDE ์— ๋น„์–ด์žˆ์Œ ํด๋ฆญ โžก ์†์„ฑ์— ํŒŒ๋ž€์ƒ‰ ๋™๊ทธ๋ผ๋ฏธ ํด๋ฆญ โžก ๊ฐ€์ƒ ๊ด‘ํ•™ ๋””์Šคํฌ ์„ ํƒ/๋งŒ๋“ค๊ธฐ ํด๋ฆญ or ๋ฐ”๋กœ ์•„๊นŒ ๋‹ค์šด ๋ฐ›์€ ์šฐ๋ถ„ํˆฌ ๋‹ค์šด๋กœ๋“œ ํŒŒ์ผ ํด๋ฆญ


๐Ÿ”ง ์ •์ƒ์ ์œผ๋กœ ์ถ”๊ฐ€๋˜์—ˆ๋Š”์ง€ ํ™•์ธ


๐Ÿ”ง ์‹œ์ž‘ ๋ฒ„ํŠผ ํด๋ฆญ: ๊ฐ€์ƒ ๋””์Šคํฌ ์‹œ์ž‘


๐Ÿ”ง skip


๐Ÿ‘Š ์™„๋ฃŒ!!

๐Ÿ“– ์ฐธ๊ณ 

2. Install ROS 2 on Remote PC ๋งํฌ

2-1. ํ„ฐ๋ฏธ๋„ ์ฐฝ ์—ด์–ด ROS ๋‹ค์šด๋กœ๋“œ


๐Ÿ”ฅ ๋ฌธ์ œ ๋ฐœ์ƒ

  • ๋ฌธ์ œ: ํ„ฐ๋ฐ€๋„ ์ฐฝ์ด ์•ˆ์—ด๋ฆผ

  • ์›์ธ: ๋ฌด์ธ ์„ค์น˜(Unattended Install)๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด ๋ฐœ์ƒํ•˜๋Š” ํ˜„์ƒ

  • ํ•ด๊ฒฐ ๋ฐฉ์•ˆ: ์šฐ๋ถ„ํˆฌ์˜ Settings โžก Region & Language โžก ์–ธ์–ด ๋‹ค๋ฅธ๊ฑธ๋กœ ๋ณ€๊ฒฝ โžก ๋กœ๊ทธ์•„์›ƒ ํ›„ ๋‹ค์‹œ ๋กœ๊ทธ์ธ

  • ๐Ÿ“– ์ฐธ๊ณ : https://code-lab1.tistory.com/309


๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž…๋ ฅ

$ sudo wget https://raw.githubusercontent.com/ROBOTIS-GIT/robotis_tools/master/install_ros2_foxy.sh
$ sudo chmod 755 ./install_ros2_foxy.sh		# ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” install_ros2_foxy.sh ํŒŒ์ผ์˜ ๊ถŒํ•œ์„ Owner๋Š” ์ฝ๊ธฐ, ์“ฐ๊ธฐ, ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•˜๊ณ , Group๊ณผ Others๋Š” ์ฝ๊ธฐ, ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ๋ณ€๊ฒฝํ•˜๋Š” ๋ช…๋ น์–ด
$ sudo bash ./install_ros2_foxy.sh

๐Ÿ”ฅ ๋ฌธ์ œ ๋ฐœ์ƒ

  • ๋ฌธ์ œ: ๋‘๋ฒˆ์งธ ๋ช…๋ น์–ด๊ฐ€ ๋™์ž‘ ์•ˆํ•จ

  • ์›์ธ: ํ˜„์žฌ ๋กœ๊ทธ์ธํ•œ ์‚ฌ์šฉ์ž๊ฐ€ sudo ๋ช…๋ น ์‹คํ–‰ ๊ถŒํ•œ์ด ์—†์Œ

  • ํ•ด๊ฒฐ ๋ฐฉ์•ˆ: ๊ฐ€์ƒ๋จธ์‹ ์— ๋กœ๊ทธ์ธํ•œ ์‚ฌ์šฉ์ž์—๊ฒŒ sudo ๊ถŒํ•œ์„ ๋ถ€์—ฌ

    # root ์‚ฌ์šฉ์ž๋กœ ๋ณ€๊ฒฝ
    su -
    
    # ํ˜„์žฌ ์‚ฌ์šฉ์ž๋ฅผ sudoers ํŒŒ์ผ์— ์ถ”๊ฐ€
    sudo visudo
    
    # ํŽธ์ง‘ ํŒŒ์ผ์ด ์—ด๋ฆฌ๋ฉด root ALL=(ALL:ALL) ALL ๋ผ์ธ ๋‹ค์Œ์— ์•„๋ž˜์™€ ๊ฐ™์ด ํ˜„์žฌ ์‚ฌ์šฉ์ž๋ฅผ ์ถ”๊ฐ€
    <username>    ALL=(ALL:ALL) ALL
    
    exit
    

3. Install Dependent ROS 2 Packages

3-1. Install Gazebo11

sudo apt-get install ros-foxy-gazebo-*

3-2. Install Cartographe

sudo apt install ros-foxy-cartographer
sudo apt install ros-foxy-cartographer-ros

3-3. Install Navigation2

sudo apt install ros-foxy-navigation2
sudo apt install ros-foxy-nav2-bringup

4. Install TurtleBot3 Packages

source ~/.bashrc
sudo apt install ros-foxy-dynamixel-sdk
sudo apt install ros-foxy-turtlebot3-msgs
sudo apt install ros-foxy-turtlebot3

5. Environment Configuration

Set the ROS environment for PC

echo 'export ROS_DOMAIN_ID=30 #TURTLEBOT3' >> ~/.bashrc
source ~/.bashrc

0๊ฐœ์˜ ๋Œ“๊ธ€