Mavros: / mavros / setpoint_velocity / cmd_vel๊ณผ ๊ฐ™์€ ์ฃผ์ œ๊ฐ€ ์žˆ์ง€๋งŒ body frame์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๊นŒ?

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

์•ˆ๋…•ํ•˜์„ธ์š”,
์ €๋Š” ๋น„์ „ ๊ธฐ๋ฐ˜ ์ œ์–ด๋ฅผํ•˜๊ณ  ์žˆ๊ณ  ์นด๋ฉ”๋ผ๋Š” ์•„๋ž˜๋ฅผ ํ–ฅํ•œ ๋“œ๋ก ์— ์žˆ์Šต๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ ์œ„์น˜ ์ถ”์ •์€ ์‹ ์ฒด ํ”„๋ ˆ์ž„์— ์žˆ์Šต๋‹ˆ๋‹ค.
/ mavros / setpoint_velocity / cmd_vel ํ•ญ๋ชฉ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋“œ๋ก ์˜ ์†๋„๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์ง€๋งŒ NED ํ”„๋ ˆ์ž„์—์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

/ mavros / setpoint_velocity / cmd_vel๊ณผ ๊ฐ™์€ ์ฃผ์ œ๊ฐ€ ์žˆ์ง€๋งŒ body frame์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๊นŒ?

๋˜๋Š” ๊ตฌํ˜„์„ ์œ„ํ•ด ์†๋„ ์„ค์ • ๊ฐ’์„ ๋ณธ์ฒด ํ”„๋ ˆ์ž„์—์„œ NED ํ”„๋ ˆ์ž„์œผ๋กœ ๋ณ€ํ™˜ํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ?

๋‚ด๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜์žˆ๋Š” ๊ฒƒ์„ ์ฐพ์œผ๋ ค๊ณ  ๋…ธ๋ ฅํ–ˆ๊ณ ์ด ์ฝ”๋“œ๋ฅผ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. https://github.com/weiweikong/px4_velocity_control_keyboard/blob/master/src/px4_velocity_control_node.cpp

vs_body_axis.twist.linear.x = vs.twist.linear.x * cos(uavYawENU) + vs.twist.linear.y * sin(uavYawENU);
vs_body_axis.twist.linear.y = vs.twist.linear.x * sin(uavYawENU) - vs.twist.linear.y * cos(uavYawENU);

์ด๊ฒƒ์ด ์ œ๊ฐ€ ์ฐพ์„ ์ˆ˜์žˆ๋Š” ์ตœ๊ณ ์˜ ์†”๋ฃจ์…˜ ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
Yaw๊ฐ€ IMU์—์„œ๋งŒ ์ œ๊ณต๋˜๋Š”์ง€ ์•„๋‹ˆ๋ฉด IMU์™€ ์ž๊ธฐ์˜ ์œตํ•ฉ์—์„œ ๋‚˜์˜จ ๊ฒƒ์ธ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ด๊ฒƒ์— ๋Œ€ํ•œ ์˜๊ฒฌ์ด๋‚˜ ์•„์ด๋””์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

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

๋งˆ ๋ธŒ๋กœ์Šค : 0.17.3
ROS : ์ธ๋””๊ณ 
Ubuntu : 14.04

Autopilot ์œ ํ˜• ๋ฐ ๋ฒ„์ „

APM : Copter V3.4-dev (fe724032)

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

bshang2 @ mechatronics-990 : ~ / simulation / ardupilot / ArduCopter $ roslaunch ardupilot_sitl_gazebo_plugin erlecopter_mark.launch
... /home/bshang2/.ros/log/ca9213bc-89bf-11e7-b657-1803733b65bb/roslaunch-mechatronics-990-28079.log์— ๋กœ๊น…
๋””์Šคํฌ ์‚ฌ์šฉ๋Ÿ‰์— ๋Œ€ํ•œ ๋กœ๊ทธ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์‹œ๊ฐ„์ด ์ข€ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ค‘๋‹จํ•˜๋ ค๋ฉด Ctrl-C๋ฅผ ๋ˆ„๋ฅด์„ธ์š”.
๋กœ๊ทธ ํŒŒ์ผ ๋””์Šคํฌ ์‚ฌ์šฉ๋Ÿ‰ ํ™•์ธ์„ ์™„๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ๋Ÿ‰์€ 1GB ๋ฏธ๋งŒ์ž…๋‹ˆ๋‹ค.

roslaunch ์„œ๋ฒ„ ์‹œ์ž‘ http : // mechatronics-990 : 45006 /

์š”์•ฝ

๋ช…ํ™•ํ•œ ๋งค๊ฐœ ๋ณ€์ˆ˜

  • / ๋งˆ ๋ธŒ๋กœ์Šค /

๋งค๊ฐœ ๋ณ€์ˆ˜

  • / mavros / cmd / use_comp_id_system_control : False
  • / mavros / conn / heartbeat_rate : 1.0
  • / mavros / conn / system_time_rate : 0.0
  • / mavros / conn / ์‹œ๊ฐ„ ์ดˆ๊ณผ : 10.0
  • / mavros / conn / timesync_rate : 0.0
  • / mavros / fcu_url : tcp : //127.0.0.1 : 5760
  • / mavros / gcs_url : udp : //127.0.0.1@1 ...
  • / mavros / global_position / frame_id : fcu
  • / mavros / global_position / rot_covariance : 99999.0
  • / mavros / global_position / tf / child_frame_id : fcu_utm
  • / mavros / global_position / tf / frame_id : local_origin
  • / mavros / global_position / tf / send : False
  • / mavros / ์ด๋ฏธ์ง€ / frame_id : px4flow
  • / mavros / imu / angular_velocity_stdev : 0.000349065850399
  • / mavros / imu / frame_id : fcu
  • / mavros / imu / linear_acceleration_stdev : 0.0003
  • / mavros / imu / magnetic_stdev : 0.0
  • / mavros / imu / orientation_stdev : 1.0
  • / mavros / local_position / frame_id : fcu
  • / mavros / local_position / tf / child_frame_id : base_link
  • / mavros / local_position / tf / frame_id : world
  • / mavros / local_position / tf / send : True
  • / mavros / mission / pull_after_gcs : True
  • / mavros / mocap / use_pose : ์ฐธ
  • / mavros / mocap / use_tf : False
  • / mavros / plugin_blacklist : [ 'actuator_contro ...
  • / mavros / plugin_whitelist : []
  • / mavros / px4flow / frame_id : px4flow
  • / mavros / px4flow / ranger_fov : 0.0
  • / mavros / px4flow / ranger_max_range : 5.0
  • / mavros / px4flow / ranger_min_range : 0.3
  • / mavros / safety_area / p1 / x : 1.0
  • / mavros / safety_area / p1 / y : 1.0
  • / mavros / safety_area / p1 / z : 1.0
  • / mavros / safety_area / p2 / x : -1.0
  • / mavros / safety_area / p2 / y : -1.0
  • / mavros / safety_area / p2 / z : -1.0
  • / mavros / setpoint_accel / send_force : False
  • / mavros / setpoint_attitude / reverse_throttle : False
  • / mavros / setpoint_attitude / tf / child_frame_id : ํƒœ๋„
  • / mavros / setpoint_attitude / tf / frame_id : local_origin
  • / mavros / setpoint_attitude / tf / listen : False
  • / mavros / setpoint_attitude / tf / rate_limit : 10.0
  • / mavros / setpoint_position / tf / child_frame_id : setpoint
  • / mavros / setpoint_position / tf / frame_id : local_origin
  • / mavros / setpoint_position / tf / listen : False
  • / mavros / setpoint_position / tf / rate_limit : 50.0
  • / mavros / startup_px4_usb_quirk : False
  • / mavros / sys / disable_diag : False
  • / mavros / sys / ์ตœ์†Œ ์ „์•• : 10.0
  • / mavros / target_component_id : 1
  • / mavros / target_system_id : 1
  • / mavros / tdr_radio / low_rssi : 40
  • / mavros / ์‹œ๊ฐ„ / time_ref_source : fcu
  • / mavros / ์‹œ๊ฐ„ / timesync_avg_alpha : 0.6
  • / mavros / ์ง„๋™ / frame_id : ์ง„๋™
  • / mavros / vision_pose / tf / child_frame_id : ๋น„์ „
  • / mavros / vision_pose / tf / frame_id : local_origin
  • / mavros / vision_pose / tf / listen : False
  • / mavros / vision_pose / tf / rate_limit : 10.0
  • / mavros / vision_speed / listen_twist : False
  • / robot_description :
  • / rosdistro : ์ธ๋””๊ณ 
  • / rosversion : 1.11.21
  • / tf_prefix :
  • / use_sim_time : ์ฐธ

๋…ธ๋“œ
/
gazebo (gazebo_ros / gzserver)
gazebo_gui (gazebo_ros / gzclient)
mavros (mavros / mavros_node)
spawn_erlecopter (gazebo_ros / spawn_model)

์ƒˆ ๋งˆ์Šคํ„ฐ ์ž๋™ ์‹œ์ž‘
ํ”„๋กœ์„ธ์Šค [๋งˆ์Šคํ„ฐ] : pid๋กœ ์‹œ์ž‘๋จ [28094]
ROS_MASTER_URI = http : // localhost : 11311

/ run_id๋ฅผ ca9213bc-89bf-11e7-b657-1803733b65bb๋กœ ์„ค์ •
process [rosout-1] : pid๋กœ ์‹œ์ž‘๋จ [28107]
ํ•ต์‹ฌ ์„œ๋น„์Šค ์‹œ์ž‘ [/ rosout]
ํ”„๋กœ์„ธ์Šค [mavros-2] : pid๋กœ ์‹œ์ž‘๋จ [28126]
ํ”„๋กœ์„ธ์Šค [spawn_erlecopter-3] : pid๋กœ ์‹œ์ž‘๋จ [28133]
process [gazebo-4] : pid๋กœ ์‹œ์ž‘๋จ [28134]
process [gazebo_gui-5] : pid๋กœ ์‹œ์ž‘๋จ [28151]
spawn_model ์Šคํฌ๋ฆฝํŠธ ์‹œ์ž‘๋จ
[gazebo-4] ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ค‘๋‹จ๋จ [pid 28134, ์ข…๋ฃŒ ์ฝ”๋“œ 255, cmd / home / bshang2 / simulation / ros_catkin_ws / src / gazebo_ros_pkgs / gazebo_ros / scripts / gzserver -u -e ode / home / bshang2 / simulation / ros_catkin_ws / src /ardupilot_sitl_gazebo_plugin/ardupilot_sitl_gazebo_plugin/worlds/mark_world/mark.world __name : = gazebo __log : = / home / bshang2 / .ros / log / ca9213bc-89bf-11e7-b657-1803733b65bb / gazebo-4.log].
๋กœ๊ทธ ํŒŒ์ผ : /home/bshang2/.ros/log/ca9213bc-89bf-11e7-b657-1803733b65bb/gazebo-4 .log[์ •๋ณด] [WallTime : 1503684250.172508] [0.000000] ros ๋งค๊ฐœ ๋ณ€์ˆ˜์—์„œ ๋ชจ๋ธ xml๋กœ๋“œ ์ค‘[์ •๋ณด] [WallTime : 1503684250.176886] [0.000000] / gazebo / spawn_urdf_model ์„œ๋น„์Šค ๋Œ€๊ธฐ ์ค‘[gazebo_gui-5] ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. [pid 28151, ์ข…๋ฃŒ ์ฝ”๋“œ 255, cmd / home / bshang2 / simulation / ros_catkin_ws / src / gazebo_ros_pkgs / gazebo_ros / scripts / gzclient __name : = gazebo_gui __log : = / home / bshang2 / .ros / log / ca9213bc-89bf-11e7-b657-1803733b65bb / gazebo_gui-5.log].๋กœ๊ทธ ํŒŒ์ผ : /home/bshang2/.ros/log/ca9213bc-89bf-11e7-b657-1803733b65bb/gazebo_gui-5 .log
^ C [spawn_erlecopter-3] ์ข…๋ฃŒ์‹œ ์ข…๋ฃŒ
[mavros-2] ์ข…๋ฃŒ์‹œ ์‚ด์ธ
์—ญ ์ถ”์  (๊ฐ€์žฅ ์ตœ๊ทผ ํ˜ธ์ถœ ๋งˆ์ง€๋ง‰) :
ํŒŒ์ผ "/ home / bshang2 / simulation / ros_catkin_ws / src / gazebo_ros_pkgs / gazebo_ros / scripts / spawn_model", ์ค„ 301, in
sm.callSpawnService ()
"/ home / bshang2 / simulation / ros_catkin_ws / src / gazebo_ros_pkgs / gazebo_ros / scripts / spawn_model"ํŒŒ์ผ, 267 ํ–‰, callSpawnService
initial_pose, self.reference_frame, self.gazebo_namespace)
"/home/bshang2/simulation/ros_catkin_ws/src/gazebo_ros_pkgs/gazebo_ros/src/gazebo_ros/gazebo_interface.py", 28 ํ–‰, spawn_urdf_model_client ํŒŒ์ผ
rospy.wait_for_service (gazebo_namespace + '/ spawn_urdf_model')
wait_for_service์˜ "/opt/ros/indigo/lib/python2.7/dist-packages/rospy/impl/tcpros_service.py", 159 ํ–‰ ํŒŒ์ผ
ROSInterruptException ( "rospy ์ข…๋ฃŒ") ๋ฐœ์ƒ
rospy.exceptions.ROSInterruptException : rospy ์ข…๋ฃŒ
^ C [rosout-1] ์ข…๋ฃŒ์‹œ ๊ฐ•์ œ ์ข…๋ฃŒ
^ C [๋งˆ์Šคํ„ฐ] ์ข…๋ฃŒ์‹œ ๊ฐ•์ œ ์ข…๋ฃŒ
์ฒ˜๋ฆฌ ๋ชจ๋‹ˆํ„ฐ ์ข…๋ฃŒ ์ค‘ ...
... ์ฒ˜๋ฆฌ ๋ชจ๋‹ˆํ„ฐ ์ข…๋ฃŒ ์™„๋ฃŒ
๋๋‚œ
bshang2 @ mechatronics-990 : ~ / simulation / ardupilot / ArduCopter $ roslaunch ardupilot_sitl_gazebo_plugin erlecopter_mark.launch
... /home/bshang2/.ros/log/e483c856-89bf-11e7-bb61-1803733b65bb/roslaunch-mechatronics-990-28603.log์— ๋กœ๊น…
๋””์Šคํฌ ์‚ฌ์šฉ๋Ÿ‰์— ๋Œ€ํ•œ ๋กœ๊ทธ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์‹œ๊ฐ„์ด ์ข€ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ค‘๋‹จํ•˜๋ ค๋ฉด Ctrl-C๋ฅผ ๋ˆ„๋ฅด์„ธ์š”.
๋กœ๊ทธ ํŒŒ์ผ ๋””์Šคํฌ ์‚ฌ์šฉ๋Ÿ‰ ํ™•์ธ์„ ์™„๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ๋Ÿ‰์€ 1GB ๋ฏธ๋งŒ์ž…๋‹ˆ๋‹ค.

roslaunch ์„œ๋ฒ„ ์‹œ์ž‘ http : // mechatronics-990 : 41224 /

์š”์•ฝ

๋ช…ํ™•ํ•œ ๋งค๊ฐœ ๋ณ€์ˆ˜

  • / ๋งˆ ๋ธŒ๋กœ์Šค /

๋งค๊ฐœ ๋ณ€์ˆ˜

  • / mavros / cmd / use_comp_id_system_control : False
  • / mavros / conn / heartbeat_rate : 1.0
  • / mavros / conn / system_time_rate : 0.0
  • / mavros / conn / ์‹œ๊ฐ„ ์ดˆ๊ณผ : 10.0
  • / mavros / conn / timesync_rate : 0.0
  • / mavros / fcu_url : tcp : //127.0.0.1 : 5760
  • / mavros / gcs_url : udp : //127.0.0.1@1 ...
  • / mavros / global_position / frame_id : fcu
  • / mavros / global_position / rot_covariance : 99999.0
  • / mavros / global_position / tf / child_frame_id : fcu_utm
  • / mavros / global_position / tf / frame_id : local_origin
  • / mavros / global_position / tf / send : False
  • / mavros / ์ด๋ฏธ์ง€ / frame_id : px4flow
  • / mavros / imu / angular_velocity_stdev : 0.000349065850399
  • / mavros / imu / frame_id : fcu
  • / mavros / imu / linear_acceleration_stdev : 0.0003
  • / mavros / imu / magnetic_stdev : 0.0
  • / mavros / imu / orientation_stdev : 1.0
  • / mavros / local_position / frame_id : fcu
  • / mavros / local_position / tf / child_frame_id : base_link
  • / mavros / local_position / tf / frame_id : world
  • / mavros / local_position / tf / send : True
  • / mavros / mission / pull_after_gcs : True
  • / mavros / mocap / use_pose : ์ฐธ
  • / mavros / mocap / use_tf : False
  • / mavros / plugin_blacklist : [ 'actuator_contro ...
  • / mavros / plugin_whitelist : []
  • / mavros / px4flow / frame_id : px4flow
  • / mavros / px4flow / ranger_fov : 0.0
  • / mavros / px4flow / ranger_max_range : 5.0
  • / mavros / px4flow / ranger_min_range : 0.3
  • / mavros / safety_area / p1 / x : 1.0
  • / mavros / safety_area / p1 / y : 1.0
  • / mavros / safety_area / p1 / z : 1.0
  • / mavros / safety_area / p2 / x : -1.0
  • / mavros / safety_area / p2 / y : -1.0
  • / mavros / safety_area / p2 / z : -1.0
  • / mavros / setpoint_accel / send_force : False
  • / mavros / setpoint_attitude / reverse_throttle : False
  • / mavros / setpoint_attitude / tf / child_frame_id : ํƒœ๋„
  • / mavros / setpoint_attitude / tf / frame_id : local_origin
  • / mavros / setpoint_attitude / tf / listen : False
  • / mavros / setpoint_attitude / tf / rate_limit : 10.0
  • / mavros / setpoint_position / tf / child_frame_id : setpoint
  • / mavros / setpoint_position / tf / frame_id : local_origin
  • / mavros / setpoint_position / tf / listen : False
  • / mavros / setpoint_position / tf / rate_limit : 50.0
  • / mavros / startup_px4_usb_quirk : False
  • / mavros / sys / disable_diag : False
  • / mavros / sys / ์ตœ์†Œ ์ „์•• : 10.0
  • / mavros / target_component_id : 1
  • / mavros / target_system_id : 1
  • / mavros / tdr_radio / low_rssi : 40
  • / mavros / ์‹œ๊ฐ„ / time_ref_source : fcu
  • / mavros / ์‹œ๊ฐ„ / timesync_avg_alpha : 0.6
  • / mavros / ์ง„๋™ / frame_id : ์ง„๋™
  • / mavros / vision_pose / tf / child_frame_id : ๋น„์ „
  • / mavros / vision_pose / tf / frame_id : local_origin
  • / mavros / vision_pose / tf / listen : False
  • / mavros / vision_pose / tf / rate_limit : 10.0
  • / mavros / vision_speed / listen_twist : False
  • / robot_description :
  • / rosdistro : ์ธ๋””๊ณ 
  • / rosversion : 1.11.21
  • / tf_prefix :
  • / use_sim_time : ์ฐธ

๋…ธ๋“œ
/
gazebo (gazebo_ros / gzserver)
gazebo_gui (gazebo_ros / gzclient)
mavros (mavros / mavros_node)
spawn_erlecopter (gazebo_ros / spawn_model)

์ƒˆ ๋งˆ์Šคํ„ฐ ์ž๋™ ์‹œ์ž‘
ํ”„๋กœ์„ธ์Šค [๋งˆ์Šคํ„ฐ] : pid๋กœ ์‹œ์ž‘๋จ [28618]
ROS_MASTER_URI = http : // localhost : 11311

/ run_id๋ฅผ e483c856-89bf-11e7-bb61-1803733b65bb๋กœ ์„ค์ •
ํ”„๋กœ์„ธ์Šค [rosout-1] : pid๋กœ ์‹œ์ž‘๋จ [28631]
ํ•ต์‹ฌ ์„œ๋น„์Šค ์‹œ์ž‘ [/ rosout]
ํ”„๋กœ์„ธ์Šค [mavros-2] : pid๋กœ ์‹œ์ž‘๋จ [28656]
ํ”„๋กœ์„ธ์Šค [spawn_erlecopter-3] : pid๋กœ ์‹œ์ž‘๋จ [28657]
process [gazebo-4] : pid๋กœ ์‹œ์ž‘๋จ [28674]
process [gazebo_gui-5] : pid๋กœ ์‹œ์ž‘๋จ [28678]
spawn_model ์Šคํฌ๋ฆฝํŠธ ์‹œ์ž‘๋จ
[์ •๋ณด] [WallTime : 1503684293.653120] [0.000000] ros ๋งค๊ฐœ ๋ณ€์ˆ˜์—์„œ ๋ชจ๋ธ xml๋กœ๋“œ ์ค‘
[์ •๋ณด] [WallTime : 1503684293.657344] [0.000000] / gazebo / spawn_urdf_model ์„œ๋น„์Šค ๋Œ€๊ธฐ ์ค‘
[์ •๋ณด] [WallTime : 1503684294.260952] [0.047500] ์ „ํ™” ์„œ๋น„์Šค / gazebo / spawn_urdf_model
[์ •๋ณด] [WallTime : 1503684294.855628] [0.445000] ์ƒ์„ฑ ์ƒํƒœ : SpawnModel : ์„ฑ๊ณต์ ์œผ๋กœ ์ƒ์„ฑ ๋œ ๋ชจ๋ธ
[spawn_erlecopter-3] ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊นจ๋—ํ•˜๊ฒŒ ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
๋กœ๊ทธ ํŒŒ์ผ : /home/bshang2/.ros/log/e483c856-89bf-11e7-bb61-1803733b65bb/spawn_erlecopter-3*.log

์ง„๋‹จ

bshang2 @ mechatronics-990 : ~ / simulation / ardupilot / ArduCopter $ rostopic echo -n1 / diagnostics
๋จธ๋ฆฌ๊ธ€:
์‹œํ€€์Šค : 6456
์šฐํ‘œ:
์ดˆ : 6817
nsec : 500000000
frame_id : ''
์ƒํƒœ:


  • ๋ ˆ๋ฒจ : 0
    ์ด๋ฆ„ : mavros : FCU ์—ฐ๊ฒฐ
    ๋ฉ”์‹œ์ง€ : ์—ฐ๊ฒฐ๋จ
    hardware_id : tcp : //127.0.0.1 : 5760
    ๊ฐ’ :



    • ํ‚ค : ์ˆ˜์‹  ๋œ ํŒจํ‚ท :

      ๊ฐ’ : 24635



    • ํ‚ค : ์‚ญ์ œ ๋œ ํŒจํ‚ท :

      ๊ฐ’ : 0



    • ํ‚ค : ๋ฒ„ํผ ์˜ค๋ฒ„๋Ÿฐ :

      ๊ฐ’ : 0



    • ํ‚ค : ๊ตฌ๋ฌธ ๋ถ„์„ ์˜ค๋ฅ˜ :

      ๊ฐ’ : 0



    • ํ‚ค : Rx ์‹œํ€€์Šค ๋ฒˆํ˜ธ :

      ๊ฐ’ : 58



    • ํ‚ค : Tx ์‹œํ€€์Šค ๋ฒˆํ˜ธ :

      ๊ฐ’ : 190



    • ํ‚ค : Rx ์ด ๋ฐ”์ดํŠธ :

      ๊ฐ’ : 19770100



    • ํ‚ค : Tx ์ด ๋ฐ”์ดํŠธ :

      ๊ฐ’ : 169295



    • ํ‚ค : Rx ์†๋„ :

      ๊ฐ’ : inf



    • ํ‚ค : Tx ์†๋„ :

      ๊ฐ’ : inf


  • ๋ ˆ๋ฒจ : 0
    ์ด๋ฆ„ : mavros : GCS ๋‹ค๋ฆฌ
    ๋ฉ”์‹œ์ง€ : ์—ฐ๊ฒฐ๋จ
    hardware_id : tcp : //127.0.0.1 : 5760
    ๊ฐ’ :



    • ํ‚ค : ์ˆ˜์‹  ๋œ ํŒจํ‚ท :

      ๊ฐ’ : 3059



    • ํ‚ค : ์‚ญ์ œ ๋œ ํŒจํ‚ท :

      ๊ฐ’ : 0



    • ํ‚ค : ๋ฒ„ํผ ์˜ค๋ฒ„๋Ÿฐ :

      ๊ฐ’ : 0



    • ํ‚ค : ๊ตฌ๋ฌธ ๋ถ„์„ ์˜ค๋ฅ˜ :

      ๊ฐ’ : 0



    • ํ‚ค : Rx ์‹œํ€€์Šค ๋ฒˆํ˜ธ :

      ๊ฐ’ : 243



    • ํ‚ค : Tx ์‹œํ€€์Šค ๋ฒˆํ˜ธ :

      ๊ฐ’ : 0



    • ํ‚ค : Rx ์ด ๋ฐ”์ดํŠธ :

      ๊ฐ’ : 51809



    • ํ‚ค : Tx ์ด ๋ฐ”์ดํŠธ :

      ๊ฐ’ : 19769923



    • ํ‚ค : Rx ์†๋„ :

      ๊ฐ’ : inf



    • ํ‚ค : Tx ์†๋„ :

      ๊ฐ’ : inf


  • ๋ ˆ๋ฒจ : 0
    ์ด๋ฆ„ : mavros : GPS
    ๋ฉ”์‹œ์ง€ : 3D ์ˆ˜์ •
    hardware_id : tcp : //127.0.0.1 : 5760
    ๊ฐ’ :



    • ํ‚ค : ์œ„์„ฑ ํ‘œ์‹œ

      ๊ฐ’ : 10



    • ํ‚ค : ์ˆ˜์ • ์œ ํ˜•

      ๊ฐ’ : 3



    • ํ‚ค : EPH (m)

      ๊ฐ’ : 1.21



    • ํ‚ค : EPV (m)

      ๊ฐ’ : 2.00


  • ๋ ˆ๋ฒจ : 0
    ์ด๋ฆ„ : mavros : Heartbeat
    ๋ฉ”์‹œ์ง€ : ์ •์ƒ
    hardware_id : tcp : //127.0.0.1 : 5760
    ๊ฐ’ :



    • ํ‚ค : ์‹œ์ž‘ ์ดํ›„ ํ•˜ํŠธ ๋น„ํŠธ

      ๊ฐ’ : 6817



    • ํ‚ค : ์ฃผํŒŒ์ˆ˜ (Hz)

      ๊ฐ’ : 0.952381



    • ํ‚ค : ์ฐจ๋Ÿ‰ ์œ ํ˜•

      ๊ฐ’ : Quadrotor



    • ํ‚ค : ์ž๋™ ์กฐ์ข… ์žฅ์น˜ ์œ ํ˜•

      ๊ฐ’ : ArduPilotMega



    • ํ‚ค : ๋ชจ๋“œ

      ๊ฐ’ : GUIDED



    • ํ‚ค : ์‹œ์Šคํ…œ ์ƒํƒœ

      ๊ฐ’ : ํ™œ์„ฑ


  • ๋ ˆ๋ฒจ : 0
    ์ด๋ฆ„ : mavros : ์‹œ์Šคํ…œ
    ๋ฉ”์‹œ์ง€ : ์ •์ƒ
    hardware_id : tcp : //127.0.0.1 : 5760
    ๊ฐ’ :



    • ํ‚ค : ์„ผ์„œ ์žˆ์Œ

      ๊ฐ’ : 0x0061FD2F



    • ํ‚ค : ์„ผ์„œ ํ™œ์„ฑํ™”

      ๊ฐ’ : 0x0061FD2F



    • ํ‚ค : ์„ผ์„œ ์„ ๋ฐ˜

      ๊ฐ’ : 0x0061FD2F



    • ํ‚ค : ์„ผ์„œ 3D ์ž์ด๋กœ

      ๊ฐ’ : ํ™•์ธ



    • ํ‚ค : ์„ผ์„œ 3D ๊ฐ€์†

      ๊ฐ’ : ํ™•์ธ



    • ํ‚ค : ์„ผ์„œ 3D Mag

      ๊ฐ’ : ํ™•์ธ



    • ํ‚ค : ์„ผ์„œ ์ ˆ๋Œ€ ์••๋ ฅ

      ๊ฐ’ : ํ™•์ธ



    • ํ‚ค : ์„ผ์„œ GPS

      ๊ฐ’ : ํ™•์ธ



    • ํ‚ค : ์„ผ์„œ ๋ ˆ์ด์ € ์œ„์น˜

      ๊ฐ’ : ํ™•์ธ



    • ํ‚ค : ์„ผ์„œ Ang Rate ์ œ์–ด

      ๊ฐ’ : ํ™•์ธ



    • ํ‚ค : ์„ผ์„œ ํƒœ๋„ ์ฐŒ๋ฅด๊ธฐ

      ๊ฐ’ : ํ™•์ธ



    • ํ‚ค : ์„ผ์„œ ์š” ์œ„์น˜

      ๊ฐ’ : ํ™•์ธ



    • ํ‚ค : ์„ผ์„œ Z / Alt ์ œ์–ด

      ๊ฐ’ : ํ™•์ธ



    • ํ‚ค : ์„ผ์„œ X / Y ์œ„์น˜ ์ œ์–ด

      ๊ฐ’ : ํ™•์ธ



    • ํ‚ค : ์„ผ์„œ ๋ชจํ„ฐ ์ถœ๋ ฅ

      ๊ฐ’ : ํ™•์ธ



    • ํ‚ค : ์„ผ์„œ RC ์ˆ˜์‹ ๊ธฐ

      ๊ฐ’ : ํ™•์ธ



    • ํ‚ค : AHRS ์ƒํƒœ

      ๊ฐ’ : ํ™•์ธ



    • ํ‚ค : ์ง€ํ˜• ๊ฑด๊ฐ•

      ๊ฐ’ : ํ™•์ธ



    • ํ‚ค : CPU๋กœ๋“œ (%)

      ๊ฐ’ : 0.0



    • ํ‚ค : ๋“œ๋ž๋ฅ  (%)

      ๊ฐ’ : 0.0



    • ํ‚ค : ์˜ค๋ฅ˜ ํ†ต์‹ 

      ๊ฐ’ : 0



    • ํ‚ค : ์˜ค๋ฅ˜ ์ˆ˜ # 1

      ๊ฐ’ : 0



    • ํ‚ค : ์˜ค๋ฅ˜ ์ˆ˜ # 2

      ๊ฐ’ : 0



    • ํ‚ค : ์˜ค๋ฅ˜ ์ˆ˜ # 3

      ๊ฐ’ : 0



    • ํ‚ค : ์˜ค๋ฅ˜ ์ˆ˜ # 4

      ๊ฐ’ : 0


  • ๋ ˆ๋ฒจ 1
    ์ด๋ฆ„ : mavros : ๋ฐฐํ„ฐ๋ฆฌ
    ๋ฉ”์‹œ์ง€ : ์ €์ „์••
    hardware_id : tcp : //127.0.0.1 : 5760
    ๊ฐ’ :



    • ํ‚ค : ์ „์••

      ๊ฐ’ : 0.00



    • ํ‚ค : ํ˜„์žฌ

      ๊ฐ’ : 0.0



    • ํ‚ค : ๋‚˜๋จธ์ง€

๊ฐ’ : 100.0

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

bshang2 @ mechatronics-990 : ~ / simulation / ardupilot / ArduCopter $ rosrun mavros checkid
ํ™•์ธ. 1 : 1์—์„œ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.


1 ๊ฐœ ์ฃผ์†Œ์—์„œ 1231 ๊ฐœ์˜ ๋ฉ”์‹œ์ง€ ์ˆ˜์‹ 
sys : comp ๋ฉ”์‹œ์ง€ ๋ชฉ๋ก
1 : 1 0, 1, 2, 136, 152, 150, 24, 27, 29, 30, 32, 33, 162, 163, 164, 165, 42, 173, 178, 62, 193, 74, 35, 36 , 241, 116

question

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

๋ฅผ ๋“ค์–ด setpoint_velocity , ๋‚˜๋Š” ์‚ฌ์ด์˜ ์„ ํƒ ํ—ˆ์šฉํ•˜๋Š” ์ˆ˜์ • ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค LOCAL_NED ์™€ BODY_NED , ๊ทธ๊ฒƒ์€ ํ˜„์žฌ ๋””ํดํŠธ๋กœ๋ถ€ํ„ฐ LOCAL_NED / : (HTTPS๋ฅผ /github.com/mavlink/mavros/blob/master/mavros/src/plugins/setpoint_velocity.cpp#L81). ๊ทธ๋™์•ˆ setpoint_raw ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  coordinate_frame ๋ฅผ FRAME_BODY_NED ๋˜๋Š” MAV_FRAME::BODY_NED ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (๋‘˜ ๋‹ค ์ž‘๋™ํ•ด์•ผ ํ•จ).

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

์•ˆ๋…•,

setpoint_raw๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

http://wiki.ros.org/mavros#mavros.2BAC8 -Plugins.setpoint_raw

๋ชฉํ‘œ ์„ค์ • ์ ์—์„œ ์ขŒํ‘œ ํ”„๋ ˆ์ž„์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

http://docs.ros.org/api/mavros_msgs/html/msg/PositionTarget.html

๋ฅผ ๋“ค์–ด setpoint_velocity , ๋‚˜๋Š” ์‚ฌ์ด์˜ ์„ ํƒ ํ—ˆ์šฉํ•˜๋Š” ์ˆ˜์ • ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค LOCAL_NED ์™€ BODY_NED , ๊ทธ๊ฒƒ์€ ํ˜„์žฌ ๋””ํดํŠธ๋กœ๋ถ€ํ„ฐ LOCAL_NED / : (HTTPS๋ฅผ /github.com/mavlink/mavros/blob/master/mavros/src/plugins/setpoint_velocity.cpp#L81). ๊ทธ๋™์•ˆ setpoint_raw ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  coordinate_frame ๋ฅผ FRAME_BODY_NED ๋˜๋Š” MAV_FRAME::BODY_NED ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (๋‘˜ ๋‹ค ์ž‘๋™ํ•ด์•ผ ํ•จ).

@AlexisTM ๋ฐ @ TSC21 ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๊ท€ํ•˜์˜ ๋‹ต๋ณ€์ด ๋„์›€์ด๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜์ค‘์— ์‹œ๋„ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

@ TSC21 @AlexisTM ๋„์™€ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ์ด์ œ ๋ณธ์ฒด ํ”„๋ ˆ์ž„์˜ ์†๋„๋ฅผ ์ œ์–ด ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋น„๋””์˜ค ๋…นํ™” : https://www.youtube.com/watch?v=dyUQfFYX3pk&feature=youtu.be

rostopic pub /mavros/setpoint_raw/local mavros_msgs/PositionTarget '{header: {stamp: now, frame_id: "world"}, coordinate_frame: 8, type_mask: 3527, velocity: {x: 0.1, y: 0, z: 0}}' -r 10

@cnpcshangbo ์•Œ์•„

์•ˆ๋…•ํ•˜์„ธ์š” @cnpcshangbo , ๋น„๋””์˜ค์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.
๋‚˜๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ๋‚ด๊ฐ€ ๊ฐ€์ง„ ํ˜ผ๋ž€์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก ์ด๊ฒƒ์„ ๊ฒŒ์‹œํ•ฉ๋‹ˆ๋‹ค.
ํ”„๋ ˆ์ž„ ๋งˆ์Šคํฌ๊ฐ€ FRAME_BODY_NED = 8 ์ด์ง€๋งŒ ROS ๋ช…๋ น์€ ์—ฌ์ „ํžˆ โ€‹โ€‹ENU์— ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค . ENU-> NED ๋ณ€ํ™˜์€ mavros๊ฐ€ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
์‹ค์ œ๋กœ ๋น„๋””์˜ค์—์„œ ๋™์ž‘์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • x = 0.1 ---> ์˜ค๋ฅธ์ชฝ์œผ๋กœ
  • y = 0.1 ---> ์•ž์œผ๋กœ
    ๋ถ„๋ช…ํžˆ ๊ทธ๊ฒƒ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹ENU์— ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ์ด ํ˜ผ๋ž€์œผ๋กœ ์ธํ•ด ์ผ์ฃผ์ผ์— ๋จธ๋ฆฌ์นด๋ฝ์„ ์žก์•„ ๋‹น๊ธฐ๋Š”๋ฐ ...

์•ˆ๋…• ํ™ฉ,
์„ค๋ช…ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
๋„ˆ๋ฌด ์˜ค๋ž˜ ๊ฑธ๋ ค์„œ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.
๋‹น์‹ ์˜ ๋…ธ๋ ฅ์€ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์„ ๋•์Šต๋‹ˆ๋‹ค.
๊ฐ์‚ฌ
์•…

ํ˜ธ์•™ ๋ฏผ ์ • [email protected]ไบŽ2018ๅนด8ๆœˆ17ๆ—ฅๅ‘จไบ”ไธŠๅˆ11์‹œ 9๋ถ„ๅ†™้“:

์•ˆ๋…•ํ•˜์„ธ์š” @cnpcshangbo https://github.com/cnpcshangbo , ๋น„๋””์˜ค์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.
๋‚˜๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ๋‚ด๊ฐ€ ๊ฐ€์ง„ ํ˜ผ๋ž€์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก ์ด๊ฒƒ์„ ๊ฒŒ์‹œํ•ฉ๋‹ˆ๋‹ค.
ํ”„๋ ˆ์ž„ ๋งˆ์Šคํฌ๊ฐ€ "FRAME_BODY_NED = 8"์ด์ง€๋งŒ ROS ๋ช…๋ น์€์—ฌ์ „ํžˆ ENU์— ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค . ENU-> NED ๋ณ€ํ™˜์€ ๋‹ค์Œ์— ์˜ํ•ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.
๋งˆ ๋ธŒ๋กœ์Šค.
์‹ค์ œ๋กœ ๋น„๋””์˜ค์—์„œ ๋™์ž‘์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • x = 0.1 ---> ์˜ค๋ฅธ์ชฝ์œผ๋กœ
  • y = 0.1 ---> ์•ž์œผ๋กœ
    ๋ถ„๋ช…ํžˆ ๊ทธ๊ฒƒ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹ENU์— ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ์ด ํ˜ผ๋ž€์— ์ผ์ฃผ์ผ์ด ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค
    ๋จธ๋ฆฌ์นด๋ฝ์„ ์žก์•„ ๋‹น๊ธฐ๋Š” ๊ฒƒ ...

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/mavlink/mavros/issues/792#issuecomment-413745084 ๋˜๋Š” ์Œ์†Œ๊ฑฐ
์‹ค
https://github.com/notifications/unsubscribe-auth/AEm3NdefOViosyJKxQlf2h0ZweC8lO6uks5uRjP9gaJpZM4PDCb2
.

@Nuno ๋งต ํ”„๋ ˆ์ž„์—์„œ BODY๋Š” x ์•ž์œผ๋กœ, ์™ผ์ชฝ์€ y, ๋™์ชฝ์€ x, ๋ถ์ชฝ์€ y๊ฐ€๋˜์–ด์•ผํ•˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ?

๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๊ฐ€ ์‹ค์ œ๋กœ ์—ฌ๊ธฐ์— ์„ธ ๊ฐ€์ง€ ๊ทœ์น™์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ๋งž์Šต๋‹ˆ๊นŒ?
1) NED : PX4 ์˜จ๋ณด๋“œ ์ถ”์ • ๋ฐ ์ œ์–ด
2) ENU : mavros ๋ช…๋ น ๋ฉ”์‹œ์ง€์— ๋Œ€ํ•œ ํ‘œ์ค€ ์ž…๋ ฅ ํ˜•์‹
3) NWU : ROS์˜ ์ผ๋ฐ˜์ ์ธ ์ขŒํ‘œ๊ณ„

์•„๋‹ˆ์š”. ROS์—๋Š” NWU๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
http://www.ros.org/reps/rep-0103.html

@AlexisTM north ๋˜๋Š” east๋Š” ๋ณธ๋ฌธ ๊ทœ์น™์„ ์ง€์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•ด์„œ๋Š” ์•ˆ๋˜๋ฉฐ ์˜คํžˆ๋ ค ์•ž, ์™ผ์ชฝ๊ณผ ๊ฐ™์€ ๋ฐฉํ–ฅ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

๊ดœ์ฐฎ์•„. ํ•˜์ง€๋งŒ ๋‚ด๊ฐ€ ํ‹€๋ฆฌ์ง€ ์•Š์•˜๋‹ค๋ฉด ์šฐ๋ฆฌ๋Š” ์—ฌ์ „ํžˆ ์„ธ ๊ฐ€์ง€ ๊ด€์Šต์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๊นŒ?
1) NED : ์˜จ๋ณด๋“œ ์ œ์–ด
2) Right-Forward-Up : mavros๊ฐ€ ์›์‹œ (์†๋„) ์„ค์ • ๊ฐ’์„ ์ดํ•ดํ•˜๋Š” ๋ฐฉ๋ฒ•
3) ์•ž์œผ๋กœ ์™ผ์ชฝ ์œ„๋กœ : ROS ๊ทœ์น™

@hmchung ์ง€๋„ ํ”„๋ ˆ์ž„ ๋‚ด์—์„œ ์†๋„ ์„ค์ • ๊ฐ’์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ENU (ROS ๊ทœ์น™)์ž…๋‹ˆ๋‹ค.

๊ทœ์น™์€ 2 ๊ฐœ๋งŒ ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค! Pixhawk ๋ฐ ENU์˜ NED : ROS์—์„œ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ชจ๋“  ์ž‘์—….

FLU (Forward-Left-Up)๋Š” ๋ฐ”๋”” ํ”„๋ ˆ์ž„์— ๋Œ€ํ•œ ROS ๊ทœ์น™์ž…๋‹ˆ๋‹ค. ENU (East-North-Up)๋Š” ๋กœ์ปฌ / ์›Œ๋“œ ํ”„๋ ˆ์ž„์— ๋Œ€ํ•œ ROS ๊ทœ์น™์ž…๋‹ˆ๋‹ค.

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