【自动驾驶】ROS小车系统介绍

embedded/2024/12/22 19:08:49/

文章目录

    • 小车组成
    • 轮式运动底盘的组成
    • 轮式运动底盘的分类
    • 轮式机器人的控制方式
    • 感知传感器
    • ROS决策主控
    • ROS介绍
    • ROS的坐标系
    • ROS的单位
    • 机器人电气连接
    • 变压模块
    • 运动底盘的电气连接
    • ROS主控与传感器的电气连接
    • 运动底盘基本组成
    • 电池
    • 电机
    • 控制器与驱动器
    • 控制器与运动底盘状态数据:里程计、IMU
    • 运动学分析与轮子
    • 运动学分析公式

小车组成

在这里插入图片描述

轮式运动底盘的组成

在这里插入图片描述

• 电源电池
提供能源。
• 控制器、驱动器
控制器产生控制信号,驱动器放大信号以驱动电机。可以驱控一体设计。
• 电机、舵机
电能转化为动能的装置。
• 轮子
连接电机,根据应用需求选择不同的轮子。
• 运动底盘
以上4部分安装到车架上即可组成一个运动底盘。

轮式运动底盘的分类

在这里插入图片描述
在这里插入图片描述

轮式机器人的控制方式

在这里插入图片描述

感知传感器

在这里插入图片描述

ROS决策主控

ROS主控的作用是获取各个传感器的数据,并根据功能需要对数据进行处理、解析,然后控制(决策)机器
人执行运动、抓取等动作。
例如希望实现机器人跟随红色物体的功能,首先相机传感器获取环境图像信息,ROS主控处理图像信息获取红色
物体的位置,然后ROS主控控制机器人靠近红色物体。
ROS主控可以认为就是一个可以运ROS的电脑,由于需要安装在机器人内,所以会要求该电脑的体积比较小。
在这里插入图片描述

ROS介绍

ROS最重要最基本的特性是其提供了一个通信环境,在该通信环境内,所有机器人、传感器的数据都可以通过编程实现共享,该通信环境使用无线、有线网络都可以实现。
在这里插入图片描述

ROS的坐标系

X:代表前后方向,向前为正
Y:代表横向方向,向左为正
Z:代表上下方向,向上为正
旋转正方向使用右手定则:右手大拇指朝向坐标系正方向,四指握拳,此时四指弯曲方向为旋转正方向。
据此可以知道,ROS机器人在地面的逆时针旋转,对应绕坐标系Z轴正方向旋转。

ROS的单位

ROS中所有数值的单位都为国际标准单位,常见的如下:
时间:秒、s
质量:千克、kg
长度:米、m;角度:弧度、rad
线速度:m/s;角速度:rad/s
加速度:m/s^2

在这里插入图片描述

机器人电气连接

完整的ROS机器人主要包括运动底盘(执行)、ROS主控(决策)、传感器(感知)、电池(能源)四个部分。
其中电池一般集成在运动底盘上,电池通过各种电气线路给机器人上的所有电气元件供电。
运动底盘(执行)、ROS主控(决策)、传感器(感知)之间也通过各种电气线路进行通信。
所以ROS机器人的电气线路可以大致分为【供电】与【信号】两类。

在这里插入图片描述

变压模块

ROS主控、传感器等电气元件要求的供电输入电压大小各种各样。
如果实际供电电压大于元件要求电压范围,会有过压损坏元件的风险;
如果实际供电电压小于元件要求电压范围,欠压可能会导致元件不能正常工作。
而电池输出的电压大小是固定(小范围波动)的,当电池电压范围与元件要求电压不匹配时,
需要使用变压模块,把电池电压转换到合适的大小再给元件供电。
电压大小与剩余电量成正比(以上基于三元锂电池,磷酸铁锂电池略有差异)

电气元件的供电参数要求除了电压还有电流,电源的电流输出参数必须大于或等于元件的电流输入参数。否则欠流可能导致元件不能工作在最佳状态。
元件的电流参数代表其需要的最高的稳定电流,实际工作时不一定一直满电流运行。
电源的电流参数代表其最高可以稳定输出的电流,实际工作时输出的电流大小取决于元件的工作状态需要多大的电流。

在这里插入图片描述

运动底盘的电气连接

供电:起源于电池,主要通过T头线或其它分流线输出到其它部件。
信号:起源于控制器,通过各种专用线材连接,最后控制电机与轮子转动。

在这里插入图片描述
在这里插入图片描述

ROS主控与传感器的电气连接

根据不同的供电参数要求使用不同的供电方式。
ROS主控的供电
5V供电要求:使用运动底盘(STM32)控制器的TypeC电源接口供电。
12V/25V供电要求:在电池供电范围内的,使用电池直接供电;不在则使用变压模块供电。
其它供电电压要求或5V接口数量不足:使用变压模块供电。

传感器的供电
5V供电要求:大部分传感器的供电要求都是5V,一般直接使用USB数据线连接ROS主控的USB母口,同时完成供电与通信。
也有部分传感器功耗较高,需要两个USB数据线分别进行供电与通信。
12V/25V供电要求:在电池供电范围内的,使用电池直接供电;不在则使用变压模块供电。
其它供电电压要求或5V接口数量不足:使用变压模块供电。

在这里插入图片描述

• ROS主控的信号连接
ROS主控的信号连接全部通过USB接口进行,包括传感器与运动底盘。
其中运动底盘是连接STM32控制器的串口3-TypeC接口,实现对运动底盘的控制与数据获取。

• 传感器的信号连接
所有传感器(感知)通过USB数据线与ROS主控(决策)进行信号连接。

• USB扩展坞/HUB
一般ROS主控上只配备有2-4个USB接口,当传感器数量过多时,就需要用到USB扩展坞来获取更多的USB接口。

运动底盘基本组成

电机、舵机、运动底盘、轮子、电源电池

• 电源电池
提供能源。

• 控制器、驱动器
控制器负责接收控制命令,产生控制信号,以及外发底盘运动状态数据。驱动器负责放大控制信号以驱动电机。可以驱控一体设计。

• 电机、舵机
电能转化为动能的装置。

• 轮子
连接电机,根据应用需求选择不同的轮子。

• 运动底盘
以上4部分安装到车架上即可组成一个运动底盘。

在这里插入图片描述

电池

关键参数介绍与选型参考
• 电芯类型
常用的有碳酸锂铁与三元锂电池,两种电芯各有特点,两者对比,三元锂能量密度更高、耐低温、充电更慢、成本更高等等。
大家选择主要参考以下电压、电流、体积、容量、保护等参数选择即可。
三元锂的剩余电量与电压成正比,碳酸锂铁则是阶梯式的(90%-10%电量期间电压基本不变)。
• 电压、电流
电池是由多个电芯并联或串联组成的。
电芯标称电压:磷酸铁锂电芯3.2V、三元锂电芯3.7V。
电芯串联提高电压,并联提高容量。右图4款电池依次为7串1并、6串2并、6串4并、6串8并。
电压*电流=功率,两者共同决定电池的供电能力。运动底盘电池的电压电流要求一般来自电机。
假设需要4个MD36NP27_24电机在额定功率下运行,电池电压要求≈ 24𝐀,电池放电性能要求≥ 2.3 ∗ 4 = 9.2𝐀。
关键参数介绍与选型参考
• 电量、续航、充电电流、体积、重量与接口插头
6100mAh电量代表电池可以持续输出6.1A电流1小时,恒定电流输出下的续航
计算公式:续航时间(ℎ) = 电量(𝐀𝐀ℎ)
电流(𝐀) ,𝐀 = 1000𝐀𝐀,充电时间同理。
大电量一般代表大体积,根据预算与运动底盘结构要求选择。
接口插头自行评估是否适合自身已有设备,如不合适需要另外采购转接头。
• 保护
短路、过流、过充、过放保护,支持边充边用,内置压力安全阀,阻燃板。

在这里插入图片描述

电机

电机是把电能转化为动能的装置。本节以直流电机为例讲解一般电机的构成:电机、编码器和减速器。
直流电机把电能转换为动能的原理为通电导线在磁场中会受到洛伦兹力的作用,电流越大,受力越大。所以提高输入电压,可以加大电流,
提高扭矩、转速。
编码器的作用是检测电机的转速,编码器的AB线会产生与转速成比例的脉冲,例如13线霍尔编码器,电机转子转一圈编码器的AB线各产生13个脉冲。转速检测用于实现电机的速度、位置闭环控制。
减速器的作用是提高扭矩,但是会降低转速。电机原始扭矩较小,扭矩不足容易导致堵转损坏电机,故需要减速器。假设电机使用减速比
为27的减速器,那么电机转子转27圈,电机最终输出轴转1圈。
电机的功率、体积、价格,基本成正比例关系,需要底盘设计者根据项目实际需求权衡选择。
舵机可以认为是一种特殊的电机,一般用于阿克曼底盘的前轮转向结构和机械臂上。

在这里插入图片描述

控制器与驱动器

控制器
负责接收速度控制命令,产生控制信号,以及外发底盘运动状态数据。
编码器转速反馈,是为了控制电机的转速更接近速度控制命令的要求。

驱动器
驱动电机需要较大功率的电压电流,一般控制器的无大功率输出能力。所以需要驱动器放大控制信号以驱动电机。驱控一体设计
如果电机的功率要求不高,那么控制器和驱动器是可以集成到一个较小的控制板上的,如右图所示。

在这里插入图片描述

控制器与运动底盘状态数据:里程计、IMU

控制器需要负责外发底盘运动状态数据,这里最重要的数据就是里程计和IMU,它们的作用都是用于机器人定位的,即用于确认机器人
目前所在的物理位置。

里程计的推导流程如图所示,其中运动学分析部分是运动底盘控制器需要做的工作。
轮式底盘的XYZ三轴里程计数据为:X-前后方向的位移、Y-左右方向的位移、Z-旋转的角度(航向角)。

IMU数据可以来自运动底盘自身板载的IMU芯片,也可以来自外置的IMU模块。我司的运动底盘一般都有板载IMU。
其工作流程如图所示,控制器只需要负责发送IMU数据,解算为姿态角部分由上层决策部分(ROS)处理。

扩展内容
IMU的角速度可以通过时间积分(速度*时间)计算三轴姿态角。
IMU的加速度可以通过特定公式计算除Z轴航向角外的XY两轴姿态角,IMU的加速度通过时间积分计算三轴位移。
里程计提供了XY两轴位移和Z轴航向角。
XYZ三轴位移、XYZ三轴姿态角,有两个或以上的数据来源,就可以融合计算出相对更准确的位姿数据。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

运动学分析与轮子

不同类型的轮子、底盘结构决定了运动底盘的运行场景与特点,也决定了其运动学分析公式。
运动学分析正解:根据各个轮子的当前线速度求出机器人当前的三轴速度。(对应控制器向外发送机器人三轴速度用于计算里程计)
运动学分析逆解:根据三轴目标速度求出各个轮子的目标线速度。(对应控制器接收速度控制命令,然后向驱动器发送控制信号以控
制电机转动)
轮子的线速度(m/s)=电机转速(圈/s)2𝐀*轮子半径

从轮子、电机、到控制器,其中核心是控制器,控制器负责对外界的控制命令进行响应和反馈。

在这里插入图片描述

运动学分析公式

在这里插入图片描述
在这里插入图片描述


http://www.ppmy.cn/embedded/50153.html

相关文章

【全开源】医护上门系统小程序APP公众号h5源码

医护上门系统:健康守护,就在您身边 🚪引言:开启全新的医护模式 在快节奏的现代生活中,健康问题往往成为我们关注的焦点。而“医护上门系统”正是为了满足这一需求,将专业的医疗服务送到您的家中。这一创新…

直接用sql语句来查询和分析excel表,不需要导数据,提供了sql语句自动生成,不会sql也能用

用sql语句来查询excel表,我们需要把excel表格导入到数据库中,然后用数据库的管理工具写sql语句来进行查询。方法有很多,我们不一一描述。 今天我们要说的是直接用sql语句来查询和分析excel表。为什么有这么一个想法呢?程…

多目标跟踪中用到的求解线性分配问题(Linear Assignment Problem,LAP)Python

多目标跟踪中用到的求解线性分配问题(Linear Assignment Problem,LAP)Python flyfish 如果想看 C版本的,请点这里。 线性分配问题(LAP,Linear Assignment Problem)是一个经典的优化问题&…

TensorFlow音频分类修复

原先传wav格式,后来发现前端生成的wav格式不完整 后端改mp3 其实是mp3和wav都可以接收 但问题是wav文件格式错误的话无法获取时长,这样也就是说只能传mp3,除非你对时长无所谓 修复TensorFlow放到生产后报错问题-CSDN博客 依赖 <dependency><groupId>org.ten…

【Apollo配置中心】集成springboot自动监听属性变更和动态发布配置

1. 背景 在实际项目中&#xff0c;Spring Boot项目结合使用Apollo配置中心时&#xff0c;经常会遇到需要更新Apollo上的项目的一些配置&#xff0c;比如测试环境或生产环境中&#xff0c;需要修改某个类的属性值&#xff0c;如果我们在Apollo上更新了配置&#xff0c;已经在运…

ffmpeg封装和解封装介绍-(6)完成重封装mp4文件并截断10s~20s的视频并生成10s视频文件

源文件&#xff1a; #include <iostream> #include <thread> using namespace std; extern "C" { //指定函数是c语言函数&#xff0c;函数名不包含重载标注 //引用ffmpeg头文件 #include <libavformat/avformat.h> } //预处理指令导入库 #pragma …

Flutter 简化CustomPainter的绘制

文章目录 前言一、为何简化&#xff1f;1、通常做法&#xff08;1&#xff09;、绘制形状1&#xff08;2&#xff09;、绘制形状2&#xff08;3&#xff09;、界面显示 2、简化 二、完整代码三、使用示例1、绘制图形2、动态触发绘制 总结 前言 使用Flutter做界面时&#xff0c…

浏览器调试小技巧

一. 使用XSwitch工具代理本地服务地址 1. 谷歌提供了一个扩展程序: XSwitch 工具描述: 一个重定向URL并允许CORS使本地开发体验轻松愉快的工具。 ps: 这个工具只有谷歌有, 只能翻墙后下载 安装成功后 长这样: 2. 全局安装http-server , 用于在本地启动一个服务 npm i http-…