摘 要:随着科技的进步,一场巨大的革命在工业领域内正在发生。高度的自动化,极少的人员参与成为这场革命的最终方向。那么工业上就会需要大量的工业机器人来辅助人类或者替代人类来完成部分或者全部工作。传统的机器人设计模式面对如此复杂的挑战力不从心,因此提出一种新的设计模式。利用已经成熟的ROS(Robot Operating System)机器人操作系统外加STM32来组建新的工业机器人模式。
关键词:机器人操作系统 机器人 设计模式
Abstract: With the advance of science and technology, a great revolution is taking place in the field of industry.A high degree of automation and minimal human involvement is the ultimate direction of this revolution.Then industrial robots will need a large number of industrial robots to assist or replace human beings to complete some or all of the work.The traditional robot design mode is unable to cope with such a complex challenge, so a new design mode is proposed.The mature ROS(Robot Operating System) Robot operating System plus STM32 is used to construct new industrial Robot modes.
Keywords: Robot operating system Robot Design patterns
【中图分类号】TP242.2 【文献标识码】B 文章编号1606-5123(2019)09-0000-00
1 引言
科技的发展推动了工业的进步,工业的进步产生经济效益又来刺激科技的发展。在当今工业界内面临巨大的变革,一场由机器代替人类的浪潮正在蓬勃的兴起。面对这一趋势,机器人领域也得以蓬勃发展,但也面临着巨大的挑战,如多机稳定的协同问题等。因此提出一种新的机器人设计模式迫在眉睫。利用已经成熟的ROS来对机器人本体进行的整体的管理,对各个数据的妥善发送和管理,然后利用STM32嵌入式的控制手段,来对机器人本体的一些传感器和驱动来进行数据的采集和直接控制。这样的设计模式,使得机器人的开发分工明确,开发便捷,易于大规模的部署和实施。
2 机器人操作系统(ROS)
在传统的个人PC机上通常安装有Windows、Linux、Mac等操作系统,这些操作系统使得我们方便的使用计算的各种资源,并为使用者提供良好的用户界面,这是传统计算机上的操作系统。那么今天我们所提到的ROS与之前的有什么区别呢?其实某种意义上来说ROS并不算是一个操作系统,它更像是安装在计算机操作系统之上的一个大型软件而已。如图1所示,可以看到我们ROS的安装需要在操作系统之上。ROS是一个虚拟出来的机器人操作系统。由于ROS系统的存在使得整个机器人具备在虚拟环境中工作的能力[1]。
在图1中,我们看到整个机器人的架构。利用ROS这个操作系统来管理机器人的一些资源,同时与底层的STM32核心控制相连接,通过CAN或者串口来进行一些数据或者命令的传输。同时ROS内带许多的工具包。
图1 ROS上层控制
3 底层控制(STM32)
嵌入式技术是专用计算机系统技术,它以应用为核心,以计算机技术为基础,软硬件均可裁剪适用在对功能、稳定性、功耗有严格要求的系统之中[2]。在嵌入式领域之中,STM32芯片介于低端和高端之间,它相对于普通的8/16位机有更多的片上外设,更先进的内核架构,可以运行uC/OS等操作系统;相对于可以运行Linux操作系统的高端CPU,其成本低,实时性强[3]。这些特点都为机器人的设计提供了极大的助力。
如图2所示,结合一个简单实例来看STM32在机器人设计中底层核心控制的作用。在图中我们不难看出各种模块均与STM32核心控制模块相连。其中,电源管理用来管理电池的充放电情况,STM32通过内部的外设ADC来实时监测电源的使用情况;电机驱动顾名思义,用来驱动机器人本体上的电机来实现机器人的运动和机械臂的运动;再看其他两大类的模块,几乎包含了机器人本体上的各种传感器模块,例如超声波避障模块使用I2C与STM32进行实时的距离传输;再有例如陀螺仪等使用串口通信的方式来与STM32进行数据的传输。
由此不难看出,在机器人的设计中,底层的控制使用STM32来进行相应的设计,使得开发的难度大大降低,并且使得机器人的设计上层和下层分离,耦合性降低。
图2 STM32核心控制
4 结束语
在前面两点中我们分别介绍ROS和STM32,一个成熟的开源框架ROS和简单易操作的STM32核心控制,使得机器人开发变得简单,快捷。并且降低了整个系统的耦合性,使得每个开发人员可以只关注自己所要工作的部分,最后由ROS这个操作系统将每一个模块、节点进行管理。
参考文献
[1]刘锦涛, 张瑞雷译.ROS机器人程序设计[M]. 北京: 机械工业出版社, 2016
[2]刘火良, 杨森.STM32库开发实战指南[M]. 北京: 机械工业出版社, 2013
[3]刘火良, 杨森.STM32库开发实战指南[M]. 北京: 机械工业出版社, 2013
作者简介