3. ์ค์ต์ ์ํ Gazebo ํ๊ฒฝ๊ณผ ์ฌ์ฉ๋ฒ ์๊ฐ

3. ์ค์ต์ ์ํ Gazebo ํ๊ฒฝ๊ณผ ์ฌ์ฉ๋ฒ ์๊ฐ
์์ ๊ณผ์ ์์, ROS ์ค์น๋ ๋ชจ๋ ์๋ฃํ์ จ๋์?? ์ด๋ฒ ์๊ฐ์๋ ์์ผ๋ก ์ค์ต์ ์งํํ ๋ก๋ด ์๋ฎฌ๋ ์ด์ , Gazebo ํ๊ฒฝ์ ๊ตฌ์ถํด๋ณด๊ณ , ๊ฐ๋จํ ์ฌ์ฉ๋ฒ์ ์๊ฐ ํด ๋ด ๋๋ค.

- ์์ํ๊ธฐ ์์ catkin workspace๋ฅผ ๋ง๋ค์ด ๋ณด๊ฒ ์ต๋๋ค
ROS๋ catkin
์ด๋ผ๋ ๋น๋ ์์คํ
์ ์ฌ์ฉํฉ๋๋ค. ๊ธฐ์กด c/c++
cross-platform ๊ฐ๋ฐ์ ๊ฒฝํํ์
จ๋ค๋ฉด cmake์ ์ต์ํ์คํ
๋ฐ, ์ด์ ๋งค์ฐ ๋น์ทํฉ๋๋ค. ๐
ํ์ผ ๊ตฌ์กฐ ๊ด์ ์์, ROS Application์ ์ฌ๋ฌ Package
๋ค๋ก
์ด๋ฃจ์ด์ง๋๋ค.
์ด๋ค Package
๊ฐ ์์ค ํ์ผ์ ๋ด๊ณ ์๊ณ ,
catkin
์ด ์ด๋ค์ ๋น๋ํ์ฌ ์คํ ํ๋ก๊ทธ๋จ๋ค์ ๋ง๋ค์ฃ .
์ด๋ฒ์๋ catkin workspace
๋ฅผ ๋ง๋ค๊ณ ,
Github์์ ์ธ๋ถ ํจํค์ง๋ฅผ cloneํ์ฌ ๋น๋, ์ฌ์ฉํด๋ณด๊ณ ์ ํฉ๋๋ค.
$ cd ~/
$ mkdir -p gcamp_ws/src
$ cd gcamp_ws/src
$ catkin_init_workspace
Creating symlink "/home/swimming/gcamp_ws/src/CMakeLists.txt" pointing to
"/opt/ros/melodic/share/catkin/cmake/toplevel.cmake"
$ cd ../
$ catkin_make
$ cma
# ํญ์ makeํ ๋ค์์๋ ๋ค์๊ณผ ๊ฐ์ด source!!
$ source devel/setup.bash
$ sds

๋ค์๊ณผ ๊ฐ์ด build, devel, src ํด๋๊ฐ ๋ง๋ค์ด์ก๋์??
$ cd ~/
$ rm -rf gcamp_ws
# ๋ค์ ์ด์ ๊ณผ์ ๋ฐ๋ณต
G Camp World
- Clone && Build
$ cd ~/gcamp_ws/src
$ git clone https://github.com/Road-Balance/gcamp_ros_basic.git
$ cd ~/gcamp_ws
$ catkin_make
# ํญ์ makeํ ๋ค์์๋ ๋ค์๊ณผ ๊ฐ์ด source!!
$ source devel/setup.bash
- Gazebo์
Model Path Add
$ gedit ~/.gazebo/gui.ini
# ๋ค์ ๋ถ๋ถ ์์
[model_paths]
filenames=/home/<user_name>/gcamp_ws/src/gcamp_ros_basic/GazeboFiles/models
- ๋๋ง์ launch!!
$ cd ~/gcamp_ws
$ roslaunch gcamp_gazebo gazebo_world.launch

Trouble Shooting
Gazebo ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ
ํฐ๋ฏธ๋์ ํ๊ฑฐ๋, windows
ํค๋ฅผ ๋๋ฅธ ๋ค
gazebo๋ฅผ ์คํ์ํต๋๋ค.

๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ ์๊ฐ
- ๋ง์ฐ์ค, ํ ์ปจํธ๋กค
- View ์ ํ
- Insert Model
- ๋ฌผ์ฒด ์ด๋์ํค๊ธฐ
- ์ข ๋ฃ ๋ฐฉ๋ฒ
Gazebo ์ขํ์ฒด๊ณ
์ฐ๋ฆฌ์ ์๋ฎฌ๋ ์ด์ ๊ธฐ์ค, gazebo๋ ์๋์ ๊ฐ์ ์ขํ์ฒด๊ณ๋ฅผ ๊ฐ์ต๋๋ค.

teleoperation ์ค์ต
๊ฐ๋จํ teleoperation
(์๊ฒฉ ์กฐ์ข
)์ ํด๋ณผ๊น์?? ํค๋ณด๋๋ก ๋ก๋ด์ ์์ง์ฌ
๋ด
๋๋ค.
# ์ ํฐ๋ฏธ๋์์
$ rosrun teleop_twist_keyboard teleop_twist_keyboard.py
Reading from the keyboard and Publishing to Twist!
---------------------------
Moving around:
u i o
j k l
m , .
For Holonomic mode (strafing), hold down the shift key:
---------------------------
U I O
J K L
M < >
t : up (+z)
b : down (-z)
anything else : stop
q/z : increase/decrease max speeds by 10%
w/x : increase/decrease only linear speed by 10%
e/c : increase/decrease only angular speed by 10%
CTRL-C to quit
์์ผ๋ก์ ๊ณผ์
์ง๊ธ๋ถํฐ๋ ์์ ์คํ์์ผ๋ณธ Simulation
์ ๊ธฐ๋ฐํด์ ROS
๊ฐ๋ฐ์ ์ ๋ฐ์ ์ธ ํ๋ก์ธ์ค๋ฅผ ์ดํด๋ณด๊ณ , Python/C++์ ํตํ ํ๋ก๊ทธ๋๋ฐ, ์ฌ๋ฌ๊ฐ์ง ์ผ์๋ค์ ๋ค๋ฃจ๋ ๋ฐฉ๋ฒ๋ค์ ๋ํด ๋ฐฐ์๋๋ค.
๊ทธ ์ดํ, ์ค์ ๋ก๋ด์ ์กฐ๋ฆฝํด๋ณด๊ณ ,
ํ๋์จ์ด
+ ์ ฏ์จ ๋๋
ธ
+
ROS
์ ์กฐํฉ์ผ๋ก ์ฐ๋ฆฌ๋ง์ ๋ก๋ด์ ๋ง๋ค์ด ๋ณผ ๊ฒ์
๋๋ค.