์๊ฐ
์ผ๋ง ์ ๋ ผ๋ฌธ์ ์์ฑํ๋ ๋์ ROS๊ฐ ์ด๋ฏธ ์ค์น๋ ๋จ์ผ ๋ณด๋ ํ๋ซํผ์ฉ Ubuntu ์ด๋ฏธ์ง๋ฅผ ์์ฑํด์ผ ํ๋ ์ํฉ์ ์ง๋ฉดํ์ต๋๋ค(๋ก๋ด ์ด์์ฒด์ - ๋ก๋ด ์ด์์ฒด์ ). ๊ฐ๋จํ ๋งํด์, ์กธ์ ์ฅ์ ๋ก๋ด ๊ทธ๋ฃน์ ๊ด๋ฆฌํ๋ ๋ฐ ์ ๋ ํฉ๋๋ค. ๋ก๋ด์๋ ๋ฐํด 2๊ฐ์ ๊ฑฐ๋ฆฌ ์ธก์ ๊ธฐ XNUMX๊ฐ๊ฐ ์ฅ์ฐฉ๋์ด ์์ต๋๋ค. ๋ชจ๋ ๊ฒ์ ODROID-CXNUMX ๋ณด๋์์ ์คํ๋๋ ROS์์ ์ ์ด๋ฉ๋๋ค.
๋ก๋ด ๋ ์ด๋๋ฒ๊ทธ. ์ฌ์ง ํ์ง์ด ์ข์ง ์์์ ์ฃ์กํฉ๋๋ค
๊ฐ ๋ก๋ด์ ๊ฐ๋ณ์ ์ผ๋ก ROS๋ฅผ ์ค์นํ ์๊ฐ๋ ์๊ตฌ๋ ์์์ผ๋ฏ๋ก ROS๊ฐ ์ด๋ฏธ ์ค์น๋ ์์คํ
์ด๋ฏธ์ง๊ฐ ํ์ํ์ต๋๋ค. ์ธํฐ๋ท์ ๊ฒ์ํ ํ ์ด ์์
์ ์ํํ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ํ ๋ช ๊ฐ์ง ์ ๊ทผ ๋ฐฉ์์ ์ฐพ์์ต๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ๋ฐ๊ฒฌ๋ ๋ชจ๋ ์๋ฃจ์
์ ๋ค์ ๊ทธ๋ฃน์ผ๋ก ๋๋ ์ ์์ต๋๋ค.
- ๊ธฐ์ฑ ๋ฐ ๊ตฌ์ฑ๋ ์์คํ
์์ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๋ ํ๋ก๊ทธ๋จ(
Distroshare Ubuntu ์ด๋ฏธ์ ,๋ฆฌ๋ ์ค ๋ผ์ด๋ธ ํคํธ ,๋ฆฌ๋ ์ค ๋ ์คํ , ์์คํ ๋ฐฑ ๋ฑ) - ์์ ๋ง์ ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค ์ ์๋ ํ๋ก์ ํธ(
์ํ ,๋ฆฌ๋ ์ค๋ฅผ ์ฒ์๋ถํฐ ) - ์ด๋ฏธ์ง๋ฅผ ์ง์ ์กฐ๋ฆฝํ๊ธฐ(
๋ผ์ด๋ธ CD ์ฌ์ฉ์ ์ ์ ะธ๋ฌ์์์ด ์๋น ๋ํ๊ธฐํ๋ธ๋ ์ ๊ดํ ๊ธฐ์ฌ )
์ฒซ ๋ฒ์งธ ๊ทธ๋ฃน์ ์๋ฃจ์
์ ์ฌ์ฉํ๋ ๊ฒ์ด ๊ฐ์ฅ ๊ฐ๋จํ๊ณ ๋งค๋ ฅ์ ์ธ ์ต์
์ธ ๊ฒ ๊ฐ์์ง๋ง ODROID์ฉ ๋ผ์ด๋ธ ์์คํ
์ด๋ฏธ์ง๋ฅผ ์์ฑํ ์ ์์์ต๋๋ค. ๋ ๋ฒ์งธ ๊ทธ๋ฃน์ ์๋ฃจ์
๋ ์ง์
์๊ณ๊ฐ์ด ์๋นํ ๋๊ธฐ ๋๋ฌธ์ ๋์๊ฒ ์ ํฉํ์ง ์์์ต๋๋ค. ์ฌ์ฉ ๊ฐ๋ฅํ ํํ ๋ฆฌ์ผ์ ๋ฐ๋ฅธ ์๋ ์กฐ๋ฆฝ๋ ์ ํฉํ์ง ์์์ต๋๋ค. ์๋ํ๋ฉด... ๋ด ์ด๋ฏธ์ง์ ์์ถ ํ์ผ ์์คํ
์ด ์์ต๋๋ค.
๊ทธ ๊ฒฐ๊ณผ chroot์ ๊ดํ ์์์ ๋ณด๊ฒ ๋์์ต๋๋ค.chroot - ๋ฃจํธ ๋ณ๊ฒฝ, ๊ฒ์๋ฌผ ๋์ ๋์์ ๋งํฌ) ๋ฐ ๊ทธ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ๋ค์์ผ๋ก ๋ก๋ด ๊ฐ๋ฐ์๋ฅผ ์ํด Ubuntu๋ฅผ ์ฌ์ฉ์ ์ ์ํ ํน๋ณํ ์ฌ๋ก๋ฅผ ์ค๋ช
ํ๊ฒ ์ต๋๋ค.
๊ธฐ์ค์ :
- ์ ์ฒด ์ด๋ฏธ์ง ์์ ํ๋ก์ธ์ค(balenaEtcher๋ฅผ ์ฌ์ฉํ SD ์นด๋์ ์ฐ๊ธฐ ์ ์ธ)๋ Ubuntu 18.04 ์ด์ ์ฒด์ ์์ ์ํ๋์์ต๋๋ค.
- ์ ๊ฐ ์ด์ ๋ธ๋ฆฌ๋ฅผ ์์ ํ ์ด์ ์ฒด์ ๋ Ubuntu 18.04.3 mate ๋ฐ์คํฌํฑ ๋ฒ์ ์ ๋๋ค.
- ์กฐ๋ฆฝ๋ ์์คํ ์ด ์๋ํด์ผ ํ๋ ๊ธฐ๊ณ๋ ODROID-C2์ ๋๋ค.
์ด๋ฏธ์ง ์ค๋น ์ค
-
ODROID์ฉ Ubuntu ์ด๋ฏธ์ง๋ฅผ ๋ค์์์ ๋ค์ด๋ก๋ํ์ธ์.
๊ณต์ ์ฌ์ดํธ -
์์นด์ด๋ธ ์์ถ ํ๊ธฐ
unxz โkv <ัะฐะนะป ะฐัั ะธะฒะฐ ั ะพะฑัะฐะทะพะผ>
-
์ด๋ฏธ์ง๋ฅผ ๋ง์ดํธํ ๋๋ ํฐ๋ฆฌ๋ฅผ ๋ง๋ญ๋๋ค.
mkdir mnt
-
ํ์ผ ์์คํ ์ด ์๋ ํํฐ์ ์ ํ์ธํฉ๋๋ค.
file <ัะฐะนะป ะพะฑัะฐะทะฐ>
ext2, ext3 ๋๋ ext4 ํ์์ ํ์ผ ์์คํ ์ด ์๋ ํํฐ์ ์ ์ฐพ๊ณ ์์ต๋๋ค. ์น์ ์์ ๋ถ๋ถ์ ์ฃผ์๊ฐ ํ์ํฉ๋๋ค(ํ๋ฉด์ ๋นจ๊ฐ์์ผ๋ก ๊ฐ์กฐ ํ์๋จ).
์์ต๋๋ค. ํ์ผ ์์คํ ์ ์์น๋ ์ ํธ๋ฆฌํฐ๋ฅผ ์ฌ์ฉํ์ฌ ๋ณผ ์๋ ์์ต๋๋ค. ๋๋. -
์ด๋ฏธ์ง ๋ง์ดํธ
sudo mount -o loop,offset=$((264192*512)) <ัะฐะนะป ั ะพะฑัะฐะทะพะผ> mnt/
ํ์ํ ์น์ ์ ๋ธ๋ก 264192(์ซ์๋ ๋ค๋ฅผ ์ ์์)๋ก ์์ํฉ๋๋ค. ํ ๋ธ๋ก์ ํฌ๊ธฐ๋ 512๋ฐ์ดํธ์ด๋ฏ๋ก ์ด๋ฅผ ๊ณฑํ์ฌ ๋ฐ์ดํธ ๋จ์๋ก ๋ค์ฌ์ฐ๊ธฐ๋ฅผ ์ป์ต๋๋ค.
-
์์คํ ์ด ๋ง์ดํธ๋ ํด๋๋ก ์ด๋ํ์ฌ ๊ทธ ํด๋์์ ๋์๋ณด์ธ์.
cd mnt/ sudo chroot ~/livecd/mnt/ bin/sh
~/livecd/mnt โ ๋ง์ดํธ๋ ์์คํ ์ด ์๋ ๋๋ ํ ๋ฆฌ์ ์ ์ฒด ๊ฒฝ๋ก
๋น/์ - ์(๋ค์์ผ๋ก ๋์ฒด ๊ฐ๋ฅ) ๋น/๋ฐฐ์ฌ)
์ด์ ํ์ํ ํจํค์ง์ ์ ํ๋ฆฌ์ผ์ด์ ์ค์น๋ฅผ ์์ํ ์ ์์ต๋๋ค.
ROS ์ค์น
์ต์ ๋ฒ์ ์ ROS(ROS Melodic)๋ฅผ ์ค์นํ์ต๋๋ค.
-
ํจํค์ง ๋ชฉ๋ก ์ ๋ฐ์ดํธ
sudo apt-get update
์ฌ๊ธฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.
Err:6 http://deb.odroid.in/c2 bionic InRelease The following signatures were invalid: EXPKEYSIG 5360FB9DAB19BAC9 Mauro Ribeiro (mdrjr) <[email protected]>
์ด๋ ํจํค์ง ์๋ช ํค๊ฐ ๋ง๋ฃ๋์๊ธฐ ๋๋ฌธ์ ๋๋ค. ํค๋ฅผ ์ ๋ฐ์ดํธํ๋ ค๋ฉด ๋ค์์ ์ ๋ ฅํฉ๋๋ค.
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys AB19BAC9
-
ROS ์ค์น๋ฅผ ์ํ ์์คํ ์ค๋น
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt update
-
ROS ์ค์น
์ํ๊น๊ฒ๋ ๋ฐ์คํฌํฑ ๋ฒ์ ์ ROS๋ฅผ ์ค์นํ ์ ์์ด์ ๊ธฐ๋ณธ ํจํค์ง๋ง ์ค์นํ์ต๋๋ค.sudo apt install ros-melodic-ros-base apt search ros-melodic
1์ ์ ์ํ์ญ์์ค. ์ค์น ๊ณผ์ ์์ ๊ฐ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค:
dpkg: error: failed to write status database record about 'iputils-ping' to '/var/lib/dpkg/status': No space left on device
apt ์ ํธ๋ฆฌํฐ๋ฅผ ์ฌ์ฉํ์ฌ ์บ์๋ฅผ ์ญ์ ํ์ฌ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค.
sudo apt-get clean; sudo apt-get autoclean
2์ ์ ์ํ์ญ์์ค. ์ค์น ํ ๋ค์ ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ์์ค๋ฅผ ์์ฑํฉ๋๋ค.
source /opt/ros/melodic/setup.bash
๊ทธ๊ฑด ์๋ํ์ง ์์ ๊ฑฐ์ผ, ์๋๋ฉด ์ฐ๋ฆฌ๋ bash๋ฅผ ์คํํ์ง ์์์ผ๋ฏ๋ก ํฐ๋ฏธ๋์ ์ ๋ ฅํ ํ์๊ฐ ์์ต๋๋ค.
-
ํ์ํ ์ข ์์ฑ ์ค์น
sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
sudo apt install python-rosdep
sudo rosdep init rosdep update
-
์ ๊ทผ ๊ถํ ์ค์
์ฐ๋ฆฌ๋ ๋ก๊ทธ์ธ๋์ด ์๊ณ ์ค์ ๋ก ์กฐ๋ฆฝ๋๋ ์์คํ ์ ๋ฃจํธ๋ฅผ ๋์ ํ์ฌ ๋ชจ๋ ์์ ์ ์ํํ๋ฏ๋ก ROS๋ ์ํผ์ ์ ๊ถํ์ผ๋ก๋ง ์์๋ฉ๋๋ค.
sudo ์์ด roscore๋ฅผ ์คํํ๋ ค๊ณ ํ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค:Traceback (most recent call last): File "/opt/ros/melodic/lib/python2.7/dist-packages/roslaunch/__init__.py", line 230, in main write_pid_file(options.pid_fn, options.core, options.port) File "/opt/ros/melodic/lib/python2.7/dist-packages/roslaunch/__init__.py", line 106, in write_pid_file with open(pid_fn, "w") as f: IOError: [Errno 13] Permission denied: '/home/user/.ros/roscore-11311.pid'
์ค๋ฅ ๋ฐ์์ ๋ฐฉ์งํ๊ธฐ ์ํด ROS ์ฌ์ฉ์์ ํ ๋๋ ํฐ๋ฆฌ์ ๋ํ ์ก์ธ์ค ๊ถํ์ ๋ฐ๋ณต์ ์ผ๋ก ๋ณ๊ฒฝํด ๋ณด๊ฒ ์ต๋๋ค. ์ด๋ฅผ ์ํด ๋ค์์ ์ ๋ ฅํฉ๋๋ค.
sudo rosdep fix-permissions
-
rviz ๋ฐ rqt ํจํค์ง ์ถ๊ฐ ์ค์น
sudo apt-get install ros-melodic-rqt ros-melodic-rviz
์ต์ข ์์ง
- chroot ์ข
๋ฃ:
exit
- ์ด๋ฏธ์ง ๋ง์ดํธ ํด์
cd .. sudo umount mnt/
- ์์คํ
์ด๋ฏธ์ง๋ฅผ ์์นด์ด๋ธ์ ์์ถํด ๋ณด๊ฒ ์ต๋๋ค.
xz โckv1 <ัะฐะนะป ะพะฑัะฐะทะฐ>
๋ชจ๋! ์ด์ ๋์์ ๋ฐ์
๋งํฌ :
- ์ด ๋น๋์ค๋ Linux์์ ์นํธ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ๊ณผ ๊ทธ๊ฒ์ด ํ์ํ ์ด์ ์ ๋ํด ๋ง์ ๋์์ด ๋์์ต๋๋ค.
์ถ์ฒ : habr.com