px4+vins+ego单机鲁棒飞行一(px4+mavros篇)
px4+vins+ego单机鲁棒飞行一(px4+mavros篇)
- 一、mavors安装
- 二、mavros中的重要插件Plugins
- 三、mavros中的重要topic
- 四、mavros中的tf树
- 五、px4校准
- 六、px4配置
- 七、固件编译
一、mavors安装
参考教程
- 添加用户权限
sudo usermod -a -G dialout $USER
- 二进制安装mavros
sudo apt-get install ros-melodic-mavros ros-melodic-mavros-extras ros-melodic-control-toolbox
- 安装GeographicLib
cd /opt/ros/melodic/lib/mavros
sudo ./install_geographiclib_datasets.sh
- 测试
如果是通过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校准
可参考:参考一
Airframe
选择3DR DIY Quad或者DJI F450等相符的。Sensors传感器校准
Radio遥控器校准
Flight Modes
Power
5.1 校正电压计
5.2 校正电调ESCMotors
测试电机转向是否正确,如果不正确,任意调换两根三相电源线。如果ID不对,则调整对应的电调数据线。
Safety
可视个人情况调整。
六、px4配置
- 固件
px4固件1.11.3
有的固件不会出来world tf树,比如1.12.0 - 解锁提示“Flying with usb is not safe”
原因:使用的是micro usb连接
解决办法:QGC参数表中设置CBRK_USB_CHK=197848 - 解锁提示press safety switch first
原因:没有按GPS模块上的安全开关
解决办法:QGC参数表中设置CBRK_IO_SAFETY=22027 - 外部位姿估计
- 设置自动降落模式降落速度
MPC_LAND_SPEED = 0.3m/s - 设置遥控器遥感灵敏度
七、固件编译
- 下载固件
git clone https://github.com/PX4/PX4-Autopilot.git
cd ~/PX4-Autopilot
git checkout v1.11.3
git submodule update --init --recursive
- 安装依赖
cd ~/PX4-Autopilot/Tools/setup
bash ubuntu.sh
- 重启电脑
- 编译
make px4_fmu-v5_default
5.上传
make px4_fmu-v5_default upload
px4+vins+ego单机鲁棒飞行一(px4+mavros篇)相关推荐
- px4+vins+ego单机鲁棒飞行四(PX4飞控日志分析篇)
px4+vins+ego单机鲁棒飞行四(PX4飞控日志分析篇) 一.FlightPlot安装 二.记录日志 二.取出日志 三.分析日志 一.FlightPlot安装 参考博客 参考视频 二.记录日志 ...
- Ultimate SLAM:结合事件、图像和惯性测量单元,在HDR和高速场景下实现鲁棒的视觉SLAM...
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 1 摘要 事件摄像机是受生物启发的视觉传感器,输出像素级亮度变化,而不是标准亮度帧.这些相机不会受到运 ...
- 浙大开源 | VID-Fusion: 用于精确外力估计的鲁棒视觉惯性动力学里程计
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 1 摘要 近年来,四旋翼飞行器在航空运输中受到了极大的关注.在这些情况下,外力的精确估计与6自由度(D ...
- VINS-Mono:一种鲁棒且通用的单目视觉惯性系统
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 Part 1. 基本信息 本文提出了一种基于紧耦合滑动窗口非线性优化方法的单目视觉-惯性系统,来自港科 ...
- 单目相机 svd 从图像恢复3维位置_论文学习——VINSMono:一种鲁棒且通用的单目视觉惯性系统...
点击上方"视觉部落",选择"星标"公众号 精选作品,第一时间送达 文章同步首发于知乎用户yikang专栏 Part 1. 基本信息 本文提出了一种基于紧耦合滑动 ...
- 数据随机丢失情况下多传感器多速率鲁棒融合估计
问题描述 存在N个传感器进行观测,观测数据有一定概率丢失 简而言之,其中γ\gammaγ是一个随机数(非0即1),0代表数据丢失,1代表数据存在.其他的多传感器多速率表示与上篇文章一致. 下面同样对多 ...
- Robust Consistent Video Depth Estimation_具有鲁棒一致性的视频深度估计
论文 Code 核心:利用卷积神经网络训练 单张图像深度估计 优化深度图的对齐 连续优化 共同优化相机位姿参数的内外参 估计的深度图3D对齐 解决Naive alignment:提出一种更灵活变形的模 ...
- RP-VIO:面向动态环境的基于平面的鲁棒视惯融合里程计(IROS2021)
RP-VIO: Robust Plane-based Visual-Inertial Odometry for Dynamic Environments 来源:Ram K, Kharyal C, Ha ...
- Optitrack视觉定位下基于ROS及PX4搭建四旋翼多机飞行平台
Optitrack视觉定位下基于ROS及PX4搭建四旋翼多机飞行平台搭建 1 单机平台 1.1 四旋翼硬件组装 a)注意 1.2 机载板环境配置 1.3 飞控参数配置 a)注意 1.4 实飞全流程 2 ...
最新文章
- 一步一步写算法(之hash表)
- Android Studio找不到org.apache.http中的类
- memset函数及其用法,C语言memset函数详解
- postgresql 获取所有表名、字段名、字段类型、注释
- python数字转对应中文_python中将阿拉伯数字转换成中文的实现代码 | 学步园
- 机器学习基础-标准方程法-04
- jasper 获取当前日期_入侵Jasper以获取JSP页面的对象模型
- 20171213-python自动化-接口测试-jmeter-get-设置header
- 对java android 中几种单例模式写法的总结
- syslog-ng客户端,服务器配置
- PHP如何在微信中聊天_迷你微信私有聊天系统PHP源码支持PC、移动APP
- 虚拟ip工具_《跟唐老师学习云网络》 - ip命令
- scipy.stats —— 概率、随机变量与分布
- 机器学习和ai哪个好_AI可以使您成为更好的运动员吗? 使用机器学习分析网球发球和罚球...
- 图解设计模式-Chain Of Responsibility模式
- 漏洞扫描工具AppScan下载网盘
- 《计算机网络(第7版)》-谢希仁
- rup 裁剪_小型软件项目RUP裁剪模型的研究
- 云服务器搭建个人博客
- 为知笔记保存为html,为知笔记怎么保存网页 为知笔记保存网页教程
热门文章
- 10205以下需要使用kfed或者dd命令备份asm disk header
- Java线程通信的几种方式
- MATLAB绘制箱线图
- Elasticsearch与Solr
- egret帧动画与粒子动画_动画基础知识:了解粒子
- maters保时捷啥时候升级鸿蒙,华为Mate RS保时捷版刷机教程_MateRS强刷升级更新官方系统包...
- (四)STM32F407总线架构、时钟系统配置相关的函数,IO 引脚复用器和映射,NVIC中断管理,寄存器地址映射
- Redis连接池配置详解
- python字符串转16进制_Python十六进制与字符串的转换
- laravel-admin 上传头像 巨坑