本文记录采用ArduPilot固件,室内optitrack环境下飞行实现中遇到的一些问题

  1. 在apm/mavros仿真中,总是出现mavros/state 显示 not connected。 在实际的操作中,则是显示连接的。目前的效果是 motive 通过vrpn数据送给树莓派,然后映射成vision_pose/pose给飞控,通过修改set origin可以得到融合后的local_position数据(在地面站中可以看到数据),但是在ros的话题列表中没有该话题。
  2. dronekit 由于目前API较多的是针对位置环进行设置,所以无法渗透到姿态环,且对应的api太少,不适合控制
  3. pymavlink 可以使用
  4. 在apm-ros-sitl 中,当屏蔽GPS信号后,报错high gps hdop 选择关闭prearm gps check. 对应参数为arming_check,此时就可以解锁apm, 并尝试飞行loiter了
  5. 在启动mavros之后,显示的RTT timesync to high, 可以通过修改对应的mavros加载的apm_config.yaml中的 timesync_rate 为0, 相当于不显示这个问题,其实没有解决
  6. ardupilot: wrong fcu time. 由于关闭了gps, 所以没有办法获取GPS时间而报错
  7. mission planner 报错: no SRTM data for this area 含义是没有该区域的地形数据。该数据是由mission planner或者mavproxy自动下载的(除了经纬度还有当地的海拔信息)。
  8. 针对上述问题1和问题7,在仿真测试中,可以采用在mavproxy地图中直接设置origin来实现,在实际飞行过程中,可以采用一个脚本来完成同样的操作(实际都在发送mavlink消息过去,这样的话,在后续的matlab中,可以采用相同的思路完成这一操作)
#!/usr/bin/env python##
#
# Send SET_GPS_GLOBAL_ORIGIN and SET_HOME_POSITION messages
#
##import rospy
from pymavlink.dialects.v10 import ardupilotmega as MAV_APM
from mavros.mavlink import convert_to_rosmsg
from mavros_msgs.msg import Mavlink# Global position of the origin
lat = 42.56335 * 1e7   # Terni
lon = 12.64329 * 1e7   # Terni
alt = 163 * 1e3class fifo(object):""" A simple buffer """def __init__(self):self.buf = []def write(self, data):self.buf += datareturn len(data)def read(self):return self.buf.pop(0)def send_message(msg, mav, pub):"""Send a mavlink message"""msg.pack(mav)rosmsg = convert_to_rosmsg(msg)pub.publish(rosmsg)print("sent message %s" % msg)def set_global_origin(mav, pub):"""Send a mavlink SET_GPS_GLOBAL_ORIGIN message, which allows usto use local position information without a GPS."""target_system = mav.srcSystem#target_system = 0   # 0 --> broadcast to everyonelattitude = latlongitude = lonaltitude = altmsg = MAV_APM.MAVLink_set_gps_global_origin_message(target_system,lattitude, longitude,altitude)send_message(msg, mav, pub)def set_home_position(mav, pub):"""Send a mavlink SET_HOME_POSITION message, which should allowus to use local position information without a GPS"""target_system = mav.srcSystem#target_system = 0  # broadcast to everyonelattitude = latlongitude = lonaltitude = altx = 0y = 0z = 0q = [1, 0, 0, 0]   # w x y zapproach_x = 0approach_y = 0approach_z = 1msg = MAV_APM.MAVLink_set_home_position_message(target_system,lattitude,longitude,altitude,x,y,z,q,approach_x,approach_y,approach_z)send_message(msg, mav, pub)if __name__=="__main__":try:rospy.init_node("origin_publisher")mavlink_pub = rospy.Publisher("/mavlink/to", Mavlink, queue_size=20)# Set up mavlink instancef = fifo()mav = MAV_APM.MAVLink(f, srcSystem=1, srcComponent=1)# wait to initializewhile mavlink_pub.get_num_connections() <= 0:passfor _ in range(2):rospy.sleep(1)set_global_origin(mav, mavlink_pub)set_home_position(mav, mavlink_pub)except rospy.ROSInterruptException:pass

apm-ros-optitrack初步尝试相关推荐

  1. 关于大脑记忆可视化的初步尝试(一)

    关于大脑记忆可视化的初步尝试(一) 原因:每次新结交一个新的朋友,记住他的名字很难,回忆他的名字更难,发现大脑不知道去哪里搜素:同样,接触到一个新的东西,一个新的知识点,很快会忘记,不知道怎么存储,怎 ...

  2. 腾讯SkillNet|NLU任务全能网络,对Pathways架构的初步尝试

    卷友们好,我是rumor. 21年10月的时候,谷歌大佬Jeff Dean提出了下一代AI架构的Pathways概念[1],旨在通过一个大模型完成各种不同的任务.对于较早关注AI领域的同行们来说,这其 ...

  3. 换肤功能原理及自定义组件化UI样式初步尝试

    只从UI工作开始向前端工作,我一直计划着开发一套属于自己的UI框架,网站通过拖拽点击,或输入布局代码,后台自动生成一套静态页面,从此前端工作仅需要补充各种排版即可,静态页面通过代码生成. 可能我上面的 ...

  4. 【完结】图解控制理论结构的初步尝试

    原文:https://zhuanlan.zhihu.com/p/140500993 [完结]图解控制理论结构的初步尝试 系统与控制 中国自动化学会会员 一.从一个问题出发 曾经有人问过这样一个问题,我 ...

  5. 4.2 手机模拟操作初步尝试(获取登录页面的源代码)

    本节先来初步尝试手机模拟操作,为之后爬取微信朋友圈的实战演练做铺垫. 4.2.1 用Android Studio 连接夜神模拟器 要操控手机App,得先连接到手机.前面安装的夜神模拟器就是用来模拟An ...

  6. python统计套利_统计套利初步尝试——组合建立(一)

    近期突发奇想,想对统计套利在商品期货市场的应用进行一些初步尝试,不是什么新方法,如<圣经>中的一句老话:太阳底下没有新鲜事.只希望能抛砖引玉,得到更多前辈的指导.废话不多,直入正题: 一. ...

  7. ros+ Optitrack控制bebop2无人机

    准备工作: Motive的安装及使用:https://blog.csdn.net/weixin_41536025/article/details/89913961 ros订阅 OptiTrack 的消 ...

  8. 2018-10-27 初步尝试将传统学科的内容程序/数据化

    前文它山之石-日本推广编程中使用日语命名的渊源之后, 唤起了以前的一个想法: 将尽可能多的教科书知识(从小学开始)用程序+数据整理表达, 比如梯形定义,面积, 主谓宾语法, 电流公式, 煤矿富集的省份 ...

  9. 初步尝试将传统学科的内容程序/数据化 2018-10-27

    前文它山之石-日本推广编程中使用日语命名的渊源之后, 唤起了以前的一个想法: 将尽可能多的教科书知识(从小学开始)用程序+数据整理表达, 比如梯形定义,面积, 主谓宾语法, 电流公式, 煤矿富集的省份 ...

最新文章

  1. 用python管理自己的密码
  2. linux终端名字怎么改,Ubuntu系统把终端用户名改成红色的技巧
  3. Swoole安装popen()找不到
  4. 新海诚没有参与制作的作品_继《你的名字》之后,新海诚又出新作啦!!
  5. 洛谷P1912:诗人小G(二分栈、决策单调性)
  6. php session redis db,php session redis 配置
  7. 计算机与信息专业综合试题,计算机与信息专业综合试题(有答案)适合事业单位考试...
  8. python 可视化界面 打开excel_python如何将excel数据处理可视化
  9. DSPE-PEG-Hydroxyl DSPE-PEG-OH 磷脂-聚乙二醇-羟基概述
  10. ansys中ex是什么意思_ansys命令流mp,ex
  11. SSD算法详解 及其 keras实现 (下)
  12. 手机摄像头+Matlab完成图像的自动识别
  13. ProxySQL 配置详解及读写分离(+GTID)等功能说明 (完整篇)2
  14. 三星修复软件+连接三星认证服务器,三星云服务从2月6日起不再支持第三方应用程序数据备份...
  15. Maltrail恶意流量检测系统
  16. 有什么高效的Windows笔记软件?3款优秀的笔记软件推荐!
  17. python求定积分和不定积分_python快速求解不定积分和定积分
  18. Verilog HDL|实验项目六例
  19. Acwing 905. 区间选点
  20. 通过Python对的大理石接触分析

热门文章

  1. 查找组成一个偶数最接近的两个素数
  2. android eclipse debug coredump,Android P 开启抓取Coredump功能
  3. 2022年全球及中国平权行动合规服务行业头部企业市场占有率及排名调研报告
  4. jQuery之从零开始的学习(完整)
  5. 安卓APP逆向百集完整版
  6. java aspose 加水印_Aspose.Words使用教程之如何在文档中添加水印
  7. 破解和盗版组织大揭密
  8. Java day13——API(2)正则表达式、StringBuilder、包装类、Collection集合
  9. Vant 2 - 移动端 Vue 组件库 _ 问题记录
  10. 【FOFA操作】fofa检索使用thinkphp框架的网站