px4+vins+ego单机鲁棒飞行一(px4+mavros篇)

  • 一、mavors安装
  • 二、mavros中的重要插件Plugins
  • 三、mavros中的重要topic
  • 四、mavros中的tf树
  • 五、px4校准
  • 六、px4配置
  • 七、固件编译

一、mavors安装

参考教程

  1. 添加用户权限
sudo usermod -a -G dialout $USER
  1. 二进制安装mavros
sudo apt-get install ros-melodic-mavros ros-melodic-mavros-extras ros-melodic-control-toolbox
  1. 安装GeographicLib
cd /opt/ros/melodic/lib/mavros
sudo ./install_geographiclib_datasets.sh
  1. 测试
    如果是通过Micro USB连接,则:
roslaunch mavros px4.launch fcu_url:="/dev/ttyACM0:921600" gcs_url:=udp-b://@

如果是通过USB转TTL连接,则:

roslaunch mavros px4.launch fcu_url:="/dev/ttyUSB0:921600" gcs_url:=udp-b://@

二、mavros中的重要插件Plugins

参考:、官方wiki、官方wiki扩充、官方msg大全、飞行模式
PS:想要用哪个插件,就必须放在白名单中
2.1 3dr_radio
作用:发布无线电状态,用于APM and PX4的3DR Radio数传
发送topic:/mavros/radio_status
msg信息:mavros_msgs/RadioStatus

2.2 actuator_control
作用:向FCU发送执行器命令
订阅topic:mavros_msgs/ActuatorControl
msg信息:mavros_msgs/ActuatorControl

2.3 vision_pose_estimate
作用:向px4发送视觉里程计,用于位姿融合
订阅topic:/mavros/vision_pose/pose
msg信息:geometry_msgs/PoseStamped

2.4 setpoint_raw
作用:设置目标(视觉估计为local,GPS为global,气压计为attitude)
订阅topic:/mavros/setpoint_raw/local、/mavros/setpoint_raw/global、/mavros/setpoint_raw/attitude
msg信息:mavros_msgs/PositionTarget、mavros_msgs/GlobalPositionTarget、mavros_msgs/AttitudeTarget
注:类似插件有setpoint_accel、setpoint_attitude、setpoint_position、setpoint_velocity
,但我一般只用setpoint_raw插件中的/mavros/setpoint_raw/local,用来设置无人机的目标位置(ego-planner中发送的就是这个对应的消息类型)。

2.5 local_position
作用:Local position from FCU,Velocity data from FCU。
发送topic:/mavros/local_position/pose、/mavros/local_position/velocity
msg信息:geometry_msgs/PoseStamped、geometry_msgs/TwistStamped

2.6 manual_control(user input)
作用:遥控器数值的订阅与发送
订阅topic:/mavros/manual_control/send
发送topic:/mavros/manual_control/control
msg信息:mavros_msgs/ManualControl、mavros_msgs/ManualControl

2.7 rc_io
作用:发布遥控器信息,也可以对遥控器进行override,但是不建议。实在想用override,建议用setpoint plugins and OFFBOARD mode
订阅topic:/mavros/rc/override
发布topic:/mavros/rc/in(Publish RC inputs (in raw milliseconds) )、/mavrosrc/out(Publish FCU servo outputs )
msg信息:mavros_msgs/OverrideRCIn、mavros_msgs/RCIn、mavros_msgs/RCOut

2.8 safety_area
作用:Sends safety allowed area to FCU. Initial area can be loaded from parameters
订阅topic:/mavros/safety_area/set
msg:geometry_msgs/PolygonStamped

2.9 sys_status
作用:System status plugin. Handles FCU detection. REQUIRED never blacklist it!.
发送topic:/mavros/state、/mavros/battery、/mavros/extended_state(Landing detector and VTOL state)
Services:/mavros/set_mode
msg:mavros_msgs/State、mavros_msgs/BatteryStatus、mavros_msgs/ExtendedState、mavros_msgs/SetMode

2.10 command
作用:向PX4飞控发送命令
Services:/mavros/cmd/command、/mavros/cmd/command_int、/mavros/cmd/arming 、/mavros/cmd/set_home、/mavros/cmd/takeoff、/mavros/cmd/land 、/mavros/cmd/trigger_control
msg:略

三、mavros中的重要topic

除上述提到的topic外,还有些重要的topic。
3.1 /mavros/local_position/odom
msg:nav_msgs/Odometry

四、mavros中的tf树

4.1 如果想要将vins中的tf中的world同mavros连起来,需要修改mavros的配置文件px4_config.yaml文件,如果是二进制安装,则在/opt/ros//melodic/share/mavros/launch下的px4_config.yaml中:

local_position:frame_id: "world"tf:send: trueframe_id: "world"child_frame_id: "base_link"send_fcu: true

4.2 如果想将bash_link同D435i发布的camera_link连接起来,则需要添加一个静态tf变换的launch文件:

<node pkg="tf" type="static_transform_publisher" name="body_to_base_link" args="0.13 0 0 -1.57 0 -1.57 /base_link /camera_link 30" />

因为在x方向摄像头在前方,所以添加一个0.13m的位移变换,又摄像头FRU左边线和车身的ENU坐标系的x,y刚好换了,所以在z轴旋转pi/2,对比vins原始数据,还需要在roll上旋转pi/2。总而言之,是为了另转换后的camer_link和vins的里程计信息一模一样。

五、px4校准

可参考:参考一

  1. Airframe
    选择3DR DIY Quad或者DJI F450等相符的。

  2. Sensors传感器校准

  3. Radio遥控器校准

  4. Flight Modes

  5. Power
    5.1 校正电压计
    5.2 校正电调ESC

  6. Motors
    测试电机转向是否正确,如果不正确,任意调换两根三相电源线。如果ID不对,则调整对应的电调数据线。

  7. Safety
    可视个人情况调整。

六、px4配置

  1. 固件
    px4固件1.11.3
    有的固件不会出来world tf树,比如1.12.0
  2. 解锁提示“Flying with usb is not safe”
    原因:使用的是micro usb连接
    解决办法:QGC参数表中设置CBRK_USB_CHK=197848
  3. 解锁提示press safety switch first
    原因:没有按GPS模块上的安全开关
    解决办法:QGC参数表中设置CBRK_IO_SAFETY=22027
  4. 外部位姿估计
  5. 设置自动降落模式降落速度
    MPC_LAND_SPEED = 0.3m/s
  6. 设置遥控器遥感灵敏度

七、固件编译

  1. 下载固件
git clone https://github.com/PX4/PX4-Autopilot.git
cd ~/PX4-Autopilot
git checkout v1.11.3
git submodule update --init --recursive
  1. 安装依赖
cd ~/PX4-Autopilot/Tools/setup
bash ubuntu.sh
  1. 重启电脑
  2. 编译
make px4_fmu-v5_default

5.上传

make px4_fmu-v5_default upload

px4+vins+ego单机鲁棒飞行一(px4+mavros篇)相关推荐

  1. px4+vins+ego单机鲁棒飞行四(PX4飞控日志分析篇)

    px4+vins+ego单机鲁棒飞行四(PX4飞控日志分析篇) 一.FlightPlot安装 二.记录日志 二.取出日志 三.分析日志 一.FlightPlot安装 参考博客 参考视频 二.记录日志 ...

  2. Ultimate SLAM:结合事件、图像和惯性测量单元,在HDR和高速场景下实现鲁棒的视觉SLAM...

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 1 摘要 事件摄像机是受生物启发的视觉传感器,输出像素级亮度变化,而不是标准亮度帧.这些相机不会受到运 ...

  3. 浙大开源 | VID-Fusion: 用于精确外力估计的鲁棒视觉惯性动力学里程计

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 1 摘要 近年来,四旋翼飞行器在航空运输中受到了极大的关注.在这些情况下,外力的精确估计与6自由度(D ...

  4. VINS-Mono:一种鲁棒且通用的单目视觉惯性系统

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 Part 1. 基本信息 本文提出了一种基于紧耦合滑动窗口非线性优化方法的单目视觉-惯性系统,来自港科 ...

  5. 单目相机 svd 从图像恢复3维位置_论文学习——VINSMono:一种鲁棒且通用的单目视觉惯性系统...

    点击上方"视觉部落",选择"星标"公众号 精选作品,第一时间送达 文章同步首发于知乎用户yikang专栏 Part 1. 基本信息 本文提出了一种基于紧耦合滑动 ...

  6. 数据随机丢失情况下多传感器多速率鲁棒融合估计

    问题描述 存在N个传感器进行观测,观测数据有一定概率丢失 简而言之,其中γ\gammaγ是一个随机数(非0即1),0代表数据丢失,1代表数据存在.其他的多传感器多速率表示与上篇文章一致. 下面同样对多 ...

  7. Robust Consistent Video Depth Estimation_具有鲁棒一致性的视频深度估计

    论文 Code 核心:利用卷积神经网络训练 单张图像深度估计 优化深度图的对齐 连续优化 共同优化相机位姿参数的内外参 估计的深度图3D对齐 解决Naive alignment:提出一种更灵活变形的模 ...

  8. RP-VIO:面向动态环境的基于平面的鲁棒视惯融合里程计(IROS2021)

    RP-VIO: Robust Plane-based Visual-Inertial Odometry for Dynamic Environments 来源:Ram K, Kharyal C, Ha ...

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

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

最新文章

  1. 一步一步写算法(之hash表)
  2. Android Studio找不到org.apache.http中的类
  3. memset函数及其用法,C语言memset函数详解
  4. postgresql 获取所有表名、字段名、字段类型、注释
  5. python数字转对应中文_python中将阿拉伯数字转换成中文的实现代码 | 学步园
  6. 机器学习基础-标准方程法-04
  7. jasper 获取当前日期_入侵Jasper以获取JSP页面的对象模型
  8. 20171213-python自动化-接口测试-jmeter-get-设置header
  9. 对java android 中几种单例模式写法的总结
  10. syslog-ng客户端,服务器配置
  11. PHP如何在微信中聊天_迷你微信私有聊天系统PHP源码支持PC、移动APP
  12. 虚拟ip工具_《跟唐老师学习云网络》 - ip命令
  13. scipy.stats —— 概率、随机变量与分布
  14. 机器学习和ai哪个好_AI可以使您成为更好的运动员吗? 使用机器学习分析网球发球和罚球...
  15. 图解设计模式-Chain Of Responsibility模式
  16. 漏洞扫描工具AppScan下载网盘
  17. 《计算机网络(第7版)》-谢希仁
  18. rup 裁剪_小型软件项目RUP裁剪模型的研究
  19. 云服务器搭建个人博客
  20. 为知笔记保存为html,为知笔记怎么保存网页 为知笔记保存网页教程

热门文章

  1. 10205以下需要使用kfed或者dd命令备份asm disk header
  2. Java线程通信的几种方式
  3. MATLAB绘制箱线图
  4. Elasticsearch与Solr
  5. egret帧动画与粒子动画_动画基础知识:了解粒子
  6. maters保时捷啥时候升级鸿蒙,华为Mate RS保时捷版刷机教程_MateRS强刷升级更新官方系统包...
  7. (四)STM32F407总线架构、时钟系统配置相关的函数,IO 引脚复用器和映射,NVIC中断管理,寄存器地址映射
  8. Redis连接池配置详解
  9. python字符串转16进制_Python十六进制与字符串的转换
  10. laravel-admin 上传头像 巨坑