Mavros: Mavros 主题更新率低

创建于 2019-02-20  ·  7评论  ·  资料来源: mavlink/mavros

这只是错误和功能跟踪器,请使用它
报告错误或请求功能。


问题详情

大家好,
我正在做一个室内无人机项目,最近我注意到一些不好的事情:
主题正在以非常低的速率(小于 1Hz)更新(包括主题 mavros/local_position/pose,这对于在 OFFBOARD 模式下控制无人机很重要)。
由于无人机无法实时知道其正确高度,因此设置主题使飞行控制变得困难。 当我在 Gazebo Simulator 上测试这个测试算法(飞行 1 米并保持其位置)时,Mavros 主题正在以不错的速度更新。
为了验证是否是遥测系统的问题,我在QGroundControl上测试了信息更新率,当我移动无人机时,信息会即时更新。 然后,我想遥测系统(3DR Radio Link)不是问题所在。

我正在通过以下命令启动 mavros:

roslaunch mavros px4.launch fcu_url:=/dev/ttyUSB0:57600

如果有办法解决这个问题(使用遥测更新主题的高延迟)请告诉我。

MAVROS 版本和平台

马夫罗斯: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/cmd/use_comp_id_system_control: 假
  • /mavros/conn/heartbeat_rate: 1.0
  • /mavros/conn/system_time_rate: 1.0
  • /mavros/conn/超时:10.0
  • /mavros/conn/timesync_rate: 10.0
  • /mavros/distance_sensor/hrlv_ez4_pub/field_of_view: 0.0
  • /mavros/distance_sensor/hrlv_ez4_pub/frame_id: hrlv_ez4_sonar
  • /mavros/distance_sensor/hrlv_ez4_pub/id: 0
  • /mavros/distance_sensor/hrlv_ez4_pub/orientation: PITCH_270
  • /mavros/distance_sensor/hrlv_ez4_pub/send_tf: 真
  • /mavros/distance_sensor/hrlv_ez4_pub/sensor_position/x: 0.0
  • /mavros/distance_sensor/hrlv_ez4_pub/sensor_position/y: 0.0
  • /mavros/distance_sensor/hrlv_ez4_pub/sensor_position/z:-0.1
  • /mavros/distance_sensor/laser_1_sub/id: 3
  • /mavros/distance_sensor/laser_1_sub/orientation: PITCH_270
  • /mavros/distance_sensor/laser_1_sub/subscriber: 真
  • /mavros/distance_sensor/lidarlite_pub/field_of_view: 0.0
  • /mavros/distance_sensor/lidarlite_pub/frame_id:lidarlite_laser
  • /mavros/distance_sensor/lidarlite_pub/id: 1
  • /mavros/distance_sensor/lidarlite_pub/orientation: PITCH_270
  • /mavros/distance_sensor/lidarlite_pub/send_tf: 真
  • /mavros/distance_sensor/lidarlite_pub/sensor_position/x: 0.0
  • /mavros/distance_sensor/lidarlite_pub/sensor_position/y: 0.0
  • /mavros/distance_sensor/lidarlite_pub/sensor_position/z:-0.1
  • /mavros/distance_sensor/sonar_1_sub/id: 2
  • /mavros/distance_sensor/sonar_1_sub/orientation: PITCH_270
  • /mavros/distance_sensor/sonar_1_sub/subscriber: 真
  • /mavros/fake_gps/eph:2.0
  • /mavros/fake_gps/epv:2.0
  • /mavros/fake_gps/fix_type: 3
  • /mavros/fake_gps/geo_origin/alt:408.0
  • /mavros/fake_gps/geo_origin/lat: 47.3667
  • /mavros/fake_gps/geo_origin/lon:8.55
  • /mavros/fake_gps/gps_rate: 5.0
  • /mavros/fake_gps/mocap_transform: 真
  • /mavros/fake_gps/satellites_visible:5
  • /mavros/fake_gps/tf/child_frame_id:修复
  • /mavros/fake_gps/tf/frame_id:地图
  • /mavros/fake_gps/tf/listen: 假
  • /mavros/fake_gps/tf/rate_limit: 10.0
  • /mavros/fake_gps/tf/send: 假
  • /mavros/fake_gps/use_mocap: 真
  • /mavros/fake_gps/use_vision: 假
  • /mavros/fcu_protocol: v2.0
  • /mavros/fcu_url: /dev/ttyUSB0:57600
  • /mavros/gcs_url:
  • /mavros/global_position/child_frame_id: base_link
  • /mavros/global_position/frame_id: 地图
  • /mavros/global_position/rot_covariance: 99999.0
  • /mavros/global_position/tf/child_frame_id: base_link
  • /mavros/global_position/tf/frame_id: 地图
  • /mavros/global_position/tf/global_frame_id:地球
  • /mavros/global_position/tf/send: 假
  • /mavros/global_position/use_relative_alt: 真
  • /mavros/image/frame_id: px4flow
  • /mavros/imu/angular_velocity_stdev:0.000349065850399
  • /mavros/imu/frame_id: base_link
  • /mavros/imu/linear_acceleration_stdev: 0.0003
  • /mavros/imu/magnetic_stdev: 0.0
  • /mavros/imu/orientation_stdev: 1.0
  • /mavros/local_position/frame_id: 地图
  • /mavros/local_position/tf/child_frame_id: base_link
  • /mavros/local_position/tf/frame_id: 地图
  • /mavros/local_position/tf/send: 假
  • /mavros/local_position/tf/send_fcu: 假
  • /mavros/mission/pull_after_gcs: 真
  • /mavros/mocap/use_pose: 真
  • /mavros/mocap/use_tf: 假
  • /mavros/odometry/estimator_type: 3
  • /mavros/odometry/frame_tf/desired_frame: ned
  • /mavros/plugin_blacklist: ['safety_area', '...
  • /mavros/plugin_whitelist: ['sys_*', 'comman...
  • /mavros/px4flow/frame_id: px4flow
  • /mavros/px4flow/ranger_fov:0.118682389136
  • /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:假
  • /mavros/setpoint_attitude/reverse_thrust: 假
  • /mavros/setpoint_attitude/tf/child_frame_id: target_attitude
  • /mavros/setpoint_attitude/tf/frame_id: 地图
  • /mavros/setpoint_attitude/tf/listen: 假
  • /mavros/setpoint_attitude/tf/rate_limit: 50.0
  • /mavros/setpoint_attitude/use_quaternion: 假
  • /mavros/setpoint_position/mav_frame: LOCAL_NED
  • /mavros/setpoint_position/tf/child_frame_id: target_position
  • /mavros/setpoint_position/tf/frame_id: 地图
  • /mavros/setpoint_position/tf/listen: 假
  • /mavros/setpoint_position/tf/rate_limit: 50.0
  • /mavros/setpoint_velocity/mav_frame: LOCAL_NED
  • /mavros/startup_px4_usb_quirk: 真
  • /mavros/sys/disable_diag: 假
  • /mavros/sys/min_电压:10.0
  • /mavros/target_component_id: 1
  • /mavros/target_system_id: 1
  • /mavros/tdr_radio/low_rssi:40
  • /mavros/time/time_ref_source: fcu
  • /mavros/time/timesync_avg_alpha:0.6
  • /mavros/time/timesync_mode: MAVLINK
  • /mavros/vibration/frame_id: base_link
  • /mavros/vision_pose/tf/child_frame_id:vision_estimate
  • /mavros/vision_pose/tf/frame_id: 地图
  • /mavros/vision_pose/tf/listen: 假
  • /mavros/vision_pose/tf/rate_limit: 10.0
  • /mavros/vision_speed/listen_twist: 假
  • /rosdistro: 月球
  • /rosversion: 1.13.7

节点
/
mavros (mavros/mavros_node)

自动启动新主
进程[master]:以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
纳秒:476350000
frame_id: ''
地位:


  • 等级:0
    名称:“mavros:FCU 连接”
    消息:“已连接”
    硬件 ID:“/dev/ttyUSB0:57600”
    价值观:



    • 键:“收到的数据包:”

      值:“3164”



    • 键:“丢弃的数据包:”

      值:“0”



    • 键:“缓冲区溢出:”

      值:“0”



    • 键:“解析错误:”

      值:“0”



    • 键:“接收序列号:”

      值:“40”



    • 键:“Tx 序列号:”

      值:“56”



    • 键:“接收总字节数:”

      值:“2350842”



    • 键:“Tx 总字节数:”

      值:“915507”



    • 键:“接收速度:”

      值:“661.000000”



    • 键:“发送速度:”

      值:“320.000000”


  • 等级:2
    名称:“mavros:GPS”
    消息:“没有卫星”
    硬件 ID:“/dev/ttyUSB0:57600”
    价值观:



    • 键:“卫星可见”

      值:“0”



    • 键:“修复类型”

      值:“0”



    • 键:“EPH(米)”

      值:“99.99”



    • 键:“EPV(米)”

      值:“99.99”


  • 等级:0
    名称:“mavros:心跳”
    消息:“正常”
    硬件 ID:“/dev/ttyUSB0:57600”
    价值观:



    • 键:“自启动以来的心跳”

      值:“2793”



    • 键:“频率(Hz)”

      值:“0.999995”



    • 关键字:“车辆类型”

      值:“四旋翼”



    • 键:“自动驾驶类型”

      值:“PX4 自动驾驶仪”



    • 键:“模式”

      值:“手动”



    • 键:“系统状态”

      值:“待机”


  • 等级:0
    名称:“mavros:系统”
    消息:“正常”
    硬件 ID:“/dev/ttyUSB0:57600”
    价值观:



    • 键:“传感器存在”

      值:“0x00000000”



    • 键:“传感器启用”

      值:“0x00000000”



    • 关键:“传感器健康”

      值:“0x00000000”



    • 键:“CPU 负载(%)”

      值:“28.8”



    • 键:“掉率(%)”

      值:“0.0”



    • 键:“错误通讯”

      值:“0”



    • 键:“错误计数 #1”

      值:“0”



    • 键:“错误计数 #2”

      值:“0”



    • 键:“错误计数 #3”

      值:“0”



    • 键:“错误计数 #4”

      值:“0”


  • 等级:0
    名称:“mavros:电池”
    消息:“正常”
    硬件 ID:“/dev/ttyUSB0:57600”
    价值观:



    • 键:“电压”

      值:“10.18”



    • 键:“当前”

      值:“0.0”



    • 键:“剩余”

      值:“0.0”


  • 等级:2
    名称:“mavros:时间同步”
    消息:“没有记录事件。”
    硬件 ID:“/dev/ttyUSB0:57600”
    价值观:



    • 键:“自启动以来的时间同步”

      值:“0”



    • 键:“频率(Hz)”

      值:“0.000000”



    • 键:“最后一个 dt(毫秒)”

      值:“9.376617”



    • 键:“平均 dt(毫秒)”

      值:“0.000000”



    • 键:“上次系统时间(s)”

      值:“3023.959504000”



    • 键:“时间偏移(s)”

值:“1550615055.404127836”

查身份证


好的。 我收到了来自 1:1 的消息。

收到 371 条消息,来自 1 个地址
sys:comp消息列表

1:1 0, 1, 36, 230, 32, 105, 74, 141, 77, 111, 241, 147, 245, 4, 24, 132, 106, 30

谢谢您的帮助!

question

最有用的评论

我解决了这个问题,只是改变了参数“MAV_0_RATE”(从 1200(默认)到 57600)而不改变波特率参数。 以前,我试图更改 SER_TEL1_BAUD 参数(从 57600 到 115200),但它没有解决问题,并且遥测无法使用此波特率。 然后我只测试了 MAV_0_RATE,它运行良好。

所有7条评论

使用该遥测链路中的波特率,您以这些速率获取数据看起来完全正常,考虑到 PX4 的此类链路的链路速率配置文件非常低。 我会按照https://docs.px4.io/en/peripherals/serial_configuration.html并尝试将您的链接波特率设置为 115200。

亲爱的 TSC21,

谢谢你回复我。

我遵循了你的建议,但没有成功。 当我将链路波特率更改为 115200 时,我无法通过遥测访问无人机。 QGroundControl 仅显示:“等待车辆连接”。 我尝试按照您在此处发布的链接进行操作,并更改了这些参数(旨在更改波特率链接):

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 参数来提高串行通信的波特率,然后重新启动无人机。

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

为了完整起见,这是我的设置详细信息:

MAVROS 版本和平台

马夫罗斯:1.4

ROS:旋律

Ubuntu:18.04

自动驾驶仪类型和版本

PX4

版本:v1.10.1

PX4_FMU_V5 (V500)

NuttX, v7.29.0

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

TSC21 picture TSC21  ·  12评论

RR2-IP2 picture RR2-IP2  ·  4评论

TeixeiraRafael picture TeixeiraRafael  ·  4评论

Changliu52 picture Changliu52  ·  6评论

Tutorgaming picture Tutorgaming  ·  4评论