本文将一些注意点记录下来,适合于开发调试:

  1. 目前只是分段调试通了,带后续联合开发的时候在来补充还有没有什么注意点(过程也算麻烦,也算不麻烦);
  2. ROS组网,optitrack 台式机(windows系统)与 ROS服务器(这里称为服务器,感觉比较合适),四旋翼在同一个局域网内。其中四旋翼本次采用Pixracer (烧录px4,v1.10.1版本), 通过tel2与树莓派链接,树莓派采用4B型号,烧录ubuntu mate18.04版本,安装ros-melodic。
  3. 期间需要树莓派当master,第一开始采用的是服务器当master,没有成功。这个地方仍然需要后续考虑。也就是说我把服务器当master, 并且完成optitrack的数据转发。将树莓派当做slave加入到master。此时,master中可以看到所有树莓派上提供的消息并且显示,px4飞控无法收到/mavros/vision_pose/pose,且最后查/mavros/local_position/pose没有数据。这个地方需要注意的是master和slaver都要将自己的IP和命名放在etc/hosts中,才可以完成互相的通信。
  4. 服务器上可以采用rosbag record -a 来记录所有的消息信息。(如果需要画曲线的话,建议吧rosbag放在树莓派上进行,cpu负载率50%左右,还是可以接受的)ROS中记录数据与回放,然后在matlab中解析Rosbag,rosbag-matlab。这个地方参照的是
bag = rosbag('ex_multiple_topics.bag');
bSel = select(bag,'Topic','/turtle1/pose');
msgStructs = readMessages(bSel,'DataFormat','struct');
xPoints = cellfun(@(m) double(m.X),msgStructs);
yPoints = cellfun(@(m) double(m.Y),msgStructs);
plot(xPoints,yPoints)

这里,我们可以把他写成matlab脚本文件,就可以当飞行数据显示在matlab中了。
5. 期间修改了px4中mavlink发送频率,由于要进行姿态控制,所以将频率都提到了最高。如果进行位置控制,则可以忽略。
6. 在vrpn_client_node包中的sample.launch中,修改了一个同步时间的参数use_server_time:本来默认参数为false,结果被我修改成了true。造成在消息中查看vision_pose是正确存在的,local_position/pose中刚开始有参数,一会之后就发散然后变成0了。这个时候在QGC中进行查看,首先在mavlink_console中的local_position是确定为0的,然后在查看ls /obj,找到vehicle_visiual_odometry中是正确的数值,表示px4代码是收到了正确的optitrack数据的,紧接着又查看了ekf2中的status,发现此时local_position_estimator 显示invalid。 很是无语,此时猜测EKF2某些参数造成他发散了(其实后来在源码中发现了有一个超时的选项的,这个是通过ekf2 invalid 顺藤摸瓜找到的),尝试着修改了一些EKF2的延迟参数,无果。转而将代码修改成LPE模式,不在使用EKF2(在rc中修改ekf2 start 替换成local position estmator start 没有用,在QGC中system选现中可以进行修改),再成功修改成LPE模式后,再次启动程序,发现在树莓派中一段时间后总是显示LPE 超时,这个时候我才意识到可能是同步时间出了问题,以前修改过sample中的一个和时间同步有关的参数。最后,修改过来之后,一切都正常了。
7. optitrack 可以提升传输速率,最大200Hz。
8. 在多机飞行是,按照上述完成配置,出现一种情况,/uav1/mavros/vision_pose/pose是确定已经发送过去了,按照第6步的操作,在地面站中查看vehicle_visual_odometry也是存在正确的数据的。飞控收到数据,但是local_position没有数据的原因,应该是vision_pose的数据和飞控中的数据时间戳没有对上,造成飞控中ekf的解算发散了,解决方法是需要同步时间。可以采用的方法是在添加一个Node,只进行时间戳到修改。
9. 减少路由器延时及树莓派5G自动断线重连问题。(该问题由师弟整理)
a. 打开浏览器,进入192.168.50.1,登录路由器设置界面。
b. 更改路由器地区,改为US。(树莓派wifi地区也改为美国。) 无线网络->专业设置->地区

c. 更改ASUS_10_5G信道。无线网络->一般设置->频道(设为36~40之间,该信段使用较少)
->频道带宽(设为20,带宽越小传输距离约远,抗干扰能力越强)

基于ROS与optitrack的四旋翼飞机开发流程相关推荐

  1. Optitrack视觉定位下基于ROS及PX4搭建四旋翼多机飞行平台

    Optitrack视觉定位下基于ROS及PX4搭建四旋翼多机飞行平台搭建 1 单机平台 1.1 四旋翼硬件组装 a)注意 1.2 机载板环境配置 1.3 飞控参数配置 a)注意 1.4 实飞全流程 2 ...

  2. 基于ROS的18届中航杯比赛流程实现

    用ROS写了个状态机,感觉流程上还可以改进,接下来优化一下 #include <ros/ros.h> #include <geometry_msgs/PoseStamped.h> ...

  3. 基于RflySim平台的底层飞控快速开发流程

    RflySim底层控制开发流程 前言 开发条件 本文使用 一.平台配置 二.开发流程-姿态控制器设计 1. 整体模型 1)搭建多旋翼仿真模型 2)设计遥控器映射信号 3)设计控制器 2. 软件在环仿真 ...

  4. 基于模型设计(MBD)的机器人开发流程

    声明:本文所有图片均截自bilibili中科深谷UP上传的公开课,仅作为个人笔记记录,侵删~ MBD:Model based design

  5. 基于ROS的无人车开发心得(一)

    基于ROS的无人车开发心得(一) 研究生的第一个寒假,已经过去十多天了,本来是想早发的,奈何有个大作业一直拦着,所以现在才写完,来总结一下这个学期学的内容,分几个部分写,上学期导师给我安排了关于无人车 ...

  6. HarmonyOS之分布式任务调度开发流程

    一.概述 ① 分布式任务调度 在 HarmonyOS 中,分布式任务调度平台对搭载 HarmonyOS 的多设备构筑的"超级虚拟终端"提供统一的组件管理能力,为应用定义统一的能力基 ...

  7. 基于ROS的移动机器人开发:视觉、语音、导航

    经过十余年的快速发展,ROS已成为当下主流的移动机器人操作系统,被各大机器人科技企业支持与使用.一些重大的自动驾驶或者机器人开源框架都是基于ROS系统进行开发的,例如:百度的Apllo和日本的Auto ...

  8. 基于AUTOSAR的AP平台的应用开发

    一.MDC工具链总览 华为的MDC在开发过程中需要使用自己的开发工具,也就是MDC工具链. MDC工具链主要是三个部分:Mind Studio.MDS以及MMC,三个开发工具各自负责一部分,完成整个M ...

  9. 基于ROS设计一款机械臂控制系统 [转发]

    ROS探索总结-66.基于ROS设计一款机械臂控制系统 ROS探索总结-66.基于ROS设计一款机械臂控制系统 说明: 介绍如何基于ROS设计一款机械臂控制系统 正文 今天我们将从以下两个方面为大家介 ...

最新文章

  1. 【radar】毫米波雷达相关资料(文献综述列表、顶会研讨会资料列表、顶会workshops资料列表、工具书、使用手册)(2)
  2. linux c warning 'XXX' declared 'static' but never defined解决方法
  3. vSphere Data Protection 6.1.2部署与配置
  4. 2020年阴阳师服务器维护,2020阴阳师2月19日更新官方公告及内容汇总
  5. 成交量与股价的关系图解
  6. windows 下后台启动 redis
  7. StringBuffer append整数0001的问题
  8. 计算任意两个圆的交点
  9. 简单RAM存储器分析
  10. 学习小实例--滚动条
  11. php处理数组函数大全
  12. Adblock PLus 插件chrome用
  13. 《计算机操作系统(慕课版)》(汤小丹著)课后习题答案
  14. 栅栏密码加密/解密【传统型】在线工具
  15. App数据抓取(Appium使用)
  16. Putnam竞赛一道题及中科大自主招生试题的联系
  17. linux 临时文件夹设置,Linux 系统 tmp 目录的安全设置
  18. lwip连续发数据卡死_用lwip发送大量数据时,遇到的问题解答记录 | 求索阁
  19. ubuntu IPV6及作为路由分配【笔记】
  20. Django的列表分页

热门文章

  1. 西安电子科技大学启智校园行活动
  2. 赏金猎人:IChunQiu云境-Spoofing Writeup
  3. [Golang]你处于使用Go语言的哪个层次,来测测吧
  4. Web运行原理(第一阶段1)
  5. DOVE-----Vue.js框架入门(七)
  6. jsx中使用onClick等方法
  7. Python基础学习-简要记录
  8. 豆瓣电影分类排行榜-剧情片-爬虫
  9. ns-3中的数据跟踪与采集——Tracing系统综述及fourth脚本
  10. STL Commom Type