【自动驾驶】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.rhkb.cn/news/352213.html

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

相关文章

一行代码实现鼠标横向滚动

🧑‍💻 写在开头 点赞 收藏 学会🤣🤣🤣 在项目中我们可能会遇到当鼠标在某个区域内,我们希望滚动鼠标里面的内容可以横向滚动; 比如我们一些常见的后台状态栏: 那这种该怎么写&…

找工作小项目:day16-重构核心库、使用智能指针(2)

day16-重构核心库、使用智能指针 太多了分一篇写。 5、EventLoop 这是一个事件轮询,在这个部分会通过Poller进行就绪事件的获取,并将事件进行处理。 头文件 这里使用了一个智能指针并使用的是unique_ptr指向Poller红黑树,防止所有权不止…

基于springboot的宠物商城网站

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于springboot的宠物商城网站,java项目…

湿法消解石墨消解仪 应用化学分析领域石墨炉

石墨消解仪在化学实验中具有重要的作用。它是一种高级实验设备,广泛应用于化学分析领域,特别是在样品的前处理和测试前的样品制备过程中。 石墨消解仪采用高温高压技术,能够将固体样品中的有机和无机物质转化为可溶性的气体或液体形式。这种…

Ubuntu的文件权限介绍

Linux系统是一个多用户系统,每个用户都会创建自己的文件。为了防止其他人擅自改动他人的文件,需要拥有一套完善的文件保护机制。在Linux系统中,这种保护机制就是文件的访问权限。文件的访问权限决定了谁可以访问和如何访问特定的文件。 为了…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 字符串筛选排序(100分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 &#x1f…

比特币的共识协议

目录 前言 一、铸币交易 1.铸币权 2.铸币交易(coinbase tx) 3.输入和输出 二、小型的区块链 1.见下图所示 2.哈希指针 3.双花攻击 三、块头块身,全节点轻节点 1.块头(block head) 2.块身 3.全节点full node(fully validating node…

小孟再接盲盒小程序,3天开发完!

大家好,我是程序员小孟。 前面开发了很多的商业的单子,私活联盟的小伙伴慢慢的逐渐搞自己的产品。 前面的话,开发了盲盒小程序,最近又接了一款盲盒小程序。因为前面有开发过,所以我们的成本也少了很多。 盲盒小程序…

【一】【QT开发应用】QT开发环境配置,安装QT应用

下载QT软件 点击网址链接,QT下载网址 下载vsaddin插件 点击网址链接,QT下载网址 根据自己的vs版本下载对应的文件. 安装QT 用命令行打开安装程序 找到直接路径, D:\Software\QT\qt-unified-windows-x86-4.3.0-1-online.exe 利用WindowsPowe…

Docker的基本操作 及 容器与外部机互相通讯(持续更新中)

Docker入门: Docker 入门教程 - 阮一峰的网络日志 (ruanyifeng.com)docker入门,这一篇就够了。-CSDN博客Docker 容器使用 | 菜鸟教程 (runoob.com)Docker自定义网络和运行时指定IP_docker run ip-CSDN博客 基本命令 链接:docker入门&#…

鸿蒙: 基础认证

先贴鸿蒙认证 官网10个类别总结如下 https://developer.huawei.com/consumer/cn/training/dev-cert-detail/101666948302721398 10节课学习完考试 考试 90分合格 3次机会 1个小时 不能切屏 运行hello world hvigorfile.ts是工程级编译构建任务脚本 build-profile.json5是工程…

你还不会选ProfiNET和EtherCAT网线?

在现代工业自动化领域,ProfiNET和EtherCAT是两种非常流行的通信协议。选择合适的网线对于确保通信的稳定性和效率至关重要。 ProfiNET是什么? ProfiNET是一种基于以太网的通信协议,由德国西门子公司开发。它支持实时通信,广泛应用…

【启明智显方案分享】ESP32-S3与GPT AI融合的智能问答嵌入式设备应用解决方案

一、引言 随着物联网(IoT)和人工智能(AI)技术的飞速发展,嵌入式设备正逐渐变得智能化。本解决方案是启明智显通过结合ESP32-S3的低功耗、高性能特性和GPT(Generative Pre-trained Transformer)…

【第10章】如何获取免费“工作流”?(国内外网站推荐/下载/使用)ComfyUI基础入门教程

使用ComfyUI的一个重点,就是可以快速使用别人分享的工作流,来完成特定的图像生成任务,从而提升工作效率。 那么,去哪儿可以找到别人分享的工作流呢? 这节课我们了解下,比较知名的工作流网站有哪些?以及如何下载? 备注:下节课再讲如何使用。 🎆“老牌” workflow网…

基于QT5.12.7的VTK8.2下的VS2015 X64源码编译以及测试

有一段时间没更新博客了,最近在考虑使用VTK作为软件的后处理显示,相比于OSG,VTK在后处理上集成了很多优秀的算法,使用起来比较方便,而且后处理一般不需要太多的交互,所以VTK是一个不错的选择。 之前对VTK了…

数据仓库与数据挖掘(期末复习)

数据仓库与数据挖掘(期末复习) ETL的含义Extract 、 Transformation、Load。 ODS的全称Operational Data Store。 DW全称 Data Warehourse DM全称是Data Mart 数据仓库数据抽取时所用到技术是增量、全量、定时、调度 STAGE层作用是提供业务系统数据…

HTML初体验

可参考jd.com官网&#xff0c;ctrlu查看当前页面源代码 找到你的项目&#xff0c;在项目中创建html类型的网页文件 标准的HTML正确书写格式 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title&…

牛客热题:最长回文子串

&#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;力扣刷题日记 &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 文章目录 牛客热题&#xff1a;最长回文子串题目链接方法一&am…

大模型Claude 3产品调研

一、公司与产品介绍 Anthropic公司&#xff0c;由前OpenAI高级成员达里奥阿莫代&#xff08;Dario Amodei&#xff09;和丹妮拉阿莫代&#xff08;Daniela Amodei&#xff09;兄妹于2021年创立&#xff0c;致力于开发先进的人工智能技术。作为公司的旗舰产品&#xff0c;Claud…

JavaEE进阶----SpringBoot快速入门

文章目录 前言一、了解Maven1.1 Maven功能- 项⽬构建- 管理依赖 1.2Maven仓库 二、第一个SpringBoot项目总结 前言 Spring Boot是一个用于构建快速、简单和可扩展的生产级应用程序的框架。它基于Spring框架&#xff0c;提供了开发微服务和独立的应用程序所需的一切。 一、了解…