更新!整理出《ROS机器人编程》第九章ppt讲义版,请对照书籍P232-277页学习。
【说明】嵌入式系统的定义如下:
嵌入在需要控制的系统中的专用计算机系统。
【说明】嵌入式系统(英文:embedded system)是指,在机器或其他需要控制的系统中,执行控制功能的计算机系统。换句话说,一个嵌入式系统是整个系统中的一部分,是特定目的的计算机系统,是作为控制系统的大脑。
【说明】如图所示,为了实现机器人的功能,机器人使用了很多嵌入式设备。具体而言,为了使用机器人的舵机或传感器,采用了可以进行实时控制的微控制器,并且在利用相机的视频处理或导航过程中需要采用配备高性能处理器的计算机。
【说明】上图中列举了从8位微控制器到高性能的PC,在实际应用中要根据需要选择适当性能的嵌入式系统。以ROS为例,它需要在PC或ARM Cortex-A系列的高性能CPU中运行,并且需要类似Linux的操作系统。
【说明】由于Linux等操作系统不能保证实时性,所以为了控制舵机或传感器,使用适合实时
TurtleBot3 Burger和TurtleBot3 Waffle中,Cortex-M7系列微控制器用于控制舵机和传感器,而使用Linux和ROS操作系统的Raspberry Pi 3控制板则通过USB连接,配置结构如图。
【说明】OpenCR(Open-source Control Module for ROS)是一个支持ROS的嵌入式控制板,被用作TurtleBot3的主控制器。诸如电路/固件/ Gerber数据等硬件信息和用于 TurtleBot3的OpenCR源代码均已公开,并且用户可以修改和重新分发。
主控MCU使用STM32F746,它内嵌ARM Cortex-M7内核,硬件支持浮点运算,适合实现需要高性能的场合。
【说明】
1、高性能
OpenCR是一款高性能微控制器,采用了意法半导体的STM32F746,是ARM微控制器中最高端的Cortex-M7内核,工作频率高达216MHz。它也可以用来实现高速运算算法或利用多种外围设备来处理大量数据的任务。
2、支持Arduino
OpenCR的基本开发环境采用Arduino IDE,因此那些不熟悉嵌入式开发环境的人们也可以容易地使用。支持与Arduino UNO引脚头兼容的接口,因此可以直接使用那些在现有的Arduino开发环境中开发出来的很多库和源代码以及大部分Arduino扩展模块。由于OpenCR控制板是通过Arduino IDE控制板管理器添加和管理的,所以很容易处理固件的更新。
【说明】
1、高性能
OpenCR是一款高性能微控制器,采用了意法半导体的STM32F746,是ARM微控制器中最高端的Cortex-M7内核,工作频率高达216MHz。它也可以用来实现高速运算算法或利用多种外围设备来处理大量数据的任务。
2、支持Arduino
OpenCR的基本开发环境采用Arduino IDE,因此那些不熟悉嵌入式开发环境的人们也可以容易地使用。支持与Arduino UNO引脚头兼容的接口,因此可以直接使用那些在现有的Arduino开发环境中开发出来的很多库和源代码以及大部分Arduino扩展模块。由于OpenCR控制板是通过Arduino IDE控制板管理器添加和管理的,所以很容易处理固件的更新。
开源代码
OpenCR控制板生产所需的所有资料都已开放。提供了硬件生产所需的PCB Gerber和引导加载程序/固件也都已在github上公开。因此,用户可以根据需要改变它并重新制作。
■ https://github.com/ROBOTIS-GIT/OpenCR
■ https://github.com/ROBOTIS-GIT/OpenCR-Hardware
【说明】我们已经讨论了如何将ROS与嵌入式系统结合使用。需要实时控制的机器人与嵌入式系统是不可分割的关系。希望读者掌握与ROS结合使用的方法,用于以后的机器人开发。随后,第10、11、12和13章将介绍使用本章描述的嵌入式系统的移动机器人的实例。
原创声明:本篇文档为原创文档。欢迎转发转载引用,请注明出处。
喜欢本文请关注微信公众号“京天机器人”
Donghu Robot Laboratory, 2nd Floor, Baogu Innovation and Entrepreneurship Center,Wuhan City,Hubei Province,China
Tel:027-87522899,027-87522877