当前位置: 首页 > news >正文

demon drone 200无人机标定流程

demon drone 200无人机标定流程

  • 一、飞控固件更新
    • 1.1 固件更新
    • 1.2 参数更新
  • 二、imu标定
    • 2.1 安装imu标定工具(在你自己的电脑上)
    • 2.2 录制rosbag(在对应飞机上)
    • 2.3 运行标定程序(在你自己的电脑上)
  • 三、双目及imu联合标定
    • 3.1 安装标定工具(参考2.1)
    • 3.2 录制rosbag
    • 3.3 运行标定程序
    • 3.4 注意事项
  • 四、程序参数更新

一、飞控固件更新

飞控固件按需更新。参考QQ群:562983648,官方说明

1.1 固件更新

需要按照要求更新1.13.3对应的bootloader和固件。

1.2 参数更新

刷新参数,并重新标定传感器。

二、imu标定

2.1 安装imu标定工具(在你自己的电脑上)

# 我的这个git库中包含了imu标定和相机标定程序
git clone https://gitee.com/nankel/kalibr_workspace.git
cd kalibr_workspace
catkin_make

注意:可能会出错,src中code_utilsimu_utils有顺序要求,可以忽略错误多次catkin_make。详细内容可以参考我之前的博客D435i标定摄像头和IMU笔记三(IMU标定篇)中的港科大标定方法。

注意:不要忘了将setup.bash加入~/.bashrc中。

2.2 录制rosbag(在对应飞机上)

# 1、启动mavros
roslaunch mavros px4.launch# 2、确认imu频率。确保imu发送频率大于200Hz,本无人机一般为250Hz。
rostopic hz /mavros/imu/data_raw# 3、静止不动30分钟(事实上几分钟也行,最好久一点),录制rosbag。会在当前路径生成imu.bag文件
rosbag record -O imu /mavros/imu/data_raw# 4、将rosbag复制到运行标定程序的电脑。U盘复制或者局域网scp复制

2.3 运行标定程序(在你自己的电脑上)

1)修改程序配置
launch路径:kalibr_workspace/src/imu_utils/launch/nankel_imuCali.launch
内容及注释如下:

<launch><node pkg="imu_utils" type="imu_an" name="imu_an" output="screen"><param name="imu_topic" type="string" value= "/mavros/imu/data_raw"/>  <!-- imu话题名 --><param name="imu_name" type="string" value= "demon_mini_imu"/>     <!-- imu名,随便改 --><param name="data_save_path" type="string" value= "$(find imu_utils)/data/"/>  <!-- 标定数据保存地址 --><param name="max_time_min" type="int" value= "30"/>   <!-- 标定最短时长(分钟),可以自行更改,要比实际录制短,要不然不会停--><param name="max_cluster" type="int" value= "100"/></node>
</launch>

注意:按照此脚本,结果文件将保存于kalibr_workspace/src/imu_utils/data

2)运行程序

# 1、运行程序
roslaunch imu_utils nankel_imuCali.launch
# 2、400倍速播放rosbag
rosbag play -r 400 imu.bag

3)保存标定参数
新建imu.yaml文件,后面联合标定会用到,里面的数据更新为标定数据:

rostopic: /mavros/imu/data_raw
update_rate: 250.0 #Hzgyroscope_noise_density: 0.00302857381362
gyroscope_random_walk: 3.00373059934e-05accelerometer_noise_density: 0.0272600517598
accelerometer_random_walk: 0.000579817988633

三、双目及imu联合标定

3.1 安装标定工具(参考2.1)

3.2 录制rosbag

# 1、启动双目程序
roslaunch stereo stereo.launch
# 2、启动mavros
roslaunch mavros px4.launch# 3、录制rosbag(录制过程要上下左右前后各运动两次)
rosbag record -O stereo_imu  /mavros/imu/data_raw /stereo/left/image_raw /stereo/right/image_raw# 4、将rosbag复制到运行标定程序的电脑。U盘复制或者局域网scp复制

注意:如果想要弹出双目图像,可以使用rviz观看图像。或者修改配置demon_drone_ws/src/stereo/launch/stereo_config.yamlif_show_orig: 1

注意:建议使用台式电脑,不然标定时长将会很久。

3.3 运行标定程序

也可以参考我之前的博客:D435i标定摄像头和IMU笔记四-2(双目摄像头与IMU联合标定篇)

1、准备标定板文件checkerboard.yaml

target_type: 'checkerboard' #gridtype
targetCols: 5               # 标定板内角数量(列)
targetRows: 8               # 标定板内角数量(行)
rowSpacingMeters: 0.045     #size of one chessboard square [m]
colSpacingMeters: 0.045     #size of one chessboard square [m]

2、运行标定程序

# 1、标定双目相机
kalibr_calibrate_cameras --target checkerboard.yaml --bag stereo_imu.bag --models pinhole-radtan pinhole-radtan --topics /stereo/left/image_raw /stereo/right/image_raw# 2、联合标定双目相机和imu(要等待双目标定结束)
kalibr_calibrate_imu_camera --target checkerboard.yaml --cam camchain-stereo_imu.yaml --imu imu/imu.yaml --bag stereo_imu.bag

3、标定结果文件:results-imucam-imu_stereo.txt:

3.4 注意事项

注意:
1、观察相机标定误差,一般在1个像素以内。
2、观察联合标定误差,一般2个像素以内。
3、imu和相机时差一般是负数0~-0.06以内。

四、程序参数更新

1、将标定文件results-imucam-imu_stereo.txt复制到/home/khadas/demon_packages/demon_drone_ws/src/stereo/launch/results-imucam-stereo_imu.txt下。

2、运行自动更新脚本

cd /home/khadas/demon_packages/demon_drone_ws/src/stereo/launch && python3 config.py

3、移动配置文件
移动vins所需文件:可见/home/khadas/demon_packages/demon_drone_ws/src/VINS-Fusion/config/stereo中文件

4、大功告成,运行程序:可见脚本/home/khadas/demon_packages/demon_drone_ws/scipts/fpv_ego.sh

相关文章:

demon drone 200无人机标定流程

demon drone 200无人机标定流程 一、飞控固件更新1.1 固件更新1.2 参数更新 二、imu标定2.1 安装imu标定工具&#xff08;在你自己的电脑上&#xff09;2.2 录制rosbag(在对应飞机上)2.3 运行标定程序&#xff08;在你自己的电脑上&#xff09; 三、双目及imu联合标定3.1 安装标…...

案例开发-日程管理-第一期

九 案例开发-日程管理-第一期 共7期 9.1 登录页及校验 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><style>.ht{text-align: center;color: cadetblue;font-family: 幼…...

【Java 注解,自定义注解,元注解,注解本质,注解解析】

文章目录 什么是注解&#xff1f;Java内置注解自定义注解元注解注解的本质注解解析 什么是注解&#xff1f; 注解是Java编程语言中的一种元数据&#xff0c;提供了有关程序的额外信息。注解以符号开始&#xff0c;紧跟着注解的名称和一对括号&#xff0c;括号内包含注解的参数…...

染色法判定二分图

什么是二分图&#xff1f; 二分图&#xff0c;也称作二部图&#xff0c;是图论中的一种特殊模型。在一个无向图G(V,E) 中&#xff0c;如果顶点集合 V 可以被分割成两个互不相交的子集 A 和 B&#xff0c;并且图中的每条边 (i,j) 关联的两个顶点 i 和 j 分别属于这两个不同的顶…...

自动气象站的主要功能优势

在科技日新月异的今天&#xff0c;我们生活的方方面面都受到了科技的影响。其中&#xff0c;自动气象站作为气象观测领域的重要一环&#xff0c;不仅提升了气象数据的准确性和时效性&#xff0c;还为我们的日常生活、农业生产、灾害预防等提供了重要的数据支持。 自动气象站概述…...

Java中实现二维数组(矩阵)的转置

在矩阵运算中&#xff0c;矩阵的转置是一个基本操作&#xff0c;即将矩阵的行变成列&#xff0c;列变成行。在Java中&#xff0c;我们可以通过编写一个方法来实现二维数组的转置。下面&#xff0c;我将详细介绍如何在Java中完成这一任务&#xff0c;并提供完整的代码示例。 编…...

Prometheus+Grafana主机运行数据

目录 介绍 安装Node Exporter 配置Prometheus 验证配置 导入仪表盘 介绍 Prometheus是一款开源的监控和警报工具&#xff0c;而Node Exporter是Prometheus的一个官方插件&#xff0c;用于采集主机上的各种系统和硬件指标。 安装Node Exporter 下载最新版本的Node Export…...

GraphQL在Postman中:释放API查询的强大潜能

&#x1f680; GraphQL在Postman中&#xff1a;释放API查询的强大潜能 Postman作为API开发和测试的领先工具&#xff0c;对GraphQL的支持为开发者提供了一种新的方式来查询和管理数据。GraphQL是一种查询语言&#xff0c;用于API&#xff0c;允许客户端明确指定他们需要哪些数…...

大语言模型里的微调vs RAG vs 模板提示词

文章目录 介绍微调&#xff08;Fine-tuning&#xff09;定义优点&#xff1a;缺点&#xff1a;应用场景&#xff1a;技术细节 检索增强生成&#xff08;RAG&#xff0c;Retrieval-Augmented Generation&#xff09;定义优点&#xff1a;缺点&#xff1a;应用场景&#xff1a;技…...

网络编程:常用网络测试工具

telnet netstat ping arp wireshark&#xff08;网络抓包工具&#xff09; tcpdumpssh2 secure crt ——软件工具sudo ufw disable sudo apt-get install openssh-server openssh-client //两个命令敲完 得重启sudo apt-get install wireshark 1、telnet 远程登录工具&…...

mov视频怎么改成mp4?把mov改成MP4的四个方法

mov视频怎么改成mp4&#xff1f;选择合适的视频格式对于确保内容质量和流通性至关重要。尽管苹果公司的mov格式因其出色的视频表现备受赞誉&#xff0c;但在某些情况下&#xff0c;它并非最佳选择&#xff0c;因为使用mov格式可能面临一些挑战。MP4格式在各种设备&#xff08;如…...

力扣1472.设计浏览器历史记录

力扣1472.设计浏览器历史记录 用双指针记录历史记录 以及栈顶高度移动时会直接把之前的记录消掉 class BrowserHistory {int pos-1;int top0;string history[5010];public:BrowserHistory(string homepage) {visit(homepage);}void visit(string url) {pos ;top pos;histor…...

准大一新生开学千万要带证件照用途大揭秘

1、提前关注好都有哪些考场&#xff0c;以及这些考场大致在网页的哪个位置。比如我选对外经贸大学&#xff0c;我就直接找到第二个点进去。 2、电脑上同时开了谷歌浏览器和IE浏览器&#xff0c;以及手机也登陆了。亲测下来&#xff0c;同一时间刷新&#xff0c;谷歌浏览器能显示…...

QImage显示图片像素

在Qt中&#xff0c;QImage 类是用来表示和处理图像的。如果你想查看或显示一个图片的像素数据&#xff0c;你可以使用 QImage 提供的方法来访问这些数据。以下是一些基本的方法来获取和显示图片的像素信息&#xff1a; 获取图像的像素格式&#xff1a; 使用 QImage::format() …...

uniapp使用高德地图(公众号+h5)

选择微信小程序的话后果就是你的地图出不来&#xff0c;出来了就报key异常 下面直接放配置和代码&#xff1a; 打包后的高德uni-app,uniCloud,serverless,高德地图,申请高德地图Key,配置使用高德地图,参数说明,高德开放平台用户名,百度地图,申请百度地图Key,配置使用百度地图,…...

深度学习与浅层学习:技术变革下的竞争态势

深度学习与浅层学习&#xff1a;技术变革下的竞争态势 在过去十年中&#xff0c;深度学习的崛起对整个人工智能领域产生了巨大影响&#xff0c;几乎在各种任务中显示出超越传统浅层学习方法的性能。这种变化不仅推动了技术的进步&#xff0c;还对硬件市场&#xff0c;尤其是显…...

LeetCode 219. 存在重复元素 II

LeetCode 219. 存在重复元素 II 给你一个整数数组 nums 和一个整数 k &#xff0c;判断数组中是否存在两个 不同的索引 i 和 j &#xff0c;满足 nums[i] nums[j] 且 abs(i - j) < k 。如果存在&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 示例 1&am…...

【目标检测】使用自己的数据集训练并预测yolov8模型

1、下载yolov8的官方代码 地址&#xff1a; GitHub - ultralytics/ultralytics: NEW - YOLOv8 &#x1f680; in PyTorch > ONNX > OpenVINO > CoreML > TFLite 2、下载目标检测的训练权重 yolov8n.pt 将 yolov8n.pt 放在ultralytics文件夹下 3、数据集分布 注…...

应用监控SkyWalking调研

参考&#xff1a; 链路追踪( Skyworking )_skywalking-CSDN博客 企业级监控项目Skywalking详细介绍&#xff0c;来看看呀-CSDN博客 SkyWalking 极简入门 | Apache SkyWalking 使用 SkyWalking 监控 ClickHouse Server | Apache SkyWalking https://zhuanlan.zhihu.com/p/3…...

Selenium使用注意事项:

find_element 和 find_elements 的区别 WebDriver和WebElement的区别 问题&#xff1a; 会遇到报错&#xff1a; selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector",&…...

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库&#xff0c;特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具

作者&#xff1a;来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗&#xff1f;了解下一期 Elasticsearch Engineer 培训的时间吧&#xff01; Elasticsearch 拥有众多新功能&#xff0c;助你为自己…...

Oracle查询表空间大小

1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

AtCoder 第409​场初级竞赛 A~E题解

A Conflict 【题目链接】 原题链接&#xff1a;A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串&#xff0c;只有在同时为 o 时输出 Yes 并结束程序&#xff0c;否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

ServerTrust 并非唯一

NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...

GC1808高性能24位立体声音频ADC芯片解析

1. 芯片概述 GC1808是一款24位立体声音频模数转换器&#xff08;ADC&#xff09;&#xff0c;支持8kHz~96kHz采样率&#xff0c;集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器&#xff0c;适用于高保真音频采集场景。 2. 核心特性 高精度&#xff1a;24位分辨率&#xff0c…...

Linux 中如何提取压缩文件 ?

Linux 是一种流行的开源操作系统&#xff0c;它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间&#xff0c;使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的&#xff0c;要在 …...

Selenium常用函数介绍

目录 一&#xff0c;元素定位 1.1 cssSeector 1.2 xpath 二&#xff0c;操作测试对象 三&#xff0c;窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四&#xff0c;弹窗 五&#xff0c;等待 六&#xff0c;导航 七&#xff0c;文件上传 …...

jmeter聚合报告中参数详解

sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample&#xff08;样本数&#xff09; 表示测试中发送的请求数量&#xff0c;即测试执行了多少次请求。 单位&#xff0c;以个或者次数表示。 示例&#xff1a;…...