无人机测试二维码降落。

news/2025/2/1 5:49:00/

一、首先要做的就是让NX板卡驱动usb摄像头:

1. 下载usb_cam软件包

sudo apt install ros-melodic-usb-cam

2. 启动相机节点:

A. 查找摄像头接口

ls /dev/video*

B. 在该路径下修改launch文件,换成你自己的摄像头接口

我这里的摄像头接口为video1
在这里插入图片描述

C.运行摄像头节点(此时就能看到画面了)

roslaunch usb_cam usb_cam-test.launch 

在这里插入图片描述
注意:如果还是报错可以试试这句命令:

sudo apt-get install ros-melodic-image-view

二、相机有画面之后就可以对相机进行标定:

把棋盘标定模板打印出来固定到一个硬纸板上,一定要保证整个图片在一个平面上,否则会影响标定效果。标定效果好坏会直接影响到后面摄像头对二维码位置的估计进而影响到二维码降落,所以重视标定过程。下载地址:棋盘标定板
在这里插入图片描述

1. 首先启动相机节点,相机ID=1(这里的id可由前面的步骤进行确定):

这里使用的是阿木实验室教程里面的USB单目相机命令,整个的标定过程可参考链接:阿木实验室

roslaunch prometheus_detection web_cam1.launch  

2. 利用ROS自带的标定程序对相机进行标定

rosrun camera_calibration cameracalibrator.py --size 9x6 --square 0.0193 image:=/prometheus/camera/rgb/image_raw

下面是标定之后的结果,有效点可以多采集一些,我这里采集了113个,当时最高采集了168,但是后面卡死了,又重新进行采集的。
在这里插入图片描述

3. 标定完之后要把终端打印的数据写到对应的文件里面,如下所示:

在这里插入图片描述
在这里插入图片描述
⭐说明
K为相机内参矩阵,distortion为畸变系数矩阵。
camera matrix:摄像头的内部参数矩阵
distortion:畸变系数矩阵
rectification:矫正矩阵,一般为单位阵
projection:外部世界坐标到像平面的投影矩阵

三、二维码检测测试

1. 通过显示屏连接板载或者通过远程工具Nomachine访问板载终端,输入如下命令,运行检测节点

roslaunch p450_experiment p450_landpad_det.launch

这里不要忘记修改相机的ID
在这里插入图片描述
在这里插入图片描述

2. 重新打开一个新终端,输入如下命令,查看检测效果(可视化)

rqt_image_view

在这里插入图片描述

四、开始进行降落

在开始降落之前还遇到两个问题:

问题1:不同的机载电脑,要设置正确的端口号和波特率🤬🤬🤬,这里要好好理解一下 “fcu_url” 这个位置其实是机载电脑与飞控连接的设置,配置好端口号及波特率!

在这里插入图片描述
这个位置我和师弟不断的对两个无人机的代码做对比才发现,直至修改正确!不然的话会报一个错误“FCU…”

问题2:阿木的无人机启动T265的方式是不同的,命令是一样的,但是里面的参数有所改动:(这里还是不太理解)

在这里插入图片描述
***直接把卓翼启动T265的launch文件,粘到阿木相应的包里面,名字都是一样的!***🤞🤞🤞
补充:这个位置不同,阿木的这个可以查看图像的数据,所以对上面位置进行了修改!

1. 启动基本vio脚本 ,输入如下命令:

首先要赋予串口权限

 sudo chmod 777 /dev/ttyTHS1
roslaunch p450_experiment p450_vio_onboard.launch

在这里插入图片描述
可以看到T265的节点已启动成功,下面看一下是否有数据输出,输出以下命令:

2 . 查看T265相机话题数据:有数据 才是真正的启动成功!

rostopic echo /camera/odom/sample

在这里插入图片描述

3 . ROS节点转换,再次查看相机话题数据!

rosrun offboard_pkg t265_to_mavros  //ros节点转换
rostopic echo /mavros/vision_pose/pose  //查看话题数据

在这里插入图片描述

4 . 启动PX4文件

roslaunch mavros px4.launch

在这里插入图片描述

5 . 查看遥控器状态(拨一下遥控器上的通道,看看有没有反应)

如下图所示,就是连接成功,遥控器切换模式,也会有反应
在这里插入图片描述

6 . 启动自主降落脚本文件

roslaunch p450_experiment p450_indoor_landing_static_target.launch

在这里插入图片描述

7. 打开一个新的终端,将图像检测显示出来

下面这幅图,是实体无人机飞机来在空中检测二维码的结果!

rqt_image_view

在这里插入图片描述
到这里只是用卓翼的无人机跑通了阿木的二维码降落,其中还有很多小细节的地方不是很理解,这里先把整个的实验流程梳理一下,后面会针对里面的问题进行逐一的解决!🤜🤛。


http://www.ppmy.cn/news/58875.html

相关文章

一分钟图情论文:《“双一流”背景下“图情档”研究生教育的思考》

一分钟图情论文:《“双一流”背景下“图情档”研究生教育的思考——在“2019年第十三届全国图书馆学博士生学术论坛”上的讲话》 在“双一流”背景下,如何开展高质量的图书情报档案学研究生教学工作是一个现实问题。北京大学信息管理系吴慰慈教授在“20…

分布式架构在银行的应用 ——分析银行业的技术转型之路

分布式架构在银行的应用 ——分析银行业的技术转型之路 一、银行业的历史成就 核心银行系统是银行信息化建设的核心,是银行为客户提供金融服务、 创造银行经营价值、履行社会责任的基石。过去我国大型银行的核心 银行系统大多基于主机技术,采用集中式架…

【Vue 基础】尚品汇项目-06-vuex模块式开发

vuex是官方提供一个插件,状态管理库,集中式管理项目中组件共用的数据。 目录 一、安装 二、vuex的基本使用 三、vuex模块式开发 一、安装 安装命令: npm install vuex3.6.2 --save 如果安装错版本,要先卸载再重新安装&#…

Focal Loss论文解读和调参教程

论文:Focal Loss for Dense Object Detection 论文papar地址:ICCV 2017 Open Access Repository 在各个主流深度学习框架里基本都有实现,本文会以mmcv里的focal loss实现为例(基于pytorch) 简介: 本文是…

Java基础(十五)集合框架

1. 集合框架概述 1.1 生活中的容器 1.2 数组的特点与弊端 一方面,面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就要对对象进行存储。另一方面,使用数组存储对象方面具有一些弊端,而Java 集合…

简单的无理函数的不定积分

前置知识: 直接积分法有理函数的不定积分 简单的无理函数的不定积分 对无理函数积分的基本方法就是通过换元将其化为有理函数的积分。下面讲讲几类无理函数积分的求法。 注: R ( u , v ) R(u,v) R(u,v)是由 u , v u,v u,v与常数经过有限次四则运算得…

MyBatis:使用代码整合

文章目录 MyBatis:Day 04框架1. 依赖:pom.xml2. 外部配置文件:db.properties3. 核心配置文件:mybatis-config.xml4. 实体类5. 接口:xxxMapper.java6. 实现类:xxxMapper.xml7. 测试 MyBatis:Day …

Elasticsearch——文档操作

新增文档 POST /索引库名/_doc/文档id { "字段1": "值1", "字段2": "值2", "字段3": { "子属性1": "值3", "子属性2": "值4" }, // ... } 查询文档 GET /索引库名/_doc/文档id 删除…