当前位置: 首页 > 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",&…...

使用VSCode开发Django指南

使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架&#xff0c;专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用&#xff0c;其中包含三个使用通用基本模板的页面。在此…...

CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型

CVPR 2025 | MIMO&#xff1a;支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题&#xff1a;MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者&#xff1a;Yanyuan Chen, Dexuan Xu, Yu Hu…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件

在选煤厂、化工厂、钢铁厂等过程生产型企业&#xff0c;其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进&#xff0c;需提前预防假检、错检、漏检&#xff0c;推动智慧生产运维系统数据的流动和现场赋能应用。同时&#xff0c;…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库&#xff0c;获取股票数据&#xff0c;并生成TabPFN这个模型 可以识别、处理的格式&#xff0c;写一个完整的预处理示例&#xff0c;并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务&#xff0c;进行预测并输…...

大语言模型如何处理长文本?常用文本分割技术详解

为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

拉力测试cuda pytorch 把 4070显卡拉满

import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试&#xff0c;通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小&#xff0c;增大可提高计算复杂度duration: 测试持续时间&#xff08;秒&…...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

Angular微前端架构:Module Federation + ngx-build-plus (Webpack)

以下是一个完整的 Angular 微前端示例&#xff0c;其中使用的是 Module Federation 和 npx-build-plus 实现了主应用&#xff08;Shell&#xff09;与子应用&#xff08;Remote&#xff09;的集成。 &#x1f6e0;️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

以光量子为例,详解量子获取方式

光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学&#xff08;silicon photonics&#xff09;的光波导&#xff08;optical waveguide&#xff09;芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中&#xff0c;光既是波又是粒子。光子本…...

莫兰迪高级灰总结计划简约商务通用PPT模版

莫兰迪高级灰总结计划简约商务通用PPT模版&#xff0c;莫兰迪调色板清新简约工作汇报PPT模版&#xff0c;莫兰迪时尚风极简设计PPT模版&#xff0c;大学生毕业论文答辩PPT模版&#xff0c;莫兰迪配色总结计划简约商务通用PPT模版&#xff0c;莫兰迪商务汇报PPT模版&#xff0c;…...