2. ROS ์ค์น(๋ฐ์คํฌํ), ๊ฐ๋ฐ์ ํธ๋ฆฌํ๊ฒ ํด์ฃผ๋ ๋๊ตฌ๋ค ์๋ด

2. ROS ์ค์น(๋ฐ์คํฌํ), ๊ฐ๋ฐ์ ํธ๋ฆฌํ๊ฒ ํด์ฃผ๋ ๋๊ตฌ๋ค ์๋ด
Ubuntu Linux 18.04๊ฐ ์ค์น๋์ด ์๋ ๋ฐ์คํฌํ์ ๊ธฐ์ค์ผ๋ก ROS๋ฅผ ์ค์นํด ๋ด ์๋ค
์ค๋น๋ฌผ
- ์ฐ๋ถํฌ ๋ฆฌ๋ ์ค๊ฐ ์ค์น๋ ๋ฐ์คํฌํ (ํน์ ์ธ์ฅ ๊ทธ๋ํฝ์ ํฌํจํ ๋ ธํธ๋ถ) 1๋
- ๋ฆฌ๋ ์ค ์ปค๋งจ๋ ๋ผ์ธ์ ๋ํ ์ฝ๊ฐ์ ์ง์
- ์พ์ ํ ์ธํฐ๋ท ํ๊ฒฝ
๋ฐ๋ก ์ค์ ํ๋์จ์ด๋ก ๋์ด๊ฐ๊ธฐ ์ ์, ROS์ ์ฃผ์ ๊ฐ๋ ๋ค์ ์๋ฎฌ๋ ์ด์ ์ ํตํด ์ตํ๋ณผ ์์ ์ ๋๋ค.
๋ง์น ์ฐ๋ฆฌ๊ฐ ๊ฒ์์ ํ ๋ ์ข์ ๊ทธ๋ํฝ ์นด๋๊ฐ ์์ผ๋ฉด ๋์ ํด์๋์์ ๋ฉ์ถค ์์ด ํ๋ ์ด๋ฅผ ํ ์ ์๋ฏ์ด, ์๋ฎฌ๋ ์ด์ ์ ๋ก๋ํ๊ณ ์คํ์ํฌ ๋์๋ ๋ ธํธ๋ถ๋ณด๋ค๋ ๋ฐ์คํฌํ์ด ํผํฌ๋จผ์ค ์ธก๋ฉด์์ ์ ๋ฆฌํฉ๋๋ค.
- ์ฐ๋ถํฌ ๋ถํ USB ๋ง๋ค๊ธฐ


- ์ฐ๋ถํฌ & ์๋์ฐ ๋์ผ ๋ถํ ํ๊ฒฝ ๋ง๋ค๊ธฐ (GRUB)
image from : IT'S FOSS
๐ ๏ธ ์ฐ๋ถํฌ ์ค์น๋ฅผ ์์น ์์ผ์๋ค๋ฉด, WSL์ ์ฌ์ฉํ ์๋์ฐ ์ค์น ๋ฐฉ๋ฒ๋ ๋งํฌํด๋๋ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค.

Terminator ์ค์น
๋ค์ค ๋ถํ ํฐ๋ฏธ๋์ ์ํ ์ธํฐํ์ด์ค

# ppa ๋ฑ๋ก
$ sudo add-apt-repository ppa:gnome-terminator
Enter
# ์ค์น ์ ์
๋ฐ์ดํธ
$ sudo apt-get update
# terminator ์ค์น
$ sudo apt-get install terminator -y
๐ป14๊ฐ - Jetson Nano ๊ฐ๋ฐํ๊ฒฝ๊ณผ Python ๊ฐ์ํ๊ฒฝ ๊ตฌ์ฑ
vscode ์ค์น

- Visual Studio IntelliCode
- Project Manager
- URDF
- C/C++
- Python
- CMake Tools
- Material Theme
- Code runner
- etc...
Additional Setup
$ sudo apt-get purge modemmanager
$ sudo adduser [์ฌ์ฉ์ ๊ณ์ ์ด๋ฆ]
$ sudo usermod -aG sudo [์ฌ์ฉ์ ๊ณ์ ์ด๋ฆ]
reference : How to create sudo user on Ubuntu 18.04 Bionic Beaver Linux
Ubuntu ROS Melodic ์ค์น
$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
$ sudo apkey adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
# ์ค๋ฅ ๋ฐ์์
$ curl -sSL 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xC1CF6E31E6BADE8868B172B4F42ED6FBAB17C654' | sudo apt-key add -
$ sudo apt update
$ sudo apt install ros-melodic-desktop-full
$ echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
$ source ~/.bashrc
$ sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
$ sudo rosdep init
$ rosdep update
์ฐธ๊ณ ์๋ฃ : ROS Wiki

์์ผ๋ก ๋ค์๊ณผ ๊ฐ์ด ๋ฐฐ๋ณดํ ROS ํจํค์ง๋ค์ ์ถ๊ฐ ์ค์นํ ์ ์์ต๋๋ค!
$ sudo apt-get install ros-melodic-<package name>
์๋์์ฑ tab
ํค๋ฅผ ์ ๊ทน ์ฌ์ฉํ์ธ์!!
์ค์น ํ์ธ
- ์๋ก ํฐ๋ฏธ๋์ ์ด์ด์ผ ํฉ๋๋ค.
$ roscore
... logging to /home/kimsooyoung/.ros/log/5b440a74-4cda-11eb-a263-9cb6d08bf543/roslaunch-kimsooyoung-XPS-13-9370-10527.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.
started roslaunch server http://localhost:38251/
ros_comm version 1.14.10
SUMMARY
========
PARAMETERS
* /rosdistro: melodic
* /rosversion: 1.14.10
NODES
auto-starting new master
process[master]: started with pid [10537]
ROS_MASTER_URI=http://localhost:11311/
setting /run_id to 5b440a74-4cda-11eb-a263-9cb6d08bf543
process[rosout-1]: started with pid [10559]
started core service [/rosout]
๋ค์๊ณผ ๊ฐ์ ์ปค๋งจ๋๋ผ์ธ์ด ๋ณด์๋ค๋ฉด ์๋ฃ๋ ๊ฒ์ ๋๋ค!! ๐
์ํ์ผ์ ROS ํ๋ก๊ทธ๋จ์ ํ๋ ์คํ์์ผ ๋ณด๊ฒ ์ต๋๋ค.
$ rosrun turtlesim turtlesim_node
# ์ ํฐ๋ฏธ๋ ์คํ
$ rosrun turtlesim turtle_teleop_key
์ ์ปค๋งจ๋ ๋ผ์ธ๋ค๋ ๋ชจ๋ ์คํ๋์ จ๋ค๋ฉด, ๋ฌธ์ ์์ด ์ค์น๊ฐ ์๋ฃ๋ ๊ฒ์ ๋๋ค.
~/.bashrc ์์
$ gedit ~/.bashrc
# ํ์ผ ์ ์ผ ์๋์ ๋ค์๊ณผ ๊ฐ์ ๋ด์ฉ ์
๋ ฅ
alias eb='gedit ~/.bashrc'
alias sb='source ~/.bashrc'
alias gs='git status'
alias gp='git pull'
alias cw='cd ~'
alias cs='cd ~/src'
alias cm='cd ~ && catkin_make'
alias cma='catkin_make -DCATKIN_WHITELIST_PACKAGES=""'
alias cop='catkin_make --only-pkg-with-deps'
alias sds='source devel/setup.bash'
alias axclient='rosrun actionlib axclient.py'
# ์ข
๋ฃ ํ ํฐ๋ฏธ๋ ์
๋ฐ์ดํธ
$ source ~/.bashrc
๊ฐ๊ฐ์ ๋ช ๋ น์ด ์ด๋ค ์๋ฏธ๋ฅผ ๊ฐ์ง๋์ง๋ ์์ผ๋ก ๊ณ์ํด์ ๋ค๋ค๋ด ๋๋ค.
๋ค๋ง, alias
๊ฐ ์ด๋ค ๊ฒ์ธ์ง๋ง ์ด์ง ์ง์ด๋ณด๊ณ ๋์ด๊ฐ๊ฒ ์ต๋๋ค.