20. [ROS RC์นด] ROS ์ฐ๋ RC์นด ์ฃผํ
ROS_MASTER_URI ์ค์
์กฐ์ด์คํฑ์ ์ด์ฉํด ๊ฐ๋ฐํ๋ค๊ฐ, ๋ฌธ์ ๊ฐ ์๊ธฐ๋ ๊ฒฝ์ฐ, ๋ค์ ๋ก๋ด์ ๊ฐ์ ธ์์ ๋ชจ๋ํฐ๋ฅผ ๊ฝ๊ณ ๋ง์ฐ์ค ํค๋ณด๋๋ฅผ ๋ค๊ณ ์์ ๋๋ฒ๊น ์ ํ๊ณ ๊ทธ๋ฌ๋ค๊ฐ ๋ฒ ํฐ๋ฆฌ๊ฐ ๊บผ์ ธ์ ์์ ํ ๋ด์ฉ์ด ๋ ์๊ฐ๊ณ ...
์ด๋ฌํ ์ํฉ์ ์ ๋ ๋ง์ด ๊ฒช์์ต๋๋ค. ๊ทธ๋์, ์๊ฒฉ์ผ๋ก jetson nano์ ์ ์ํ๊ณ , ๊ฐ์ ROS Master๋ฅผ ๋ฐ๋ผ๋ณด๋๋ก ์ธํ ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๋ง์๋๋ฆฌ๊ณ ์ ํฉ๋๋ค.
- Jetson Nano IP ํ์ธ
$ hostname -I
> 192.168.0.??
- PC IP ํ์ธ
$ hostname -I
> 192.168.0.??
- PC โ Jetson Nano SSH ์ ์
$ ssh <user-name>@192.168.0.??
> swimming@192.168.0.12's password: c
<jetson-user-name>@<jetson-pc-name>~$
์ด๋ ๊ฒ ssh๋ฅผ ํตํด jetson์ผ๋ก ์๊ฒฉ์ ์์ ํ ์ ์์ต๋๋ค.
๊ฐ์ ROS Master๋ฅผ ๋ฐ๋ผ๋ณด๊ฒ ํ๊ธฐ
- PC์์
~/.bashrc
๋ฅผ ์์ ํฉ๋๋ค.
$ eb
#iptime
export ROS_MASTER_URI=http://192.168.0.jetson:11311
export ROS_HOSTNAME=192.168.0.pc
$ sb
๊ทธ๋ฐ ๋ค์, Jetson์์ roscore
๋ฅผ ์คํํ ๋ค, ๋ค์ PC์์
rosnode list
๋ฅผ ์
๋ ฅํด ๋ณด์ธ์
$ rosnode list
/rosout
โ๏ธโ๏ธ master๋ฅผ ์คํ์ํค์ง ์์๋๋ฐ, rocsout์ด ์์ต๋๋ค.
PC๊ฐ Jetson์ rosmaster๋ฅผ ๋ฐ๋ผ๋ณด๋๋ก ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๐๐
์ง๊ธ ๋ถํฐ, PC์์ ์กฐ์ด์คํฑ node๋ฅผ ์ฌ์ฉํด, Jetson Nano์ ์ ์ด node์๊ฒ publish ํ๋ ์ค์ต์ ์งํํด ๋ณด๊ฒ ์ต๋๋ค.
F710 ์ค์ c
BOM ์๊ฐ์ ์ด์ผ๊ธฐํ๋ ๋ก์งํ ๋ฌด์ ๊ฒ์ํจ๋๋ฅผ ์ค์ ํด ๋ด ์๋ค.
$ sudo apt-get install joystick
$ cd /dev/input
# js0 ํ์ธ
$ sudo jstest /dev/input/js0c
์ด๋ ๊ฒ ์ ๋ ฅํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ๋ฌด์ํ ๋ผ์ธ๋ค์ด ๋ณด์ ๋๋ค.
์ด ์ํฉ์์, ์ปจํธ๋กค๋ฌ๋ฅผ ๋๋ฌ๋ณด๋ฉด์ ๊ฐ์ด ๋ฐ๋๋์ง ํ์ธํฉ๋๋ค.
๊ฒ์ํจ๋๋ก RC ์นด ์กฐ์ข ํด๋ณด๊ธฐ!!
๊ฐ ๋๋ฐ์ด์ค์์ ๋ค์๊ณผ ๊ฐ์ ์ปค๋งจ๋๋ฅผ ์ ๋ ฅํ์ฌ ์คํ ๊ฐ๋ฅํฉ๋๋ค.
- Jetson
$ sudo apt-get install ros-melodic-joy* -y
$ cd catkin_ws/src
$ cma
$ sds
$ rosrun donkey_control joy_control.py
- PC
$ sudo apt-get install ros-melodic-ackermann-* -y
# donkey_ros repo clone
$ cd gcamp_ws
$ cma
$ sds
$ roslaunch donkey_joy joy_teleop_axes.launch
# or
$ roslaunch donkey_joy joy_teleop_btns.launch
์กฐ์ดํจ๋๋ฅผ ์ฌ์ฉํ๋ axes ๋ฒ์ ๊ณผ, ๋ฒํผ์ ์ฌ์ฉํ๋ btns ๋ฒ์ ์ด ์์ต๋๋ค.
์ด๋ค ๋ฐ์ดํฐ๊ฐ ์ค๊ฐ๊ณ ์๋์ง ๊ฐ์๋ฅผ ์ดํด๋ด ์๋ค.
- rqt_graph
- joy node : ros์์ ๊ธฐ๋ณธ ์ ๊ณตํด์ฃผ๋ ์กฐ์ด์คํฑ์ฉ node์ ๋๋ค.
- joy teleop axes : ์กฐ์ด์คํฑ ์ ํธ ์ค, ํ์ํ ๋ถ๋ถ๋ง์ ์ทจํฉํ์ฌ ์ด๋ ์ ๋ ์๋, ๊ฐ๋๋ก ์์ง์ฌ์ผ ํ๋์ง๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค.
- donkey control : pwm์ ํตํด RC์นด์๊ฒ ์ค์ง์ ์ผ๋ก ์ ์ด ์ ํธ๋ฅผ ๋ณด๋ด์ ์์ง์ด๊ฒ ํ๋ node์ ๋๋ค.
topic์ ์์ฃผ๋ก ์ดํด๋ณด๊ฒ ์ต๋๋ค.
- joy node โ joy teleop axes :
publish : sensor_msgs/Joy
- joy teleop axes โ donkey_control :
subscribe : sensor_msgs/Joy
publish : ackermann_msgs/AckermannDriveStamped
- donkey_control :
subscribe : ackermann_msgs/AckermannDriveStamped
๋ง์ง๋ง ๋จ์ธ donkey_control ๋ถํฐ ์ฝ๋๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
๋ฐ๋ก ๋ค์ ๊ฐ์์์ ์ฝ๋๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค ๐ป