Control using Odroid SBC
Startup Session ๋ง๋ค๊ธฐ
๋ก๋ด์ ์ ์์ธ๊ฐํ OS ์์์์ ์๋์ผ๋ก ํ๋ก๊ทธ๋จ์ด ๋์๋๋๋ก ์ธํ ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณธ๋ค.
~/.bashrc ์ ๋ช ๋ น์ด๋ฅผ ๋จ์ถ์ด๋ก ์คํ์ํค๊ธฐ ์ํ alias ์ค์ ์ ํ๋ค. ์ด๋ ์ ํ์ฌํญ์ด๋ ์ด๋ ๊ฒ ํด๋์ผ๋ฉด ํธ๋ฆฌํ๋ค. ์๋์ ๊ฐ์ด ๋ด์ฉ์ .bashrc ํ์ผ ๋ง์ง๋ง์ ๊ธฐ์ ์ ํด ๋์ผ๋ฉด mr0๋ผ๋ ๋ช ๋ น์ด๋ฅผ ํตํด ํด๋นํ๋ roslaunch ๋ช ๋ น์ด๋ฅผ ์คํํ ์ ์๋ค.
sr๊ณผ sr0 ๋จ์ถ ๋ช ๋ น์ด๋ ์๋์์ ๋ค์ ์ค๋ช ํ๊ฒ ๋ค.
alias mr0='roslaunch mecanum_robot_ver1 mecanum_robot_ver1_teleop.launch'
alias sr='screen -r startupSess'
alias sr0='screen -r startupSess0'
์ด์ ~/ ํด๋์ ํน์ ์ํ๋ ํด๋์ screen์ ์ด์ฉํ์ฌ ์์ํ๋ก๊ทธ๋จ์ ์คํ์ํค๋ ๋ฐฉ๋ฒ์ ๋ํด ์ค๋ช ํ๋ค. screen ์ด ์ค์น๋์ด ์์ง ์์ ๊ฒฝ์ฐ์๋ sudo apt-get install screen ๋ช ๋ น์ด๋ก ์ค์น๋ฅผ ํ๋ฉด๋๋ค. ์๋์ ๊ฐ์ bash script๋ฅผ ์ด์ฉํ์ฌ startupSess ์คํํธ์ ์ธ์ ์ ๋ง๋ค์ ์๋ค. cat ๋ช ๋ น์ด๋ฅผ ์ด์ฉํ์ฌ autorun_script.sh ํ์ผ์์ ๋ด์ฉ์ ๋ค์ฌ๋ค ๋ณด๋ฉด screen ๋ช ๋ น์ด๋ฅผ ์ด์ฉํ์ฌ ์์ ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ฉฐ mr0 ๋ผ๋ ์์ ์ ์ธํ ๋จ์ถ๋ช ๋ น์ด๋ก roslaunch ํ๋ก๊ทธ๋จ์ ์คํํ ์ ์๊ฒ ๋๋ค.
odroid@odroid:~$ cat autorun_script.sh
# Run HuboQ Remastered Ver1 - hq0 in Startup
screen -S "startupSess" -d -m
screen -r "startupSess" -X stuff $'mr0\n'
autorun_script.sh๋ ์คํ๊ฐ๋ฅ ๋ช ๋ น์ด๋ก ๋ง๋ค์ด์ผํ๊ธฐ chmod +x autorun_script.sh ๋ฅผ ์คํํ์ฌ ์คํ๊ฐ๋ฅํ๊ฒ ๋ง๋ค์ด๋๋๋ค. ์ฌ๊ธฐ๊น์ง ํ๋ฉด autorun_script.sh ํ์ผ์ ์ด์ฉํ์ฌ screen ์ธ์ ์ ์ด๊ณ ๊ทธ ์์์ rosํ๋ก๊ทธ๋จ์ ๋๋ฆฌ๊ฒ ๋๋ค.
screen์ ์ฐ๋ฆฌ๊ฐ ssh๋ฅผ ์ด์ฉํด์ ์๊ฒฉ์ ์์ ํ๋ฉด ํฐ๋ฏธ๋ ์ฐฝ์์ ํ๋์ ์ธ์ ์ด ์์ฑ๋๋ฏ์ด ์์ screen์ ์ด์ฉํ์ฌ ์ธ์ ์ ๋ง๋ ๊ฒ์ด๋ฏ๋ก ์ด๋ ๊ธฐ๋ณธ์ ์ผ๋ก background์์ ๋์ํ๊ฒ ๋๋ฉฐ ์ด๋ฅผ ํ์ธํ๊ธฐ ์ํ ๋ช ๋ น์ด๊ฐ ์์์ ๋ฏธ๋ฆฌ ๋ง๋ค์ด ๋์ sr ์ด๋ค.
์, ์ด์ ์ค์ง์ ์ผ๋ก ์ฒ์ OS๊ฐ ์คํ๋๊ณ ๋์ ์๋์ ์ผ๋ก autorun_script.sh๊ฐ ๋์๋๋๋ก ํด์ผํ๋ค. ์ด๊ฒ์ /etc/rc.local ํ์ผ์ ๋ค์๊ณผ ๊ฐ์ด ์ถ๊ฐํ๋ฉด ๋๋ค.
odroid@odroid:~$ cat /etc/rc.local
#!/bin/bash
# autorun script
su odroid -c '/home/odroid/autorun_script_gpio.sh &'
su odroid -c '/home/odroid/autorun_script.sh &'
if [ -f /aafirstboot ]; then /aafirstboot start ; fi
if [ -f /aafirstboot ]; then /aafirstboot start ; fi
exit 0
์ฌ๊ธฐ์๋ autorun_script.sh์ autorun_script_gpio.sh ๋๊ฐ์ bash script๊ฐ ๊ฐ๊ฐ ๋ ๋ฆฝ์ ์ธ screen ์ธ์ ์ผ๋ก ์คํ๋๋๋ก ํ์๋ค. ์ด๋ odroid์ gpio๋ฅผ ๋ด๋นํ๋ ๋ณ๋์ ํ๋ก๊ทธ๋จ๊ณผ roslauch๋ฅผ ํตํด ์คํํ๋ ๋๊ฐ์ ํ๋ก๊ทธ๋จ์ ๋ชจ๋ ์คํํด์ผํ๊ธฐ ๋๋ฌธ์ ์ด์ ๊ฐ์ด ๊ตฌ์ฑํ์๋ค.
์ด๋ ๊ฒ ์ธํ ์ ํ๋ฉด ์์์ ์๋์ ์ผ๋ก mr0 ํ๋ก๊ทธ๋จ๊ณผ gpio ํ๋ก๊ทธ๋จ์ด ์คํ๋๋๋ฐ ์ด๋ background์์ ์คํ์ด ๋๋ค๊ณ ํ์์ผ๋ฏ๋ก ์ด ์คํ์ํ๋ฅผ ์ง์ ํ์ธํ๊ณ ์ ํ ๋๋ ssh๋ก ํฐ๋ฏธ๋ ์ ์์ ํ ์ํ์์ sr ๋๋ sr0๋ฅผ ํตํด ๊ฐ๊ฐ ์ธ์ ์ผ๋ก ์ ์ฅ์ ํ ์ ์๊ณ ๋์ฌ ๋๋ exit ๋ช ๋ น์ด๋ก ๋์ฌ ์ ์๋ค.
Last updated
Was this helpful?