第 8 章 机器人平台设计(自学二刷笔记)

重要参考:

课程链接:https://www.bilibili.com/video/BV1Ci4y1L7ZZ

讲义链接:Introduction · Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程

 

学习到当前阶段大家对ROS已经有一定的认知了,但是之前的内容更偏理论,尤其是介绍完第6章仿真与第7章导航之后,想必相当一部分同学有些疑惑:

实体机器人与仿真实现有什么区别?

ROS系统如何控制机器人底盘运动,并计算里程计数据呢?

实际的传感器如雷达、摄像头等应该怎么使用呢?

...

机器人系统是一套机电一体化的设备,机器人设计也是高度集成的系统性实现,为了给大家解答上述疑惑,方便机器人硬件的快速上手,本章去繁就简旨在从0到1的设计一款入门级、低成本、简单但又具备一定扩展性的两轮差速机器人,学习完本章内容之后,你甚至可以构建属于自己的机器人平台。

本章主要介绍内容如下:

  • 机器人的组成部分;

  • Arduino 基本使用;

  • Arduino 与电机驱动;

  • 底盘控制实现;

  • 基于树莓派的ROS环境搭建;

  • 激光雷达与相机的基本使用与集成。

本章学习目标如下:

  • 能够独立搭建机器人平台。

注意:

  • 该章内容会使用到ROS的分布式框架,树莓派端作为主机,PC端作为从机;

  • PC端使用的ROS版本为noetic,树莓派端使用的版本为melodic,因为树莓派需要与底盘交互,而相关功能包还未更新。

案例演示:

1.机器人底盘实现

底盘正面

Arduino 与 电机驱动板

底盘背面

2.机器人控制系统以及传感器实现

3.机器人集成效果

 

8.1 概述

立足角度不同,对机器人组成的认识也会有明显差异,从控制的角度来看,机器人系统可以分为四部分:

传感系统、控制系统、驱动系统、执行机构。

1.传感系统

它由内部传感器模块和外部传感器模块组成,获取内部和外部环境中有用的信息,相当于人体的感官与神经,内部传感系统包括电机的编码器、陀螺仪等,可以通过自身信号反馈检测位姿状态;外部传感系统包括摄像头、红外、声纳等,用于感知外部环境。

2.控制系统

控制系统的任务是根据机器人的作业指令以及从传感器反馈回来的信号,输出控制命令信号,类似于人的大脑。控制系统需要基于处理器实现,在处理器之上,控制系统需要完成算法处理、关节控制、人机交互等复杂功能。

3.驱动系统

驱动系统主要负责驱动执行机构,将控制系统下达的命令转换成执行机构所需要的信号,相当于人的小脑与神经。采用的动力源不同,驱动系统的传动方式也不同。驱动系统的传动方式主要有四种:液压式、气压式、电气式和机械式。电力驱动是目前使用最多的一种驱动方式,其特点是电源取用方便,响应快,驱动力大,信号检测、传递、处理方便,并可以采用多种灵活的控制方式,驱动电机一般采用步进电机或伺服电机。

4.执行机构

执行机构是机器人组成中的机械部分,类似于人的手与脚,比如:机器人的行走部分与机械臂。


在当前机器人系统中,各组成部分对应硬件清单如下:

执行机构: 主体使用亚克力板拼装,由两个直流电机带动主动轮以及保持平衡的两个万向轮实现机器人行走,由于执行机构比较简单,不再做单独介绍。

驱动系统: 电池、arduino 以及电机驱动模块;

控制系统: 树莓派;

传感系统: 编码器、单线激光雷达、相机;

其中,执行机构与驱动系统构成了机器人底盘。

 

8.2 机器人平台设计之arduino基础

在构建差分轮式机器人平台时,驱动系统的常用实现有 STM32 或 Arduino,在此,我们选用后者,因为 Arduino 相较而言更简单、易于上手。本节将介绍如下内容:

  • arduino 简介;
  • arduino 开发环境搭建;
  • arduino 基本语法。

概念

Arduino是一款便捷灵活、方便上手的开源电子原型平台。在它上面可以进行简单的电路控制设计,Arduino能够通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。

作用

或多或少你可能听说过“集成电路”(又称“微电路”、“微芯片”或“芯片”)这种概念,集成电路(integrated circuit)是一种微型电子器件或部件,通过集成电路再结合一些外围的电子电子元器件、传感器等,可以感知环境(温度、湿度、声音),也可以影响环境(控制灯的开关、调节电机转速)。但是传统的集成电路应用比较繁琐,一般需要具有一定电子知识基础,并懂得如何进行相关的程序设计的工程师才能熟练使用,而Arduino的出现才使得以往高度专业的集成电路变得平易近人,Arduino主要优点如下:

  • 简单:在硬件方面,Arduino本身是一款非常容易使用的印刷电路板。电路板上装有专用集成电路,并将集成电路的功能引脚引出方便我们外接使用。同时,电路板还设计有USB接口方便与电脑连接;
  • 易学:只需要掌握 C/C++ 基本语法即可;
  • 易用:Arduino提供了专门的程序开发环境Arduino IDE,可以提高程序实现效率。

当前,Arduino已经成为全世界电子爱好者电子制作过程中的重要选项之一。

组成

Arduino 体系主要包含硬件和软件两大部分。硬件部分是可以用来做电路连接的各种型号的Arduino电路板(下图为本章内容使用的 arduino mega 2560);软件部分则是Arduino IDE。你只要在IDE中编写程序代码,将程序上传到Arduino电路板后,程序便会告诉Arduino电路板要做些什么了。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/318475.html

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

相关文章

KKView远程控制2.0版本发布,TeamViewer面临巨大挑战

KKView远程控制2.0版本发布,TeamViewer面临巨大挑战 近日,备受瞩目的远程控制软件KKView发布了其全新2.0版本,KKView以其独特的创新性和用户友好的设计,为远程办公、远程培训等领域提供了更加高效、便捷的解决方案。 KKView远程…

K8S 哲学 - deployment -- kubectl【create 、 rollout 、edit、scale、set】

kubectl create kubectl rollout kubectl edit kubectl set kubectl scale 1、创建与配置文件解析 2、deploy 滚动更新 :template 里面的内容改变触发滚动更新 编辑该 deploy 的 配置文件 ,加入一个 label 不会触发滚动更新 改变 nginx镜…

分布式与一致性协议之Raft算法(一)

Raft算法 概述 Raft算法属于Multi-Paxos算法,它在兰伯特Multi-Paxos思想的基础上做了一些简化和限制,比如日志必须是连续的,只支持领导者(Leader)、跟随者(Follwer)和候选人(Candidate)3种状态。在理解和算法实现上,Raft算法相对…

Python语言零基础入门——文件

目录 一、文件的基本概念 1.文件 2.绝对路径与相对路径 3.打开文件的模式 二、文件的读取 三、文件的追加 四、文件的写入 五、with语句 六、csv文件 1.csv文件的读取 2.csv文件的写入 七、练习题:实现日记本 一、文件的基本概念 1.文件 文件是以计算…

浏览器安装路径位置的查看、指定网址快捷方式的创建

浏览器安装路径位置的查看、指定网址快捷方式的创建 浏览器安装路径位置的查看 法一、属性查看法 右键点击浏览器的桌面图标,选择“属性”,“快捷方式”页中的“目标”框中可见. 以Microsoft Edge浏览器为例,参见下图: 法二、地…

免费开源语音克隆-GPT-SoVITS-WebUI只需 5 秒的声音样本

语音克隆-GPT-SoVITS-WebUI 强大的少样本语音转换与语音合成Web用户界面。 功能: 零样本文本到语音(TTS): 输入 5 秒的声音样本,即刻体验文本到语音转换。 少样本 TTS: 仅需 1 分钟的训练数据即可微调模型…

LabVIEW换智能仿真三相电能表研制

LabVIEW换智能仿真三相电能表研制 在当前电力工业飞速发展的背景下,确保电能计量的准确性与公正性变得尤为重要。本文提出了一种基于LabVIEW和单片机技术,具有灵活状态切换功能的智能仿真三相电能表,旨在通过技术创新提高电能计量人员的培训…

基于SpringBoot+Vue的旅游网站系统

初衷 在后台收到很多私信是咨询毕业设计怎么做的?有没有好的毕业设计参考?能感觉到现在的毕业生和当时的我有着同样的问题,但是当时的我没有被骗,因为现在很多人是被骗的,还没有出学校还是社会经验少,容易相信别人。…

项目管理-项目进度管理2/3

项目管理:每天进步一点点~ 活到老,学到老 ヾ(◍∇◍)ノ゙ 何时学习都不晚,加油 项目进度管理:需掌握 ITTO, 搞懂计算图,问题和解决方案。 项目进度管理6个过程,包括(口…

机器学习:深入解析SVM的核心概念【二、对偶问题】

对偶问题 **问题一:什么叫做凸二次优化问题?而且为什么符合凸二次优化问题?**为什么约束条件也是凸的半空间(Half-Space)凸集(Convex Set)半空间是凸集的例子SVM 约束定义的半空间总结 **问题二…

nginx的前世今生(二)

书接上回: 上回书说到,nginx的前世今生,这回我们继续说 3.缓冲秘籍,洪流控水 Nginx的缓冲区是其处理数据传输和提高性能的关键设计之一,主要用于暂存和管理进出的数据流,以应对不同组件间速度不匹配的问题…

Dokcer容器分布式搭建LNMP+wordpress论坛

目录 引言 一、架构环境 二、搭建容器 (一)自定义网络 (二)搭建nginx容器 1.文件准备 2.查看与编辑文件 3.生成镜像 4.创建容器 (三)搭建MySQL容器 1.文件准备 2.查看与编辑文件 3.生成镜像 …

基于Unity+Vue通信交互的WebGL项目实践

unity-webgl 是无法直接向vue项目进行通信的,需要一个中间者 jslib 文件 jslib当作中间者,unity与它通信,前端也与它通信,在此基础上三者之间进行了通信对接 看过很多例子:介绍的都不是很详细,不如自己写&…

【银角大王——Django课程——用户表的基本操作】

Django课程——用户表的基本操作 模板的继承用户管理用户列表展示新建用户Django组件原始方法【麻烦,太原始】form组件modelform组件 使用modelsform组件编写添加页面 模板的继承 (1)先写一个页面模板————这个案例中的模板基本上就是一个…

分布式与一致性协议之CAP和Paxos算法(一)

CAP 理论 如何使用BASE理论 以InfluxDB系统中DATA节点的集群实现为例。DATA节点的核心功能是读和写,所以基本可用是指读和写的基本可用。我们可以通过分片和多副本实现读和写的基本可用。也就是说,将同一业务的数据先分片,再以多份副本的形…

嫦娥六号发射任务圆满成功,开启月球背面采样返回之旅 | 最新快讯

央视新闻5月3日消息,据国家航天局,5月3日17时27分,嫦娥六号探测器由长征五号遥八运载火箭在中国文昌航天发射场成功发射,准确进入地月转移轨道,发射任务取得圆满成功。嫦娥六号探测器开启世界首次月球背面采样返回之旅…

光固化打印--问题记录

平面翘起 原因:角度平,缺支持 解决: 45度角度摆放底部平面起皮 原因:缺少支撑,原始结构支持无法支撑平面。 解决:增加支撑

2024 会声会影转场区间如何设置 会声会影电影片头怎么做

视频转场是视频剪辑中重要的技巧之一,合理运用转场效果可以提升视频的质量和观赏性。这篇文章就一起来学习一 下会声会影转场区间默认几秒,会声会影转场区间如何设置。 一、会声会影转场区间默认几秒 会声会影转场区间默认1秒。1秒的转场区间可以使场景…

nuxt3项目服务端bulid后在本地浏览的3种方式(nuxi preview、Node.js Server、PM2)

你也许会问有了开发调试本地浏览,为什么还要服务端构建之后在本地浏览? 举个简单例子 在 Nuxt 3 服务端打包中,由于运行环境不同,无法直接访问 process 对象。服务端打包通常是在 Node.js 环境中进行的,而 process 对象…

【云原生】Docker 实践(一):在 Docker 中部署第一个应用

Docker 实践(一):在 Docker 中部署第一个应用 1.使用 YUM 方式安装 Docker2.验证 Docker 环境3.在 Docker 中部署第一个应用3.1 小插曲:docker pull 报 missing signature key 错误3.2 重新安装 Nginx 1.使用 YUM 方式安装 Docker…