์ด๊ฒ์ ๋ฒ๊ทธ ๋ฐ ๊ธฐ๋ฅ ์ถ์ ๊ธฐ ์ผ ๋ฟ์ด๋ฏ๋ก ์ฌ์ฉํ์ญ์์ค
๋ฒ๊ทธ๋ฅผ๋ณด๊ณ ํ๊ฑฐ๋ ๊ธฐ๋ฅ์ ์์ฒญํฉ๋๋ค.
์๋
ํ์ธ์ ์ฌ๋ฌ๋ถ,
์ ๋ ์ค๋ด ๋๋ก ํ๋ก์ ํธ๋ฅผ ์งํ ์ค์ด๋ฉฐ ์ต๊ทผ์ ๋ญ๊ฐ ๋์ ๊ฒ์ ๋ฐ๊ฒฌํ์ต๋๋ค.
์ฃผ์ ๋ ๋งค์ฐ ๋ฎ์ ์๋ (1Hz ๋ฏธ๋ง)๋ก ์
๋ฐ์ดํธ๋๊ณ ์์ต๋๋ค (์คํ ๋ณด๋ ๋ชจ๋์์ ๋๋ก ์ ์ ์ดํ๋ โโ๋ฐ ์ค์ํ ์ฃผ์ mavros / local_position / pose ํฌํจ).
๋๋ก ์ด ์ค์๊ฐ์ผ๋ก ์ ํํ ๊ณ ๋๋ฅผ ์์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ ์ค์ ์ฃผ์ ๋ก ๋นํ ์ ์ด๋ฅผ ์ด๋ ต๊ฒ ๋ง๋ค๊ณ ์์ต๋๋ค. ์ด ํ
์คํธ ์๊ณ ๋ฆฌ์ฆ์ ํ
์คํธ ํ ๋ (1 ๋ฏธํฐ ๋นํํ๊ณ ์์น ์ ์ง) Gazebo Simulator์์ Mavros ์ฃผ์ ๊ฐ ์ข์ ์๋๋ก ์
๋ฐ์ดํธ๋๊ณ ์์ต๋๋ค.
๋ฌธ์ ๊ฐ ์๊ฒฉ ์ธก์ ์์คํ
์ธ์ง ํ์ธํ๊ธฐ ์ํด QGroundControl์์ ์ ๋ณด ์
๋ฐ์ดํธ ์๋๋ฅผ ํ
์คํธํ์ผ๋ฉฐ ๋๋ก ์ ์ด๋ํ๋ฉด ์ ๋ณด๊ฐ ์ฆ์ ์
๋ฐ์ดํธ๋ฉ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์๊ฒฉ ์ธก์ ์์คํ
(3DR ๋ผ๋์ค ๋งํฌ)์ด ๋ฌธ์ ๊ฐ ์๋๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ด ๋ช ๋ น์ผ๋ก mavros๋ฅผ ์์ํฉ๋๋ค.
roslaunch mavros px4.launch fcu_url : = / dev / ttyUSB0 : 57600
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์์๋ ๋ฐฉ๋ฒ์ด ์๋ค๋ฉด (ํ ๋ ๋ฉ ํธ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ฃผ์ ์ ๋ฐ์ดํธ์ ๋ํ ๋์ ์ง์ฐ ์๊ฐ) ์๋ ค์ฃผ์ธ์.
๋ง ๋ธ๋ก์ค : 0.18.4
ROS : ๋ฌ 1.13.7
Ubuntu : 16.04
[] ArduPilot
[X] PX4
๋ฒ์ : 3.7.1 (PX4FMU_V3) Pixhawk 2
roslaunch ์๋ฒ ์์ http : // lucas-Inspiron-7460 : 40689 /
๋ช ํํ ๋งค๊ฐ ๋ณ์
๋งค๊ฐ ๋ณ์
๋
ธ๋
/
mavros (mavros / mavros_node)
์ ๋ง์คํฐ ์๋ ์์
ํ๋ก์ธ์ค [๋ง์คํฐ] : pid๋ก ์์๋จ [2541]
ROS_MASTER_URI = http : // localhost : 11311
/ run_id๋ฅผ 9a6d39f0-3495-11e9-b342-d80f99bfeedd๋ก ์ค์
ํ๋ก์ธ์ค [rosout-1] : pid๋ก ์์๋จ [2554]
ํต์ฌ ์๋น์ค ์์ [/ rosout]
ํ๋ก์ธ์ค [mavros-2] : pid๋ก ์์๋จ [2558]
```
๋จธ๋ฆฌ๊ธ:
์ํ์ค : 2138
์ฐํ:
์ด : 1550618079
nsec : 476350000
frame_id : ''
์ํ:
ํ์ธ. 1 : 1์์ ๋ฉ์์ง๋ฅผ ๋ฐ์์ต๋๋ค.
1 ๊ฐ ์ฃผ์์์ 371 ๊ฐ์ ๋ฉ์์ง ์์
sys : comp ๋ฉ์์ง ๋ชฉ๋ก
๋์ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
์๊ฒฉ ์ธก์ ๋งํฌ์ ์ ์ก ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋ฌํ ์ข ๋ฅ์ ๋งํฌ์ ๋ํ PX4์ ๋งํฌ ์๋ ํ๋กํ์ด ๋งค์ฐ ๋ฎ๋ค๋ ์ ์ ๊ณ ๋ คํ ๋ ํด๋น ์๋๋ก ๋ฐ์ดํฐ๋ฅผ ์ป๋ ๊ฒ์ด ์๋ฒฝํ๊ฒ ์ ์์ผ๋ก ๋ณด์ ๋๋ค. https://docs.px4.io/en/peripherals/serial_configuration.html ์ ๋ฐ๋ผ ๋งํฌ ์ ์ก ์๋๋ฅผ 115200์ผ๋ก ์ค์ ํ๋ ค๊ณ ํฉ๋๋ค.
์น์ ํ๋ TSC21,
๋ต์ฅ ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
๋๋ ๋น์ ์ด ๋๋ฅผ ์ถ์ฒ ํ ๊ฒ์ ๋ฐ๋์ง๋ง ์ฑ๊ณตํ์ง ๋ชปํ์ต๋๋ค. ๋งํฌ ์ ์ก ์๋๋ฅผ 115200์ผ๋ก ๋ณ๊ฒฝํ๋ฉด ์๊ฒฉ ์ธก์ ์ ํตํด ๋๋ก ์ ์ก์ธ์ค ํ ์ ์์ต๋๋ค. QGroundControl์ "Waiting for Vehicle Connection"๋ง ํ์ํฉ๋๋ค. ์ฌ๊ธฐ์ ๊ฒ์ ํ ๋งํฌ๋ฅผ ๋ฐ๋ผ ๊ฐ๋ ค๊ณ ํ๊ณ ๋ค์ ๋งค๊ฐ ๋ณ์๋ฅผ ๋ณ๊ฒฝํ์ต๋๋ค (์ ์ก ์๋ ๋งํฌ ๋ณ๊ฒฝ์ ๋ชฉํ๋ก ํจ).
SER_TEL1_BAUD- "57600"์์ "115200"์ผ๋ก
MAV_0_RATE- "1200"์์ "115200"๊น์ง
MAV_0_MODE- "0"์์ "1"(์ผ๋ฐ-> ์ฌ์ฉ์ ์ง์ )
์ด ์ ์ฐจ์ ๋ฌธ์ ๊ฐ ์์ผ๋ฉด ์๋ ค์ฃผ์ธ์.
๋๋จํ ๊ฐ์ฌํฉ๋๋ค.
์ด ๋ฌธ์ ๋ฅผ PX4 Slack์ ๊ฐ์ ธ ์ค์ญ์์ค.
์ ์ก ์๋ ๋งค๊ฐ ๋ณ์๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ณ ๋งค๊ฐ ๋ณ์ "MAV_0_RATE"(1200 (๊ธฐ๋ณธ๊ฐ)์์ 57600์ผ๋ก) ๋ง ๋ณ๊ฒฝํ์ฌ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค. ์ด์ ์๋ SER_TEL1_BAUD ๋งค๊ฐ ๋ณ์ (57600์์ 115200์ผ๋ก)๋ฅผ ๋ณ๊ฒฝํ๋ ค๊ณ ํ์ง๋ง ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ง ์์๊ณ ์๊ฒฉ ์ธก์ ์ด์ด ์ ์ก ์๋๋ก ์๋ํ์ง ์์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ MAV_0_RATE ๋ง ํ ์คํธํ๋๋ฐ ์ ์๋ํ์ต๋๋ค.
์ ์ก ์๋ ๋งค๊ฐ ๋ณ์๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ณ ๋งค๊ฐ ๋ณ์ "MAV_0_RATE"(1200 (๊ธฐ๋ณธ๊ฐ)์์ 57600์ผ๋ก) ๋ง ๋ณ๊ฒฝํ์ฌ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค. ์ด์ ์๋ SER_TEL1_BAUD ๋งค๊ฐ ๋ณ์ (57600์์ 115200์ผ๋ก)๋ฅผ ๋ณ๊ฒฝํ๋ ค๊ณ ํ์ง๋ง ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ง ์์๊ณ ์๊ฒฉ ์ธก์ ์ด์ด ์ ์ก ์๋๋ก ์๋ํ์ง ์์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ MAV_0_RATE ๋ง ํ ์คํธํ๋๋ฐ ์ ์๋ํ์ต๋๋ค.
์๋ ํ์ธ์, MAV_0_RATE๋ฅผ ์ด๋ป๊ฒ ๋ณ๊ฒฝ ํ์ จ๋์? Mission Planner์ ๋งค๊ฐ ๋ณ์ ๋ชฉ๋ก์์ ์ฐพ์์ง๋ง ์ฐพ์ ์ ์์ต๋๋ค.
์ ์ก ์๋ ๋งค๊ฐ ๋ณ์๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ณ ๋งค๊ฐ ๋ณ์ "MAV_0_RATE"(1200 (๊ธฐ๋ณธ๊ฐ)์์ 57600์ผ๋ก) ๋ง ๋ณ๊ฒฝํ์ฌ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค. ์ด์ ์๋ SER_TEL1_BAUD ๋งค๊ฐ ๋ณ์ (57600์์ 115200์ผ๋ก)๋ฅผ ๋ณ๊ฒฝํ๋ ค๊ณ ํ์ง๋ง ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ง ์์๊ณ ์๊ฒฉ ์ธก์ ์ด์ด ์ ์ก ์๋๋ก ์๋ํ์ง ์์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ MAV_0_RATE ๋ง ํ ์คํธํ๋๋ฐ ์ ์๋ํ์ต๋๋ค.
์๋ ํ์ธ์, MAV_0_RATE๋ฅผ ์ด๋ป๊ฒ ๋ณ๊ฒฝ ํ์ จ๋์? Mission Planner์ ๋งค๊ฐ ๋ณ์ ๋ชฉ๋ก์์ ์ฐพ์์ง๋ง ์ฐพ์ ์ ์์ต๋๋ค.
์คํ์ค์ธ PX4 ๋ฒ์ ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. QGroundControl์์์ด ๋งค๊ฐ ๋ณ์์ ์ก์ธ์คํ์ต๋๋ค. ์ฌ๊ธฐ์์ ๋งค๊ฐ ๋ณ์๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
https://docs.px4.io/v1.9.0/en/advanced_config/parameter_reference.html
QGroundControl์์ ๋งค๊ฐ ๋ณ์๋ฅผ ์ฐพ์ง ๋ชปํ ๊ฒฝ์ฐ PX4 ๋ช ๋ น ์ค์์์ด ๋งค๊ฐ ๋ณ์๋ฅผ ์ค์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ฌ์ ํ ์๋ฃจ์ ์ ์ฐพ๊ณ ์๋ ๋ชจ๋ ์ฌ๋์ ์ํด.
Odometry ๋ฐ HIGHRES_IMU ๋ฉ์์ง์ ๊ฒ์ ์๋๋ฅผ ๋์ด๊ณ ์ถ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐ ํ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
1- QGroundControl์์ ์ด๋ฌํ PX4 ๋งค๊ฐ ๋ณ์๋ฅผ ๋ณ๊ฒฝํ์ฌ ์ง๋ ฌ ํต์ ์ ์ ์ก ์๋๋ฅผ ๋์ด๊ณ UAV๋ฅผ ์ฌ๋ถํ ํฉ๋๋ค.
SER_TEL1_BAUD - from "57600" to "115200"
MAV_0_RATE - from "1200" to "115200"
MAV_0_MODE - from "0" to "1" (normal -> custom)
์ฐธ์กฐ :
https://docs.px4.io/master/en/peripherals/serial_configuration.html#how -to-configure-a-port
https://github.com/mavlink/mavros/issues/1182#issuecomment -465672331
2- Mavlink๊ฐ ODOMETRY / HIGHRES_IMU ๋ฉ์์ง๋ฅผ ๊ฒ์ํ๋ ์๋๋ฅผ ๋ณ๊ฒฝํฉ๋๋ค. ์ด๋ PX4์ microSD ์นด๋์์ด ๋ช ๋ น์ ์์ฑํ์ฌ ์ํ ํ ์ ์์ต๋๋ค. ์ด๋ป๊ฒ?
Pixhawk์์ ์นด๋๋ฅผ ์ ๊ฑฐํ๊ณ PC์ ์ฐ๊ฒฐํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ./fs/etc/extras.txt๋ก ์ด๋ํ์ญ์์ค.
์ด ๋๋ ํ ๋ฆฌ (๋๋ ๊ทธ ์ผ๋ถ)๊ฐ ์กด์ฌํ์ง ์๋ ๊ฒฝ์ฐ ์์ฑํ์ญ์์ค. ๊ทธ๋ฐ ๋ค์ extras.txt ์์ ๋ค์์ ์์ฑํด์ผํฉ๋๋ค.
mavlink stream -d /dev/ttyS0 -s HIGHRES_IMU -r 200
mavlink stream -d /dev/ttyS0 -s ODOMETRY -r 200
์ฐธ๊ณ :
https://dev.px4.io/v1.9.0/en/concept/system_startup.html#starting -additional-applications
์์ ์ฑ์ ์ํด ๋ค์์ ๋ด ์ค์ ์ธ๋ถ ์ ๋ณด์ ๋๋ค.
๋ง ๋ธ๋ก์ค : 1.4
ROS : ๋ฉ๋ก๋
Ubuntu : 18.04
PX4
๋ฒ์ : v1.10.1
PX4_FMU_V5 (V500)
NuttX, v7.29.0
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ ์ก ์๋ ๋งค๊ฐ ๋ณ์๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ณ ๋งค๊ฐ ๋ณ์ "MAV_0_RATE"(1200 (๊ธฐ๋ณธ๊ฐ)์์ 57600์ผ๋ก) ๋ง ๋ณ๊ฒฝํ์ฌ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค. ์ด์ ์๋ SER_TEL1_BAUD ๋งค๊ฐ ๋ณ์ (57600์์ 115200์ผ๋ก)๋ฅผ ๋ณ๊ฒฝํ๋ ค๊ณ ํ์ง๋ง ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ง ์์๊ณ ์๊ฒฉ ์ธก์ ์ด์ด ์ ์ก ์๋๋ก ์๋ํ์ง ์์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ MAV_0_RATE ๋ง ํ ์คํธํ๋๋ฐ ์ ์๋ํ์ต๋๋ค.