Mavros: ~set_stream_rate ์„œ๋น„์Šค ํ˜ธ์ถœ์— ๋Œ€ํ•œ ์‘๋‹ต ์—†์Œ

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

๋ฌธ์ œ ์„ธ๋ถ€์ •๋ณด

~set_stream_rate ์„œ๋น„์Šค ํ˜ธ์ถœ์„ ์‚ฌ์šฉํ•˜์—ฌ IMU์˜ ์—…๋ฐ์ดํŠธ ์†๋„๋ฅผ ๋†’์ด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋ถˆํ–‰ํžˆ๋„ ์„ฑ๊ณตํ•˜์ง€ ๋ชปํ•˜๊ณ  ๋น„์œจ์„ ๋†’์ด๊ฑฐ๋‚˜ ๋‚ฎ์ถ”๋ ค๊ณ  ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋‹ค์Œ์„ ์‹œ๋„ํ–ˆ๋‹ค:
ํ„ฐ๋ฏธ๋„์—์„œ: rosservice call /mavros/set_stream_rate 1 200 1 (0 200 1, 0 10 1, 0 10 0 ๋“ฑ์œผ๋กœ๋„ ์‹œ๋„)

C++์—์„œ:

#include <mavros_msgs/StreamRate.h>

    ros::ServiceClient stream_rate_client;
    ros::NodeHandle nh;
    stream_rate_client = nh.serviceClient<mavros_msgs::StreamRate>("/mavros/set_stream_rate");

    mavros_msgs::StreamRate streamRate;
    streamRate.request.stream_id = 1;
    streamRate.request.message_rate = 200;
    streamRate.request.on_off = true;
    stream_rate_client.call(streamRate);

์ด๋“ค ์ค‘ ์–ด๋Š ๊ฒƒ๋„ ํšจ๊ณผ๊ฐ€ ์—†์—ˆ์œผ๋ฉฐ ์ด์œ ๋ฅผ ๋ชจ๋ฆ…๋‹ˆ๋‹ค. ๋˜ํ•œ ๋””๋ฒ„๊น…์„ ์ง„ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ชจ๋ฆ…๋‹ˆ๋‹ค.

MAVROS ๋ฒ„์ „ ๋ฐ ํ”Œ๋žซํผ

๋งˆ๋ธŒ๋กœ์Šค: 0.25.1
ROS: ํ‚ค๋„คํ‹ฑ
์šฐ๋ถ„ํˆฌ: 16.04

์ž๋™ ์กฐ์ข… ์žฅ์น˜ ์œ ํ˜• ๋ฐ ๋ฒ„์ „

[ ] ์•„๋‘ํŒŒ์ผ๋Ÿฟ
[ x ] PX4

๋ฒ„์ „: 1.7.3

๋…ธ๋“œ ๋กœ๊ทธ

$ rosrun mavros mavros_node _fcu_url:=tcp://127.0.0.1:5760 _system_id:=2
[ INFO] [1527166997.534725386]: FCU URL: tcp://127.0.0.1:5760
[ INFO] [1527166997.538179020]: tcp0: Server address: 127.0.0.1:5760
[ INFO] [1527166997.538583530]: GCS URL: udp://@
[ INFO] [1527166997.538851787]: udp1: Bind address: 0.0.0.0:14555
[ INFO] [1527166997.582075509]: Plugin 3dr_radio loaded
[ INFO] [1527166997.587216072]: Plugin 3dr_radio initialized
[ INFO] [1527166997.587433590]: Plugin actuator_control loaded
[ INFO] [1527166997.602908470]: Plugin actuator_control initialized
[ INFO] [1527166997.608098772]: Plugin adsb loaded
[ INFO] [1527166997.624933409]: Plugin adsb initialized
[ INFO] [1527166997.625174728]: Plugin altitude loaded
[ INFO] [1527166997.629202189]: Plugin altitude initialized
[ INFO] [1527166997.629439220]: Plugin cam_imu_sync loaded
[ INFO] [1527166997.631736889]: Plugin cam_imu_sync initialized
[ INFO] [1527166997.632005870]: Plugin command loaded
[ INFO] [1527166997.656271690]: Plugin command initialized
[ INFO] [1527166997.656518171]: Plugin debug_value loaded
[ INFO] [1527166997.679747716]: Plugin debug_value initialized
[ INFO] [1527166997.680021635]: Plugin distance_sensor loaded
[ WARN] [1527166997.684616922]: DS: plugin not configured!
[ INFO] [1527166997.684730488]: Plugin distance_sensor initialized
[ INFO] [1527166997.684972781]: Plugin fake_gps loaded
[ INFO] [1527166997.728127889]: Plugin fake_gps initialized
[ INFO] [1527166997.728480748]: Plugin ftp loaded
[ INFO] [1527166997.758929019]: Plugin ftp initialized
[ INFO] [1527166997.759219651]: Plugin global_position loaded
[ INFO] [1527166997.818296662]: Plugin global_position initialized
[ INFO] [1527166997.818588156]: Plugin hil loaded
[ INFO] [1527166997.882781780]: Plugin hil initialized
[ INFO] [1527166997.883048549]: Plugin home_position loaded
[ INFO] [1527166997.903052314]: Plugin home_position initialized
[ INFO] [1527166997.903807895]: Plugin imu loaded
[ INFO] [1527166997.933612538]: Plugin imu initialized
[ INFO] [1527166997.933850257]: Plugin local_position loaded
[ INFO] [1527166997.952751657]: Plugin local_position initialized
[ INFO] [1527166997.953008414]: Plugin manual_control loaded
[ INFO] [1527166997.968141910]: Plugin manual_control initialized
[ INFO] [1527166997.968481980]: Plugin mocap_pose_estimate loaded
[ INFO] [1527166997.984059425]: Plugin mocap_pose_estimate initialized
[ INFO] [1527166997.984304531]: Plugin obstacle_distance loaded
[ INFO] [1527166997.997733823]: Plugin obstacle_distance initialized
[ INFO] [1527166997.998059268]: Plugin odom loaded
[ INFO] [1527166998.013623175]: Plugin odom initialized
[ INFO] [1527166998.013984083]: Plugin param loaded
[ INFO] [1527166998.023299249]: Plugin param initialized
[ INFO] [1527166998.023588331]: Plugin px4flow loaded
[ INFO] [1527166998.042473344]: Plugin px4flow initialized
[ INFO] [1527166998.042727126]: Plugin rangefinder loaded
[ INFO] [1527166998.045338152]: Plugin rangefinder initialized
[ INFO] [1527166998.045632059]: Plugin rc_io loaded
[ INFO] [1527166998.062006661]: Plugin rc_io initialized
[ INFO] [1527166998.062537311]: Plugin safety_area loaded
[ INFO] [1527166998.083768132]: Plugin safety_area initialized
[ INFO] [1527166998.084033551]: Plugin setpoint_accel loaded
[ INFO] [1527166998.097458792]: Plugin setpoint_accel initialized
[ INFO] [1527166998.097776863]: Plugin setpoint_attitude loaded
[ INFO] [1527166998.135016088]: Plugin setpoint_attitude initialized
[ INFO] [1527166998.135395910]: Plugin setpoint_position loaded
[ INFO] [1527166998.199004407]: Plugin setpoint_position initialized
[ INFO] [1527166998.199288389]: Plugin setpoint_raw loaded
[ INFO] [1527166998.247947782]: Plugin setpoint_raw initialized
[ INFO] [1527166998.248232176]: Plugin setpoint_velocity loaded
[ INFO] [1527166998.276827990]: Plugin setpoint_velocity initialized
[ INFO] [1527166998.277159823]: Plugin sys_status loaded
[ INFO] [1527166998.313704869]: Plugin sys_status initialized
[ INFO] [1527166998.314003064]: Plugin sys_time loaded
[ INFO] [1527166998.325176275]: TM: Timesync mode: MAVLINK
[ INFO] [1527166998.327852553]: Plugin sys_time initialized
[ INFO] [1527166998.328095534]: Plugin vfr_hud loaded
[ INFO] [1527166998.330919928]: Plugin vfr_hud initialized
[ INFO] [1527166998.331147359]: Plugin vibration loaded
[ INFO] [1527166998.335247172]: Plugin vibration initialized
[ INFO] [1527166998.335499616]: Plugin vision_pose_estimate loaded
[ INFO] [1527166998.369932485]: Plugin vision_pose_estimate initialized
[ INFO] [1527166998.370189466]: Plugin vision_speed_estimate loaded
[ INFO] [1527166998.383793912]: Plugin vision_speed_estimate initialized
[ INFO] [1527166998.384077019]: Plugin waypoint loaded
[ INFO] [1527166998.403765289]: Plugin waypoint initialized
[ INFO] [1527166998.404032333]: Plugin wind_estimation loaded
[ INFO] [1527166998.406681323]: Plugin wind_estimation initialized
[ INFO] [1527166998.406813352]: Built-in SIMD instructions: SSE, SSE2
[ INFO] [1527166998.406874153]: Built-in MAVLink package version: 2018.5.5
[ INFO] [1527166998.406924542]: Known MAVLink dialects: common ardupilotmega ASLUAV autoquad icarous matrixpilot paparazzi slugs standard uAvionix ualberta
[ INFO] [1527166998.406979693]: MAVROS started. MY ID 2.240, TARGET ID 1.1
[ INFO] [1527166998.408225699]: IMU: Attitude quaternion IMU detected!
[ INFO] [1527166998.408474430]: IMU: High resolution IMU detected!
[ INFO] [1527166999.200899783]: CON: Got HEARTBEAT, connected. FCU: PX4 Autopilot
[ INFO] [1527166999.204518434]: IMU: High resolution IMU detected!
[ INFO] [1527166999.204972608]: IMU: Attitude quaternion IMU detected!
[ INFO] [1527167000.246101700]: VER: 1.1: Capabilities         0x00000000000024ef
[ INFO] [1527167000.246399932]: VER: 1.1: Flight software:     01060500 (00000000B9C7CD26)
[ INFO] [1527167000.246488372]: VER: 1.1: Middleware software: 01060500 (00000000B9C7CD26)
[ INFO] [1527167000.246534273]: VER: 1.1: OS software:         000000c0 (0000000000000000)
[ INFO] [1527167000.246748090]: VER: 1.1: Board hardware:      0000a4a7
[ INFO] [1527167000.246867818]: VER: 1.1: VID/PID:             0525:a4a7
[ INFO] [1527167000.246908907]: VER: 1.1: UID:                 3335511839343335
[ WARN] [1527167000.247388481]: CMD: Unexpected command 520, result 0
[ WARN] [1527167013.218527443]: PR: request param #452 timeout, retries left 2, and 1 params still missing
[ INFO] [1527167014.241870430]: WP: mission received
[ WARN] [1527167359.915573803]: CMD: Unexpected command 200, result 4
[ WARN] [1527168934.267074100]: TM: Clock skew detected (-763580720.440153122 s). Hard syncing clocks.

์ง„๋‹จ

header: 
  seq: 3416
  stamp: 
    secs: 1527169233
    nsecs: 907997653
  frame_id: ''
status: 
  - 
    level: 0
    name: "mavros: FCU connection"
    message: "connected"
    hardware_id: "tcp://127.0.0.1:5760"
    values: 
      - 
        key: "Received packets:"
        value: "60196"
      - 
        key: "Dropped packets:"
        value: "0"
      - 
        key: "Buffer overruns:"
        value: "0"
      - 
        key: "Parse errors:"
        value: "0"
      - 
        key: "Rx sequence number:"
        value: "159"
      - 
        key: "Tx sequence number:"
        value: "39"
      - 
        key: "Rx total bytes:"
        value: "147758546"
      - 
        key: "Tx total bytes:"
        value: "580048"
      - 
        key: "Rx speed:"
        value: "100808.000000"
      - 
        key: "Tx speed:"
        value: "390.000000"
  - 
    level: 0
    name: "mavros: GPS"
    message: "3D fix"
    hardware_id: "tcp://127.0.0.1:5760"
    values: 
      - 
        key: "Satellites visible"
        value: "8"
      - 
        key: "Fix type"
        value: "3"
      - 
        key: "EPH (m)"
        value: "1.24"
      - 
        key: "EPV (m)"
        value: "2.39"
  - 
    level: 0
    name: "mavros: Heartbeat"
    message: "Normal"
    hardware_id: "tcp://127.0.0.1:5760"
    values: 
      - 
        key: "Heartbeats since startup"
        value: "2229"
      - 
        key: "Frequency (Hz)"
        value: "0.962947"
      - 
        key: "Vehicle type"
        value: "Quadrotor"
      - 
        key: "Autopilot type"
        value: "PX4 Autopilot"
      - 
        key: "Mode"
        value: "AUTO.RTL"
      - 
        key: "System status"
        value: "Standby"
  - 
    level: 0
    name: "mavros: System"
    message: "Normal"
    hardware_id: "tcp://127.0.0.1:5760"
    values: 
      - 
        key: "Sensor present"
        value: "0x00000000"
      - 
        key: "Sensor enabled"
        value: "0x00000000"
      - 
        key: "Sensor helth"
        value: "0x00000000"
      - 
        key: "CPU Load (%)"
        value: "77.8"
      - 
        key: "Drop rate (%)"
        value: "0.0"
      - 
        key: "Errors comm"
        value: "0"
      - 
        key: "Errors count #1"
        value: "0"
      - 
        key: "Errors count #2"
        value: "0"
      - 
        key: "Errors count #3"
        value: "0"
      - 
        key: "Errors count #4"
        value: "0"
  - 
    level: 0
    name: "mavros: Battery"
    message: "Normal"
    hardware_id: "tcp://127.0.0.1:5760"
    values: 
      - 
        key: "Voltage"
        value: "17.91"
      - 
        key: "Current"
        value: "0.0"
      - 
        key: "Remaining"
        value: "100.0"
---

์•„์ด๋”” ํ™•์ธ

WARNING: mavros/target_system_id not set. Used default value: 1
WARNING: mavros/target_component_id not set. Used default value: 1
NOTE: Target parameters may be unset, but that may be result of incorrect --mavros-ns option.Double check results!
OK. I got messages from 1:1.

---
Received 9307 messages, from 1 addresses
sys:comp   list of messages
  1:1     0, 1, 2, 266, 140, 141, 147, 24, 30, 31, 32, 33, 36, 74, 76, 83, 85, 87, 230, 231, 105, 111, 241, 242, 245

PX4 question

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

PX4๋Š” ํ•ด๋‹น ๋ฉ”์‹œ์ง€๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฉ”์‹œ์ง€ ์†๋„๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ PX4 ํŽŒ์›จ์–ด ๋ฌธ์„œ๋ฅผ ์ฝ์œผ์‹ญ์‹œ์˜ค.

PX4๋Š” MAV_CMD_GET_MESSAGE_INTERVAL ๋ฐ MAV_CMD_SET_MESSAGE_INTERVAL์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

https://mavlink.io/en/messages/common.html#MAV_CMD_GET_MESSAGE_INTERVAL

์˜ˆ, ํ•˜์ง€๋งŒ ํ•ด๋‹น iface๋Š” ์•„์ง mavros์—์„œ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(์ƒˆ๋กœ์šด rosapi ํ˜ธ์ถœ ํ•„์š”).

@vooon , @dagar ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉํ–ฅ์„

rosrun mavros mavcmd int 511 105 10000 100 1 1 1 1 ์‹œ๋„ํ–ˆ์ง€๋งŒ ์„ฑ๊ณตํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ์ˆซ์ž๋Š” ๋‹ค์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
511: https://mavlink.io/en/messages/common.html#MAV_CMD_GET_MESSAGE_INTERVAL
105: https://github.com/PX4/Firmware/blob/4453e4201b7a245cff52beeb38a293161aea4c48/Tools/mavlink_px4.py#L506
1 1 1 1: ๋ฌด์–ธ๊ฐ€๋ฅผ ์ฑ„์›Œ์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด mavcmd int: error: too few arguments ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ PX4 mavlink stream -u 14556 -s HIGHRES_IMU -r 100 ์˜ mavlink ๋ชจ๋“ˆ๋กœ IMU ์†๋„๋ฅผ ๋†’์˜€์Šต๋‹ˆ๋‹ค. rostopic hz /mavros/imu/data ํ™•์ธํ•  ๋•Œ ์—ฌ์ „ํžˆ ์š”๊ธˆ์€ 50์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. /mavros/imu/data ์ฃผ์ œ๋ฅผ ๋” ๋นจ๋ฆฌ ๊ฒŒ์‹œํ•˜๊ธฐ ์œ„ํ•ด mavros ์™ธ๋ถ€์—์„œ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š” ์ž‘์—…์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๊ธด mavcmd long 511 105 1000 0 0 0 0 0 0 ๋ช…๋ น๋„ ์‹œ๋„ํ•˜์‹ญ์‹œ์˜ค.

๋น ๋ฅธ ๋‹ต๋ณ€ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค @vooon

rosrun mavros mavcmd long 511 105 1000 0 0 0 0 0 ์‹œ๋„ํ–ˆ์ง€๋งŒ ๋ถˆํ–‰ํžˆ๋„ ๋น„์œจ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹50์ž…๋‹ˆ๋‹ค.

/mavros/imu/data ์— ๊ฒŒ์‹œํ•˜๋„๋ก mavros๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•˜๋Š” ๊ฒƒ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๋ฐ์ดํ„ฐ๊ฐ€ ์—ฌ๊ธฐ handle_attitude_quaternion ํ•จ์ˆ˜์— ๊ฒŒ์‹œ๋˜์–ด ์žˆ์ง€๋งŒ ํ•ด๋‹น ํ•จ์ˆ˜๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•˜๋Š” ํ•ญ๋ชฉ์„ ์ฐพ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

@szebedy Aero๊ฐ€ UDP๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ŠคํŠธ๋ฆฌ๋ฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ์–ด๋–ค ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ๋Œ€์‹  TCP๋ฅผ ํ†ตํ•ด ์—ฐ๊ฒฐํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? mavlink stream -u 14556 -s HIGHRES_IMU -r 100 ๋Š” Aero๊ฐ€ ์‹ค์ œ๋กœ ํ•ด๋‹น UDP ํฌํŠธ๋ฅผ ํ†ตํ•ด ์ŠคํŠธ๋ฆฌ๋ฐํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

/mavros/imu/data ์— ๊ฒŒ์‹œํ•˜๋„๋ก mavros๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•˜๋Š” ๊ฒƒ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๋ฐ์ดํ„ฐ๊ฐ€ ์—ฌ๊ธฐ handle_attitude_quaternion ํ•จ์ˆ˜์— ๊ฒŒ์‹œ๋˜์–ด ์žˆ์ง€๋งŒ ํ•ด๋‹น ํ•จ์ˆ˜๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•˜๋Š” ํ•ญ๋ชฉ์„ ์ฐพ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

MAVROS๊ฐ€ ์ŠคํŠธ๋ฆผ์—์„œ HIGHRES_IMU msg๋ฅผ ์ˆ˜์‹ ํ•  ๋•Œ ํŠธ๋ฆฌ๊ฑฐ๋ฉ๋‹ˆ๋‹ค.

@TSC21 ์•„์ฃผ ์ข‹์€

๋”ฐ๋ผ์„œ mavlink stream -d /dev/ttyS1 -s HIGHRES_IMU -r 100 ์‹œ๋„ํ–ˆ์ง€๋งŒ ๋ถˆํ–‰ํžˆ๋„ ์ŠคํŠธ๋ฆฌ๋ฐ ์†๋„๋Š” 50์œผ๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.

PX4์—์„œ data_raw ๋Š” HIGHRES_IMU์™€ ๊ฐ™์€ ์†๋„๋ฅผ ๊ฐ€์ ธ์•ผ ํ•˜์ง€๋งŒ data ๋Š” ATTITUDE_QUATERNION ์™€ hr-imu๋ฅผ ๊ฒฐํ•ฉํ•˜๋ฏ€๋กœ ์†๋„๋„ ๋ณ€๊ฒฝํ•ด ๋ณด์‹ญ์‹œ์˜ค.

์ปดํ“จํŒ… ๋ณด๋“œ์—๋Š” ์ง๋ ฌ ํฌํŠธ๋ฅผ ๋„คํŠธ์›Œํฌ ์†Œ์ผ“(ํฌํŠธ 5760)์œผ๋กœ ๋…ธ์ถœํ•˜๋Š” ํ”„๋ก์‹œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋ฉด ๋ฌธ์ œ๊ฐ€ ํ”„๋ก์‹œ์— ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณ‘๋ชฉ ํ˜„์ƒ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š์Œ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

@vooon (๊ทธ๋ฆฌ๊ณ  @TSC21) ์ •๋ง ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์„ฑ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค!!! ๋”ฐ๋ผ์„œ ํ˜„์žฌ ์†”๋ฃจ์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. QGC Mavlink ์ฝ˜์†”์—์„œ ๋‹ค์Œ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
mavlink stream -d /dev/ttyS1 -s HIGHRES_IMU -r 100
mavlink stream -d /dev/ttyS1 -s ATTITUDE_QUATERNION -r 100
  1. ํ„ฐ๋ฏธ๋„์—์„œ
rosrun mavros mavcmd long 511 105 10000 0 0 0 0 0
rosrun mavros mavcmd long 511 31 10000 0 0 0 0 0

ROS ์‹œ์ž‘ ํŒŒ์ผ(๋˜๋Š” C++ ROS ๋…ธ๋“œ)์— ์ด ๋‘ ๋ช…๋ น์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

ROS ์‹œ์ž‘ ํŒŒ์ผ(๋˜๋Š” C++ ROS ๋…ธ๋“œ)์— ์ด ๋‘ ๋ช…๋ น์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๊ทธ๋ƒฅ ๋„ฃ์–ด:

mavlink stream -d /dev/ttyS1 -s HIGHRES_IMU -r 100

๋˜๋Š”

mavlink stream -d /dev/ttyS1 -s ATTITUDE_QUATERNION -r 100

https://github.com/PX4/Firmware/blob/master/ROMFS/px4fmu_common/init.d/4070_aerofc ์—์„œ Aero ๋ณด๋“œ๋ฅผ ๋‹ค์‹œ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•˜๊ณ  ์žฌ๋ถ€ํŒ…ํ•˜์‹ญ์‹œ์˜ค. ROS ๋ช…๋ น์„ ์‚ฌ์šฉํ•  ํ•„์š”๋„ ์—†์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿผ ๋‹ซ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ๋‹จ์ง€ ์–ธ๊ธ‰:
mavros/imu/data_raw ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์–ป์œผ๋ ค๋ฉด HIGHRES_IMU ์ŠคํŠธ๋ฆผ์„ ๋Š˜๋ฆฌ๋ฉด ๋ฉ๋‹ˆ๋‹ค. mavros/imu/data (ํ•„ํ„ฐ๋ง๋œ ํƒœ๋„)์—์„œ ์–ป์œผ๋ ค๋ฉด ATTITUDE_QUATERNION ์—์„œ ๋Š˜๋ฆฌ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋‘ ๊ฐ€์ง€ ๋ชจ๋‘์— ๋Œ€ํ•ด ์ฆ๊ฐ€ํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค(์ด์œ  ์—†์ด ๋Œ€์—ญํญ ์‚ฌ์šฉ๋Ÿ‰์„ ์ฆ๊ฐ€์‹œํ‚ค๋ฏ€๋กœ). ์ฒ˜์Œ๋ถ€ํ„ฐ ์ž˜๋ชป๋œ ์ฃผ์ œ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์–ป์—ˆ์„ ๋ฟ์ž…๋‹ˆ๋‹ค. rostopic hz /mavros/imu/data_raw ๋ฅผ ๋ฐœํ–‰ํ–ˆ๋‹ค๋ฉด ๋ฐ์ดํ„ฐ ์†๋„๊ฐ€ ์ฆ๊ฐ€ํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ƒฅ ๋„ฃ์–ด:

mavlink ์ŠคํŠธ๋ฆผ -d /dev/ttyS1 -s HIGHRES_IMU -r 100

๋˜๋Š”

mavlink ์ŠคํŠธ๋ฆผ -d /dev/ttyS1 -s ATTITUDE_QUATERNION -r 100

https://github.com/PX4/Firmware/blob/master/ROMFS/px4fmu_common/init.d/4070_aerofc ์—์„œ Aero ๋ณด๋“œ๋ฅผ ๋‹ค์‹œ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•˜๊ณ  ์žฌ๋ถ€ํŒ…ํ•˜์‹ญ์‹œ์˜ค. ROS ๋ช…๋ น์„ ์‚ฌ์šฉํ•  ํ•„์š”๋„ ์—†์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿผ ๋‹ซ์Šต๋‹ˆ๋‹ค.

@TSC21 ์–ด์งธ์„œ์ธ์ง€ ํšจ๊ณผ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? https://github.com/PX4/Firmware/blob/master/ROMFS/px4fmu_common/init.d/4070_aerofc ์˜ ๋์— mavlink stream -d /dev/ttyS1 -s ATTITUDE_QUATERNION -r 100 ๋ฅผ ์‚ฝ์ž…ํ•˜๊ณ  make aerofc-v1_default ๋กœ ๋งŒ๋“  ๋‹ค์Œ ์—…๋กœ๋“œํ–ˆ์Šต๋‹ˆ๋‹ค. make aerofc-v1_default upload . ์—…๋กœ๋“œ๊ฐ€ ์™„๋ฃŒ๋˜๊ณ  ์žฌ๋ถ€ํŒ…๋˜์ง€๋งŒ mavros/imu/data ์˜ ๋น„์œจ์€ 50์œผ๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.

@TSC21 ์—์–ด๋กœ๋Š” extras.txt ์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋Šฅ์ด ์—†๋‚˜์š”? Pixhawk๋Š” ์ŠคํŠธ๋ฆผ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก SD ์นด๋“œ์—์„œ extras.txt ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค. https://github.com/intel-aero/meta-intel-aero/issues/286

@TSC21 ์–ด์งธ์„œ์ธ์ง€ ํšจ๊ณผ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? make aerofc๋กœ ๋นŒ๋“œ๋œ https://github.com/PX4/Firmware/blob/master/ROMFS/px4fmu_common/init.d/4070_aerofc ๋์— mavlink stream -d /dev/ttyS1 -s ATTITUDE_QUATERNION -r 100 ์„ ์‚ฝ์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค. -v1_default ๋‹ค์Œ make aerofc-v1_default ์—…๋กœ๋“œ๋กœ ์—…๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ์—…๋กœ๋“œ๊ฐ€ ์™„๋ฃŒ๋˜๊ณ  ์žฌ๋ถ€ํŒ…๋˜์ง€๋งŒ mavros/imu/data์˜ ์†๋„๋Š” 50์œผ๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ์ค„๋กœ ๋ฎ์–ด์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. https://github.com/PX4/Firmware/blob/ab279d5fe9e014cec26add8a56bd5e676152b1c5/src/modules/mavlink/mavlink_main.cpp#L2042

ํ˜„์žฌ ์ž‘์—… ์†”๋ฃจ์…˜์€ configure_stream("ATTITUDE_QUATERNION", 50.0f); ๋ฅผ configure_stream("ATTITUDE_QUATERNION", 100.0f); ๋กœ ๋ฐ”๊พผ ๋‹ค์Œ ๋นŒ๋“œํ•˜๊ณ  ์—…๋กœ๋“œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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