Mavros: ๊ฑฐ๋ฆฌ ์„ผ์„œ์— ๋Œ€ํ•œ ๋งคํ•‘ ์—†์Œ

์— ๋งŒ๋“  2018๋…„ 08์›” 09์ผ  ยท  4์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: mavlink/mavros

์•ˆ๋…•ํ•˜์„ธ์š”,

MAVROS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋†’์ด๋ฅผ ์ธก์ •ํ•˜๋Š” ๊ฑฐ๋ฆฌ ์„ผ์„œ(Leddar One Range Finder)์˜ ๋ฐ์ดํ„ฐ์— ์•ก์„ธ์Šคํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. QGroundControl์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๋น„ํ–‰ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ PX4์ด๋ฏ€๋กœ).

๋“œ๋ก (MAVROS๊ฐ€ ์„ค์น˜๋œ ์ƒํƒœ)์—์„œ ๋‹ค์Œ ๋ช…๋ น์„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.
$ roscore
$ rosrun mavros mavros_node _fcu_url:=tcp://127.0.0.1:5760 _system_id:=2

๊ทธ๋Ÿฐ ๋‹ค์Œ ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐ˜๋ณต๋ฉ๋‹ˆ๋‹ค.
DS: no mapping for sensor id: 0, type: 1, orientation: 25

QGC์—์„œ ID, ์œ ํ˜• ๋ฐ ๋ฐฉํ–ฅ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด ์ด๊ฒƒ์ด Leddar One ์„ผ์„œ์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
px4_pluginlists.yaml์˜ ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ์—์„œ distance_sensor์™€ rangefinder๋ฅผ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค.
๋˜ํ•œ px4_config.yaml ํŒŒ์ผ์—์„œ distance_sensor ์ •๋ณด๋ฅผ ๋ณ€๊ฒฝํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ์šด์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค(๋‹ค์–‘ํ•œ ๋ฐฉํ–ฅ ์‹œ๋„: PITCH_270, NONE ๋ฐ 25).

๋‚˜๋Š” ์ด ์ฝ”๋“œ์˜ 205๋ฒˆ ๋ผ์ธ์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค: distance_sensor.cpp ํ•˜์ง€๋งŒ ๊ทธ ์›์ธ์„ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ROS๋ฅผ ์ฒ˜์Œ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ๋„์›€์„ ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

PX4 question

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋ช…ํ™•ํžˆ ํ•˜๊ธฐ ์œ„ํ•ด ๊ฒŒ์‹œํ•  ๋ผ์ด๋” ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด "px4_pluginlists.yaml"์—์„œ "- distance_sensor"๋ฅผ ์ฃผ์„ ์ฒ˜๋ฆฌํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  4 ๋Œ“๊ธ€

px4_config.yaml ์—์„œ ๊ตฌ์„ฑ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๊นŒ? ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ๊ฐ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์„ค์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๋Œ€๋กœ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ yaml ํŒŒ์ผ์— ์ ์ ˆํ•œ ๋งต์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์ด๋ฏธ ์˜ˆ์ œ๊ฐ€ ์žˆ์Œ). ๋˜ํ•œ sys_id๋ฅผ 2๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ์ด์œ ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ๋˜ํ•œ ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ์—์„œ rangfinder ๋ฅผ ์ œ๊ฑฐํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. APM๊ณผ๋งŒ ํ˜ธํ™˜๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋น ๋ฅธ ์‘๋‹ต๊ณผ ๊ด€๋ จ ๋ผ๋ฒจ ์ถ”๊ฐ€์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

px4_config.yaml ์—์„œ ๋ณ€๊ฒฝํ•ด์•ผ ํ•˜๋Š” ๋ถ€๋ถ„์„ ์ข€ ๋” ๊ตฌ์ฒด์ ์œผ๋กœ ์•Œ๋ ค ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ๋‚ด๊ฐ€ ๋ณ€๊ฒฝํ•œ ์œ ์ผํ•œ ๋ถ€๋ถ„์€ ๊ฑฐ๋ฆฌ ์„ผ์„œ ์•„๋ž˜์— ์žˆ์Šต๋‹ˆ๋‹ค. ( ์†Œ์Šค ์ฝ”๋“œ์˜ 133ํ–‰)
leddar1_pub:
id: 0
frame_id: "leddar1_laser"
orientation: PITCH_270 # RPY:{0.0, 270.0, 0.0} - downward-facing
field_of_view: 0.0 # XXX TODO
send_tf: true
sensor_position: {x: 0.0, y: 0.0, z: -0.1}
๊ทธ๋ฆฌ๊ณ  id: 1 ๋ถ€ํ„ฐ ๋‹ค๋ฅธ ์„ผ์„œ๋ฅผ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค.

sys_id๋ฅผ 2๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ด ํฌํ•จ๋œ Intel Aero RTF ๋“œ๋ก ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ํŽ˜์ด์ง€ ์˜ ์ง€์นจ์„ ๋”ฐ๋ž์Šต๋‹ˆ๋‹ค.
์–ผ๋งˆ๋“ ์ง€์š”. rangefinder ์„ ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ์— ๋‹ค์‹œ ์ถ”๊ฐ€ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์€ ๊ฒƒ์„ ์š”๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. ์„ค๋ช…ํ•  ํ•„์š” ์—†์ด px4_config.yaml ์„ ์ˆ˜์ •ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ๋งŒํ•œ ๋ฆฌ์†Œ์Šค๊ฐ€ ์žˆ์œผ๋ฉด ๊ทธ๊ฒƒ์œผ๋กœ ์ถฉ๋ถ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ฐ์‚ฌ ํ•ด์š”

๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. ํŠน๋ณ„ํžˆ "px4_config.yaml"์„ config_yaml ์ธ์ˆ˜๋กœ ์ „๋‹ฌํ•œ ์‹คํ–‰ ํŒŒ์ผ์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฑฐ๋ฆฌ ์„ผ์„œ๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  ์›ํ•˜๋Š” ๋Œ€๋กœ ROS ์ฃผ์ œ์— ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒŒ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ์Šค๋ ˆ๋“œ๋Š” ๋‹ซํž ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ช…ํ™•ํžˆ ํ•˜๊ธฐ ์œ„ํ•ด ๊ฒŒ์‹œํ•  ๋ผ์ด๋” ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด "px4_pluginlists.yaml"์—์„œ "- distance_sensor"๋ฅผ ์ฃผ์„ ์ฒ˜๋ฆฌํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰