启动PX4的mavros_posix_sitl.launch出现PositionTargetGlobal报错的解决咨询
解决PX4仿真中"PositionTargetGlobal failed because no origin"警告及高度偏差问题
问题原因
该警告是因为PX4未获取到有效全局GPS原点,导致全局位置目标无法转换为本地NED坐标系位置,进而引发高度计算偏差。
解决方法
手动设置全局原点
- 通过QGroundControl设置:打开QGC进入「飞行计划」页面,点击右上角「设置原点」按钮,选择当前位置或输入指定经纬度海拔(如默认仿真坐标:北纬47.397742,东经8.545594,海拔488m)。
- 通过Mavros指令设置:在终端执行以下命令:
rostopic pub /mavros/global_position/set_gp_origin mavros_msgs/SetGPOrigin "{geo: {lat: 47.397742, lon: 8.545594, alt: 488.0}}" --once
修改launch文件自动加载原点
找到mavros_posix_sitl.launch文件(通常路径为~/catkin_ws/src/mavros/mavros/launch),打开后添加自动设置原点的节点:<node name="set_gp_origin" pkg="rostopic" type="rostopic" args="pub /mavros/global_position/set_gp_origin mavros_msgs/SetGPOrigin '{geo: {lat: 47.397742, lon: 8.545594, alt: 488.0}}' --once" />保存后重启launch文件,系统会自动完成原点设置。
检查PX4参数配置
启动SITL后,在QGroundControl的「参数」页面搜索GPS_Origin_Lat、GPS_Origin_Lon、GPS_Origin_Alt,确认参数已填入有效坐标。若为空,手动输入仿真默认值或自定义原点坐标,保存参数后重启SITL。
内容的提问来源于stack exchange,提问作者memymine
相关产品推荐
相关产品推荐

