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

文章目录

    • 小车组成
    • 轮式运动底盘的组成
    • 轮式运动底盘的分类
    • 轮式机器人的控制方式
    • 感知传感器
    • 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.mzph.cn/news/854446.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 3186 最大施法伤害

题目信息 LeetoCode地址: . - 力扣(LeetCode) 题目理解 这道题很直观,玩游戏的都懂,伤害最大化嘛! 但是每个法术释放与否可能会影响总体的伤害,因此是从局部最优解找到全局最优解的动态规划问题&#x…

深度学习 --- stanford cs231学习笔记四(神经网络的几大重要组成部分)

训练神经网络1 1,激活函数(activation functions) 激活函数是神经网络之于线性分类器的最大进步,最大贡献,即,引入了非线性。 1,1 Sigmoid sigmoid函数的性质: 结合指数函数的图像可…

OpenGL3.3_C++_Windows(12)

demo演示 demo演示 模板stencil测试 OpenGL颜色缓冲区是用于存储渲染图像的颜色数据的内存区域,在每个新的渲染迭代,我们都将屏幕颜色清理glClearColor()为我们指定的颜色,然后同时清除glClear()颜色缓冲区&#xff0…

《骑行健身:“柳叶刀”研究揭示的健康与经济双赢策略》

在这个物价飞涨、经济压力日益加重的时代,普通人如何在不增加额外负担的情况下提升生活质量?《柳叶刀》的最新研究为我们揭开了一个意想不到的秘密:坚持健身,尤其是骑行,竟等同于每年为自己赚取了一笔不小的财富。这一…

Java的Websocket库获取路径参数

一、映射路径参数(可选): (一)设置占位符 在java.websocket.ServerEndpoint注解的路径中设置占位符。 例如假设映射的URL地址为:/socket/{id} (二)获取参数值 在OnOpen注解修饰的方法中设置参数,用注解java.websocket.PathParam(“id”)来赋…

【 Python高级编程】 Canny边缘检测算法阈值设置

Canny边缘检测算法中的两个阈值参数(threshold1和threshold2)的设置对于边缘检测的效果至关重要。选择合适的阈值需要根据实际应用场景和图像特点进行调整。以下是一些设置这两个阈值的指导原则和方法: 阈值设置原则 高阈值 (threshold2)&am…

C++链表相关内容温习回顾——移除链表元素

本文主要对之前学过的C链表相关内容进行温习回顾,并以 移除链表元素 为例,进行应用。 关于链表的基础理论可见:链表理论基础 应用示例:LeetCode 203 移除链表元素 https://leetcode.cn/problems/remove-linked-list-elements/ 0、…

餐饮环保新篇章:如何选购高品质油烟净化器

我最近分析了餐饮市场的油烟净化器等产品报告,解决了餐饮业厨房油腻的难题,更加方便了在餐饮业和商业场所有需求的小伙伴们。 随着环保意识的增强,餐饮业正迎来一场环保革命,油烟净化器成为保障餐饮卫生和环境清新的关键设备。面…

旋转的六边形

【题目描述】 输入一个整数n,绘制出n个不断旋转的六边形,如图1所示。 图1 旋转的六边形图形 【要求】 -绘制速度设为最快,画笔粗细为3。 -六边形每次旋转10度,边长增加10%。 【分析】 这是一个同心正六边,六边形边…

EasyExcel自定义处理器扩展指定行修改样式包括字体颜色

EasyExcel自定义处理器扩展指定行修改样式包括字体颜色 实现 import com.alibaba.excel.EasyExcel; import com.alibaba.excel.write.handler.RowWriteHandler; import com.alibaba.excel.write.metadata.holder.WriteSheetHolder; import com.alibaba.excel.write.metadata.…

spring:深入理解@EnableAspectJAutoProxy

Hi~!这里是奋斗的小羊,很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~~ 💥💥个人主页:奋斗的小羊 💥💥所属专栏:C语言 🚀本系列文章为个人学习…

Airtest 使用指南

Airtest 介绍 准备工作 AirtestIDE 安装与启动: https://airtest.doc.io.netease.com/IDEdocs/getting_started/AirtestIDE_install/ 电脑端的准备工作完成后,对于手机端只需要打开允许USB调试,当首次运行时会提示安装PocoService,同意即可。 界面介绍

Rust 1.79.0发布

Rust 1.79.0发布 ,此版本中的一些主要新功能和改进: 内联 const 表达式 内联表达式(例如块)现在在表达式位置上是稳定的,允许显式输入 const 上下文而无需额外声明。这使得涉及常量的代码更加简洁和可读,尤…

微信登录过程分析

文章目录 1、微信登录过程分析2、身份认证实现方案:3、AOP回顾3.1、AOP底层 1、微信登录过程分析 2、身份认证实现方案: 网关过滤器:gateway网关GlobalFilter自定义过滤器,拦截经过网关的所有请求SpringMVC拦截器:代码…

.NET C# ‘string‘ 类型思考与解析

目录 .NET C# string 类型思考与解析1 string 是值类型还是引用类型?2 为什么字符串要设计成引用类型,且相同字符串会用一个地址的字符串实例,这样解决了什么问题,有什么好处? .NET C# ‘string’ 类型思考与解析 1 ‘…

现货白银实时交易平台的成长阶段 你出在哪个阶段?

很多人喜欢在现货白银平台上做模拟交易,因为他们认为现货白银实时交易平台上交易太痛苦了,不光随时会面临风险,而且还可能让自己出现大的亏损。如果投资者认为痛苦,那笔者觉得投资者不妨将在现货白银实时交易平台上做交易&#xf…

0 简单的图像分类

本文主要针对交通标识图片进行分类,包含62类,这个就是当前科大讯飞比赛,目前准确率在0.94左右,难点如下: 1 类别不均衡,有得种类图片2百多,有个只有10个不到; 2 像素大小不同&…

滑动窗口(LeeCode209题,以JS为例)

什么是滑动窗口? 滑动窗口是算法中一种非常有用的技术,特别是在处理数据序列或数组时。它的核心思想是维护一个固定大小的窗口,这个窗口在数据序列上滑动,以便于在窗口内的元素上进行操作或计算。滑动窗口技术通常用于解决与数据…

对 2024 年美赛选题的建议

对2024年美赛选题的建议包括: 1. 深入探讨当下全球面临的重大问题和挑战:鉴于美赛通常聚焦于全球性议题,如气候变化、可持续发展、数据分析等,参赛学生应关注这些议题,并深入研究相关数据与背景信息,以提出…

趋势Deep Security(Trend Micro Deep Security)安装

趋势Deep Security安装 Deep Security下载地址:https://help.deepsecurity.trendmicro.com/software.html?regsen-hk&prodid1716&_ga2.165737150.1637045249.1717402661-819692893.1716530462 前言 Trend Micro Deep Security是一个提供深度包检查、入侵…