第 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.mzph.cn/diannao/5776.shtml

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

相关文章

Excel 透视表:数据分析利器

Excel 透视表:数据分析利器 Excel 透视表是 Excel 中一个强大的数据分析工具,可以帮助用户快速、轻松地汇总、分析大量数据。它能够将复杂的数据转化为易于理解的摘要信息,并提供多种视图和选项供用户探索数据。 重要性 Excel 透视表在数据…

大数据信用花了,一般多久能正常?

在当今数字化时代,大数据技术被广泛应用于各个领域,包括金融、电商、社交等。然而,随着大数据技术的普及,个人信用问题也日益凸显,其中“大数据信用花”现象尤为引人关注。那么,大数据信用花究竟是什么?一…

【Unity】修改模型透明度

在 Unity 中修改模型透明度主要有两种方法:通过材质和通过着色器。以下是两种方法的步骤和解释: 方法 1:通过材质 在 Unity 编辑器中,选择你想要修改透明度的模型。在 Inspector 窗口中,找到模型的 Renderer 组件&am…

HTML5本地存储账号密码

<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>HTML5本地存储账号密码</title> </head…

【Java从入门到精通】Java方法

在前面几个章节中我们经常使用到 System.out.println()&#xff0c;那么它是什么呢&#xff1f; println() 是一个方法。System 是系统类。out 是标准输出对象。 这句话的用法是调用系统类 System 中的标准输出对象 out 中的方法 println()。 那么什么是方法呢&#xff1f; …

主成分分析在R语言中的简单应用:使用mvstats包

在数据科学领域&#xff0c;主成分分析&#xff08;PCA&#xff09;是一种广泛使用的技术&#xff0c;主要用于数据降维和探索性数据分析。PCA可以帮助我们发现数据中的模式&#xff0c;减少数据集的复杂性&#xff0c;同时保持数据中最重要的特征。本文将介绍如何在R语言中使用…

04_jvm性能调优_并行收集器介绍

并行收集器&#xff08;此处也称为吞吐量收集器&#xff09;是类似于串行收集器的分代收集器。串行和并行收集器之间的主要区别在于并行收集器具有多个线程&#xff0c;用于加速垃圾回收过程。 通过命令行选项-XX:UseParallelGC 可启用并行收集器。默认情况下&#xff0c;使用…

LeetCode 105.从前序与中序遍历构造二叉树

题目描述 给定两个整数数组 preorder 和 inorder &#xff0c;其中 preorder 是二叉树的先序遍历&#xff0c; inorder 是同一棵树的中序遍历&#xff0c;请构造二叉树并返回其根节点。 示例 1: 输入: preorder [3,9,20,15,7], inorder [9,3,15,20,7] 输出: [3,9,20,null,nul…

【LeetCode刷题记录】110. 平衡二叉树

110 平衡二叉树 给定一个二叉树&#xff0c;判断它是否是平衡二叉树 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;true 示例 2&#xff1a; 输入&#xff1a;root [1,2,2,3,3,null,null,4,4] 输出&#xff1a;false 示例 3&…

vue3项目引入VueQuill富文本编辑器(成功)及 quill-image-uploader 图像模块(未成功)

tip&#xff1a;重点解释都写在代码注释里了&#xff0c;方便理解&#xff0c;所以看起来比较密集 富文本基本使用 项目文件夹路径安装依赖 npm install vueup/vue-quilllatest --save 全局注册&#xff1a;main.js // main.js// 自己项目的一些配置&#xff08;只放了主要…

注册表获取autoCAD安装位置

注意事项 注意&#xff1a;①64位操作系统注册表会重定向&#xff0c;RegOpenKeyEx第4个参数得加上KEY_WOW64_64KEY&#xff1b;②RegOpenKeyEx遍历子项时注意第2和第4参数&#xff0c;参考图&#xff1a; ③RegQueryValueEx同样得注意第6参数 完整代码 std::unordered_map…

基于ssm+vue+Mysql的药源购物网站

开发语言&#xff1a;Java框架&#xff1a;ssmJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;Maven3.…

Cokejogo巴西 电子游戏源码 游戏网站源码 电子游戏合集 电子游戏软件下载 游戏源码(带安装教程)

Cokejogo巴西pg电子游戏源码/H5PC端 前端vue编译后后端PHP/修复图片资源失效 后端测试环境&#xff1a;Linux系统CentOS7.6、宝塔、PHP7.2、MySQL5.6&#xff0c;根目录public&#xff0c;伪静态thinkPHP&#xff0c;开启ssl证书 源码下载&#xff1a;https://download.csdn.n…

CUDA内存模型

核函数性能并不只与线程束的执行有关。 CUDA内存模型概述 GPU和CPU内存模型的主要区别是&#xff0c;CUDA编程模型能将内存层次结构更好地呈现给用户&#xff0c;能让我们显示的控制它的行为。 对程序员来说&#xff0c;一般有两种类型的存储器&#xff1a; 可编程的&#x…

YOLO系列改进,自研模块助力涨点

目录 一、原理 二、代码 三、添加到YOLOv5中 一、原理 论文地址:

企业职能部门定岗定编项目如何做?

某国家级高新技术开发区成立于上世纪90年代&#xff0c;位于南方某市&#xff0c;地处三省交界处&#xff0c;是直接由该省委省政府创办的全省首批高新技术开发区。该开发区面积达到300平方公里&#xff0c;辖区人口30万人。历经数十年发展&#xff0c;在省委省政府的高度重视下…

QT:核心控件-QWidget

文章目录 控件enableobjectNamegeometrysetWindowTitleopacitycursorFonttooltipstyleSheet 控件 什么是控件&#xff1f; 如上所示&#xff0c;就是控件&#xff0c;而本篇要做的就是对于这些控件挑选一些比较有用的常用的进行讲解分析 在QT的右侧&#xff0c;会有对应的空间…

unity制作app(1)--登录 注册 界面

把学到的知识投入到生产中反而是一件简单的事情&#xff01; 1.调整canvas的形状&#xff0c;这里和camera没有任何关系! overlay&#xff01; 2.既然自适应&#xff0c;空间按钮的位置比例就很重要了&#xff01; game窗口中新增720*1280的分辨率&#xff01; 3.再回到can…

【论文阅读】ViTAE:Vision transformer advanced by exploring intrinsic inductive bias

ViTAE:Vision transformer advanced by exploring intrinsic inductive bias 论文地址摘要&#xff1a;简介&#xff1a;3 方法论3.1 重温视觉变压器3.2 ViTAE3.3 缩减单元3.4 Normal cell3.5 模型细节 4 训练4.1 Implementation details4.2 Comparison with the state-of-the-…

Elasticsearch:理解近似最近邻 (ANN) 算法

作者&#xff1a;来自 Elastic Elastic Platform Team 如果你是在互联网出现之前长大的&#xff0c;你会记得找到新喜好并不总是那么容易。我们是在无意中听到收音机里的新乐队时发现他们的&#xff0c;是因为忘了换频道偶然看到一个新电视节目的&#xff0c;也是几乎完全依据游…