์๋ ํ์ธ์, ์๊ฒฉ ์ธก์ ์ ์ปดํจํฐ์ ์ฐ๊ฒฐํ๊ณ mavros ๋ ธ๋๋ฅผ ์ด์ด ์๊ฒฉ ์ธก์ ์ ํตํด FCU์ ํต์ ํฉ๋๋ค. Mavros๋ฅผ ์์ํ ๋ ์ด๋ค UDP ์ฃผ์๋ฅผ ์ ๋ ฅํด์ผํฉ๋๊น?
launch file
๋๋ ์คํํ ๋ ๋ช
๋ น ์ค์์ ์ฃผ์๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค.roslaunch mavros px4.launch fcu_url:="udp://:[email protected]:14557"
๊ทธ๋ฌ๋ ํฌํธ์ ์ฃผ์๋ ์์คํ ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค.
๊ฐ์ฌ. ๋๋ ์ด๊ฒ์ ์ดํดํ์ง๋ง ๋ด ์ปดํจํฐ์ ์๊ฒฉ ๋ถ์์ ์ฐ๊ฒฐํ ๋ ์ด๋ค IP ์ฃผ์๋ฅผ ์ฌ์ฉํฉ๋๊น? FCU์ IP ์ฃผ์๋ ์ด๋์์ ์ฐพ์ ์ ์์ต๋๊น? ์ ์ก์ ์ํด rc ์๊ฒฉ ์ธก์ ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
@zhahaoyu ifconfig
์ฌ์ฉํ์ฌ PC IP ์ฃผ์๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
mavros
์ ์ด๋ฏธ ํ
๋ ๋ฉ ํธ๋ฆฌ ํฌํธ๋ฅผ ํตํด FCU (PX4)๋ก๋ถํฐ mavlink
๋ฉ์์ง๋ฅผ ์์ ํ์ฌ ROS ๋ฉ์์ง๋ก ์ ์กํ์ต๋๋ค. mavros
๊ฐ ๋ค๋ฅธ ์์
์ ์ํํ๋๋กํ์ฌ ๋์ผํ ์ ๋ณด๋ฅผ QGC๊ฐ ์ ๋ณด๋ฅผ ์์ ํ ์์๋ UDP ํฌํธ์ ๊ฒ์ํฉ๋๋ค.<FCU> ---telemtry port --<MAVROS>
<MAVROS> --- UDP ----<QGC>
<MAVROS> ----ros message---<Other Nodets>
๊ฐ์ฌํฉ๋๋ค @weiweikong. ์ด์ ๊ตฌ์กฐ๋ฅผ ์ดํดํ์ต๋๋ค. roslaunch mavros px4.launch
์ (๋ฅผ) ์ฌ์ฉํ๋ ค๊ณ ํ๋๋ฐ ํ
๋ ์ ์ ํตํด FCU์ ํต์ ํ๋ Mavros ๋
ธ๋๋ฅผ ์์ํ ์ ์์ง๋ง QGC ์ฉ UDP ํฌํธ๋ฅผ ์ด๊ณ QGC์์ด๋ฅผ ์์ ํ๋๋ก ์ง์ํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์
๋๊น?
Mavros๋ฅผ ์์ํ์ ๋ ๋ชจ๋ ๊ฒ์ด ๊ด์ฐฎ ์์ต๋๋ค. ๊ทธ๋ฌ๋ QGC๋ฅผ ์ด๋ฉด ์๋์ผ๋ก ๋์ผํ ํ ๋ ์ ํฌํธ๋ฅผ ๋ฃ๊ณ mavros๊ฐ ์ถฉ๋ํฉ๋๋ค. ๊ทธ๋์ QGC์ mavros ์ฌ์ด์ ์ฐ๊ฒฐ์ ์ด๋ป๊ฒ ๋ง๋ค ์ ์์ต๋๊น?
ํํ
<include file="$(find mavros)/launch/node.launch">
<arg name="blacklist_yaml" value="$(find mavros)/launch/px4_blacklist.yaml" />
<arg name="config_yaml" value="$(find mavros)/launch/px4_config.yaml" />
<arg name="fcu_url" value="$(arg fcu_url)" />
<arg name="gcs_url" value="$(arg gcs_url)" />
<arg name="tgt_system" value="$(arg tgt_system)" />
<arg name="tgt_component" value="$(arg tgt_component)" />
</include>
gcs_url
์น์
์ UDP ๊ตฌ์ฑ์์ํ ๊ฒ์
๋๋ค. ์ด์ px4 ์น ์ฌ์ดํธ์๋ https://pixhawk.org/peripherals/onboard_computers/intel_edison์ ๋ํ ์์ธํ ๋ด์ฉ์ด
์์์ ์ ์ ์๋ฏ์ด
<arg name="gcs_url" default="udp://:14556@my-intel-edisons-ip:14550" />
๊ทธ๋ฌ๋ฉด QGC๊ฐ UDP๋ฅผ ํตํด ํฌํธ 14556์ ์ฐ๊ฒฐ๋ฉ๋๋ค.
๋๋ ๋น์ ์ ์ง์๋ฅผ ๋ฐ๋์ต๋๋ค. ์ฌ๊ธฐ ๋ด๊ฐ ์ฌ์ฉํ ์์ ํ์ผ์ด ์์ต๋๋ค.
<launch>
<!-- vim: set ft=xml noet : -->
<!-- example launch script for PX4 based FCU's -->
<arg name="fcu_url" default="/dev/ttyUSB0:57600" />
<arg name="gcs_url" default="udp://:[email protected]:14550" />
<arg name="tgt_system" default="1" />
<arg name="tgt_component" default="1" />
<arg name="log_output" default="screen" />
<include file="$(find mavros)/launch/node.launch">
<arg name="pluginlists_yaml" value="$(find mavros)/launch/px4_pluginlists.yaml" />
<arg name="config_yaml" value="$(find mavros)/launch/px4_config.yaml" />
<arg name="fcu_url" value="$(arg fcu_url)" />
<arg name="gcs_url" value="$(arg gcs_url)" />
<arg name="tgt_system" value="$(arg tgt_system)" />
<arg name="tgt_component" value="$(arg tgt_component)" />
<arg name="log_output" value="$(arg log_output)" />
</include>
</launch>
QGC๋ฅผ ์์ํ ๋ mavros๊ฐ ์ฌ์ ํ ๋ค์ ์ค๋ฅ ๋ฉ์์ง์ ํจ๊ป ์ถฉ๋ํฉ๋๋ค.
ERROR] [1478057788.915106802]: serial0: receive: End of file
terminate called after throwing an instance of 'std::system_error'
what(): Resource deadlock avoided
================================================================================REQUIRED process [mavros-2] has died!
process has died [pid 12427, exit code -6, cmd /opt/ros/kinetic/lib/mavros/mavros_node __name:=mavros __log:=/home/haoyu/.ros/log/849342f6-a0ad-11e6-8d09-000f6005d13e/mavros-2.log].
log file: /home/haoyu/.ros/log/849342f6-a0ad-11e6-8d09-000f6005d13e/mavros-2*.log
Initiating shutdown!
================================================================================
[mavros-2] killing on exit
[rosout-1] killing on exit
[master] killing on exit
shutting down processing monitor...
... shutting down processing monitor complete
done
@zhahaoyu ๋๋์ด ์ํฉ์ ๋ํด ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๋ด ๊ฒฝํ์ QGC๋ ROS์ ๋
๋ฆฝ์ ์ผ๋ก ์๋ํด์ผํ๋ฏ๋ก ์ ์์ ์ผ๋ก ์์ํด์ผํ๋ฉฐ mavros
์ ์ ๋ณด๋ฅผ ์์ ํ๋๋ก QGC UDP ๊ตฌ์ฑ์ ์ค์ ํ ์ ์์ต๋๋ค.
serial0: receive: End of file
์ด์ ์์ ์ ๋ณด๊ฐ QGC๊ฐ FCU๋ฅผ ์ง๋ ฌ ํฌํธ์ ์ฐ๊ฒฐํ๋ ค๊ณ ์๋ํ์์ ์๋ฏธํ๋์ง ํ์ ํฉ๋๋ค. ์ฌ์ค์ด๋ผ๋ฉด QGC ๋๋ mavros
๊ฐ ์ถฉ๋ ํ ์ ์์ต๋๋ค.
QGC๊ฐ ์ง๋ ฌ ํฌํธ๋ฅผ ์ฌ์ฉํ๋ ค๊ณ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. SITL ๋ชจ๋์์ ROS์ ํจ๊ป QGC๋ฅผ ์ฌ์ฉํ๋ฉด ๋ชจ๋ ๊ฒ์ด ์ ์๋ํฉ๋๋ค. ๋๋ ์ค์ pixhawk fcu๋ก ์ด๊ฒ์ ์ํํ๋ ๋ฐฉ๋ฒ์ ๋ชจ๋ฆ ๋๋ค.
@zhahaoyu ์๋ง๋ QGC๋ฅผ ๋จผ์ ์์ํ ๋ค์ mavros wih PX4๋ฅผ ์์ํ๊ธฐ ์ ์ ์ง๋ ฌ ํฌํธ ๋์ UDP ์ฐ๊ฒฐ์ ์ฌ์ฉํ์ฌ ๊ตฌ์ฑํ์ญ์์ค.
@weiweikong ์ ๋ง ๊ฐ์ฌํฉ๋๋ค. ๋๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค. ๋ค๋ฅธ ์ฌ๋๋ค์ ์ฐธ๊ณ ๋ก ๋ด๊ฐ ํ ์ผ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
roslaunch mavros px4.launch
์ด์ FCU <---telemetry---> MAVROS <---UDP---> QGC
์ฒด์ธ์ด ์ค์ ๋์์ต๋๋ค. QGC๋ ๋ ์ด์ FCU vai Telemetry์ ์๋์ผ๋ก ์ฐ๊ฒฐ๋์ง ์์ต๋๋ค. ๊ทธ๋๋ ์ํ๋ค๋ฉด ์๋ ์ฐ๊ฒฐ์ ๊ตฌ์ฑ ํ ์ ์์ต๋๋ค.
์ฐธ๊ณ : udp-b://@
๋ฅผ GCS URL๋ก ์ฌ์ฉํด๋ณด์ธ์.
์๋ ํ์ธ์, ๋น์ทํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. FPV Radio Telemetry Ground Module์ด ์์ผ๋ฉฐ Iris ๋๋ก ์ ์์ ํ ์๊ฒฉ ์ธก์ ๊ณผ ํต์ ํ๊ธฐ๋ฅผ ์ํฉ๋๋ค.
ํ ๋ ๋ฉ ํธ๋ฆฌ (Ground)๋ฅผ ์ฐ๋ถํฌ PC์ ์ฐ๊ฒฐํ๊ณ ๋๋ก ์ ์ผ๋ Qground ์คํ ์ด์ ์ด ์์๋์ง ์์ต๋๋ค.
์์ด ๋ฌธ์ ๊ฐ ์์ต๋๊น?
๋๋ผ์ด๋ฒ๋ฅผ ์ค์นํด์ผํฉ๋๊น?
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ฐธ๊ณ :
udp-b://@
๋ฅผ GCS URL๋ก ์ฌ์ฉํด๋ณด์ธ์.