智能无人机自主追踪小车实验——基础篇(全面总结)

ROS无人机小车追踪培训

目录

学习流程

第一天:无人机硬件讲解

1.1初步了解

1.2硬件学习

Intel T265

Intel D435i

激光雷达

机架动力套

电机旋转与机身运动关系

MINI HOMER

驱动

第二天:软件仿真

2.1为什么仿真

2.2仿真硬件选择

CPU选择

GPU选择

2.2仿真预装软件与环境

2.3 Prometheus地面站

第三天:自主追踪小车实验仿真复现

第四天:真机部署

知识积累

PX4开源项目

MAVROS协议

SpireCV开源项目

Prometheus开源项目

YOLOv5开源项目

总结


  • 学习流程

  1. 第一天:无人机硬件讲解

1.1初步了解

首先作为项目开发,清晰的开发思路必不可少,那么这次的开发功能即为“如何实现无人机追踪小车”。当我第一次看到这个问题,感觉应该是一项挺复杂的工作,不过不慌,我们先了解瞧瞧,听课看图我还是很在行的。

要实现这项“智能无人机开发”,我们整体可以分为两个部分:

第一个为“基础”部分,起码我们需要一台由飞行控制,机架以及动力系统组成的无人机,同时需具备一台轻量化的机载电脑或者开发好的集成芯片(这种多为成品,功能单一,不适用于开发)。在这里我们使用的是P450无人机,PX4为核心控制软件。

第二个为“高阶”部分,也就是我们开发的重点位置,即实现追踪小车这项智能化的功能。那最起码的开发工具我们不难想到使用ROS(机器人操作系统)开发,也就是现在最普遍的智能机器人开源框架。看到这里大家可能会想到,我直接使用ROS中开源的视觉感知代码,不就能实现识别小车的功能了嘛,再加个跟踪算法搞定啦。没错,我就是这么想的。那么问题来了,无人机在识别到小车之后如何使自身与小车维持特定的距离和角度?在小车移动时又如何判断其运动的方向和距离并改变自身的飞行轨迹?在处理视觉图像时会不会产生由2D到3D转化的误差呢?果然,理想很丰满,现实很骨感呐!带着这些问题,我们继续了解。

那么到这里呢,我们可以看下面这个逻辑图(图1),我们能看到许多专有的名词,没错,我和你们一样,感觉挺清晰,但还是不知道具体都是怎么实现的。因为培训时间有限,老师也只是一笔带过,那现在就是需要我们课下自己来了解了,具体的各名词的个人理解和学习网站我汇总到了第二个大模块(二,知识积累),有颜色标注的名词大家自行选择至下面查阅,大家可以跟着我的节奏,由浅入深,边走边学习。

图1 任务逻辑图

1.2硬件学习

好,在探寻高阶部分前我们先打好基础,先来认识一下我们的研究主体无人机的硬件设备。

在介绍之前,还是先总体了解一下硬件框架来帮助我们记忆。我们可以看图2(硬件框架),整体可分为两个部分:

图2 硬件框架

第一是传感器设备,或者可以称为外接设备,这一部分就好比人的五大感官,是获取外接信息主要来源。包括摄像头,激光雷达,GPS和加速度计/陀螺仪/磁罗盘等用来获取图像数据,激光点云信息,位置信息和无人机的姿态信息等。

这些信息就传到了第二部分也就是控制系统。例如我们的图像数据和激光点云信息传入机载电脑,利用写好的算法进行路径规划和环境感知。而GPS和无人机的姿态信息数据传入飞控,通过产生EKF滤波和PID控制信号来操控无人机桨叶的电机,产生不同的生力来维持无人机姿态稳定并执行由机载电脑下达的移动命令。

补充一点,机载电脑对飞控下达命令之间是通过MAVROS协议实现的。

接下来是无人机搭载的具体硬件参数介绍,不感兴趣的玩家可以跳过此部分:

Intel T265

是一款由英特尔开发的深度视觉立体相机,它提供了高精度的定位和跟踪功能。以下是际t T265的部分参数:

最大深度范围:0.2m-5m

实时定位与地图构建(SLAM)技术

通过视觉特征和惯性测量单元(IMU)进行位置和姿态跟踪

姿态精度:0.1度

惯性测量单元(IMU):加速度计、陀螺仪

数据接口:USB 3.1 Gen1 Type-C

使用教程网址:Intel Realsense T265使用教程-优快云博客

Intel D435i

其特点是不仅提供深度传感器模组,还配备了一个IMU单元。RGB-D(红绿蓝-深度)相机是3D相机,其在像素级输出具有颜色和深度信息的图像。

一对立体红外传感器(IRStereo Camera),一个红外激光发射器(IRProjector)和一个彩色相机(RGB传感器)

USB供电;

更大的85度左右的镜头视场(FOV)

摄像机的捕捉最远距离可以达10米

输出1280x720分辨率的深度画面

视频传输方面可以达到90fps

使用指南网址:Intel RealSense D435i 深度相机介绍_realsense d435i介绍-优快云博客

激光雷达

介绍说明书:LDS-50C-2蓝海光电激光雷达使用说明书 V1.4.pdf-原创力文档 (book118.com)

使用说明书:蓝海光电激光雷达说明书.pdf (amovlab.com)

机架动力套

机架动力套定义为:已组装好无人机的机身结构部分,以及电源模块,电机电调模块的套件,被定义为机架动力套。相当于一个无人机的半成品物料,或者是传统的航模。

基础款无大机一机架动力套一(航模)+一控自主无大机=基础款无人机+机载计算机

这里提供一个徒手组装F450飞行器指南:BetaFlight & BeeRotorF3 四轴飞行器配置F450_f450机架图纸参数-优快云博客

<think>好的,我现在需要回答用户关于智能追踪小车实现原理、代码和硬件设计的问题。首先,我得仔细看看用户提供的引用内容,确保回答准确可靠。 用户提到了三个引用,都和单片机、寻迹、光敏传感器以及无人机追踪小车有关。引用[1]主要讲单片机的基础知识和自动寻迹设计,引用[2]提到无人机追踪小车实验,引用[3]则详细介绍了基于光敏电阻和BH1750FVI模块的设计。这些应该是回答的主要依据。 首先,实现原理部分。根据引用[1]和[3],智能追踪小车通常需要传感器来检测路径或光源,比如红外传感器或光敏电阻。单片机处理这些信号后控制电机转向。需要提到闭环控制系统,可能包括传感器输入、数据处理和电机控制三个部分。引用[3]中的光敏模块和主控芯片是关键。 然后是硬件设计。需要列出主要的组件:单片机(如STM32或Arduino,引用[1]和[3])、传感器模块(红外、超声波、光敏,引用[1][3])、电机驱动模块(如L298N,常见于小车项目)、电源模块、车体结构。可能还需要提到扩展模块,比如蓝牙或WiFi,引用[3]提到可扩展性。 代码部分需要示例。根据引用[1]的示例,可能用Arduino代码。代码结构应包括初始化传感器、读取数据、判断方向、控制电机。比如读取光敏电阻值,比较左右传感器的值来决定转向。需要确保代码逻辑清晰,使用PWM控制电机速度,保持追踪。 相关问题部分,用户要求生成相关的问题。需要从实现原理的细节、硬件选型、代码优化、应用场景等方面提问。比如不同传感器的优缺点,提高精度的方法,代码中的PID控制,多场景应用如物流或教育。 需要注意的是,所有行内数学表达式如PWM占空比要用$...$,独立公式如PID公式用$$...$$,但当前内容可能不需要太多数学公式,但如果有的话要正确使用。同时要检查LaTeX语法是否正确,比如变量用斜体。 最后,引用标识要自然地加在引用内容的末尾。例如,提到光敏电阻模块时引用[^3],提到单片机基础知识引用[^1],无人机追踪引用[^2]。 现在,组织这些内容,确保结构清晰,分点回答,代码示例用代码块,相关问题列出四个左右。需要避免使用Markdown格式,但用户示例中允许代码块,所以可以保留。同时使用中文,保持口语化,但作为思考过程,不需要太正式。</think>### 智能追踪小车实现方法 #### 一、实现原理 智能追踪小车的核心是通过传感器感知目标(如光线、路径或物体),由单片机处理数据后控制电机运动,形成闭环控制系统[^1][^3]。 1. **目标检测**: - **路径追踪**:使用红外传感器阵列检测地面黑线,通过反射光强度判断路径偏离。 - **光源追踪**:光敏电阻或BH1750FVI模块检测光照强度,比较左右传感器值确定光源方向。 - **物体追踪**:超声波或摄像头识别目标距离/位置(如无人机追踪小车实验[^2])。 2. **控制逻辑**: - 若左侧传感器信号强,说明目标在左,控制右轮加速或左轮减速,实现转向。 - 采用PID算法动态调节电机转速,提升追踪平滑度[^3]。 #### 二、硬件设计 | 模块 | 功能说明 | |---------------|--------------------------------------------------------------------------| | 主控芯片 | STM32/Arduino,负责传感器数据处理和电机控制 | | 传感器 | 红外对管(寻迹)、光敏电阻(寻光)、超声波模块(避障) | | 电机驱动 | L298N模块驱动直流电机,支持PWM调速 | | 电源 | 锂电池组(7.4V)配合稳压模块(如LM2596) | | 车体结构 | 四轮底盘(带编码器的直流减速电机)或两轮差速+万向轮结构 | #### 三、代码示例(Arduino光源追踪) ```cpp // 定义光敏传感器引脚 #define LEFT_SENSOR A0 #define RIGHT_SENSOR A1 // 定义电机控制引脚 #define MOTOR_L1 5 #define MOTOR_L2 6 #define MOTOR_R1 9 #define MOTOR_R2 10 void setup() { pinMode(LEFT_SENSOR, INPUT); pinMode(RIGHT_SENSOR, INPUT); pinMode(MOTOR_L1, OUTPUT); pinMode(MOTOR_L2, OUTPUT); pinMode(MOTOR_R1, OUTPUT); pinMode(MOTOR_R2, OUTPUT); } void loop() { int left_val = analogRead(LEFT_SENSOR); int right_val = analogRead(RIGHT_SENSOR); if (left_val - right_val > 50) { // 光源偏左 // 左轮后退,右轮前进 analogWrite(MOTOR_L1, 0); analogWrite(MOTOR_L2, 150); analogWrite(MOTOR_R1, 150); analogWrite(MOTOR_R2, 0); } else if (right_val - left_val > 50) { // 光源偏右 // 右轮后退,左轮前进 analogWrite(MOTOR_L1, 150); analogWrite(MOTOR_L2, 0); analogWrite(MOTOR_R1, 0); analogWrite(MOTOR_R2, 150); } else { // 光源居中 // 双轮前进 analogWrite(MOTOR_L1, 200); analogWrite(MOTOR_L2, 0); analogWrite(MOTOR_R1, 200); analogWrite(MOTOR_R2, 0); } delay(50); } ``` #### 四、关键优化方向 1. **传感器融合**:结合红外与超声波传感器,避免环境光干扰。 2. **动态阈值调整**:根据环境光强度自动校准传感器基准值。 3. **运动平滑性**:加入PID控制算法,公式如下: $$u(t) = K_p e(t) + K_i \int_0^t e(\tau)d\tau + K_d \frac{de(t)}{dt}$$ 其中$e(t)$为方向偏差,$u(t)$为电机调速输出。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值