一、 机器人移动底盘功能
此机器人移动底盘基于ROS(Robot Operation System)系统开发,将复杂的机器人底层“屏蔽”,给开发者提供了一个简单的软件编程环境,大大降低了机器人开发难度。在后面我们会比较详细的介绍ROS操作系统。
移动底盘的主要算法在装有ROS操作系统的处理器上完成(如装有linux系统的电脑,arm处理器等)。电机控制与基本传感器等底层电气功能则以节点的方式在下位机微处理器下进行。
配合激光雷达或双目摄像头,根据SLAM技术底盘机器人可以完成建图、自主导航与壁障等功能。由于ROS系统具有极强的拓展性,以节点(node)的方式可以很快完成手柄无线控制、烟雾传感等功能,还可以外拓下位机的方式完成多种功能,如机械臂的控制可以单独放在一个微处理上完成。
二、 机器人底盘小车的构成
ATD_ROBOT_2.0套件清单 | |
名称 | 数量 |
机械底盘 | 若干 |
电池10安时 | 1 |
万向轮 | 1 |
车轮 | 2 |
电机 | 2 |
Arduino Mega | 1 |
32G内存SD卡 | 1 |
树莓派3 | 1 |
电机控制模块 | 1 |
无线手柄 | 1 |
语音识别模块 | 1 |
底盘的核心控制器可以根据需要进行选配,如果功能与运算复杂,数据量大,那么装有linux系统的笔记本电脑,高档的ARM处理器板卡比较适合。如果开发功能简单,一般的智能硬件如树莓派等也可以负担。
对于控制伺服电机与获取传感器信息的下位机微处理器可以选择IO口丰富的Arduino、Stm32、MSP430单片机等。
小车的导航硬件有激光雷达或者是双目摄像头:
小车的动力部分有直流私服电机与TB6612FNG电机驱动器。
小车整体图
三、 ROS系统介介绍
想必大家都知道IOS,Android等智能手机操作系统。但今天的主角不是手机,而是它——ROS(机器人操作系统,RobotOperating System)。
进入新世纪以来,机器人技术取得了飞速的发展。机器人的商用化逐渐成为一种趋势,原因主要来自一下三个方面:
一、自动控制技术,人工智能技术巨大进步。
二、计算机小型化与多功能化,计算能力的大幅提高促进了机器人技术的发展。
三、激光雷达,摄像头等的机器人所需要的基本传感器设备成本的降低。
在这种趋势下,为满足代码的复用与模块化需求,ROS(机器人操作系统,RobotOperating System)应运而生。ROS的主要目的是在虚拟仿真与现实的环境下为机器人控制提供一个开源且标准的一个可编程框架。目前为止,ROS系统下已经能够实现基于激光雷达或者视觉的(SLAM),3D目标识别,机械臂的控制,机器学习等功能。
ROS源于2007年斯坦福大学人工智能实验室与Willow Garage机器人技术公司的项目合作,2008年之后就由WillowGarage来进行推动。同时,WillowGarage基于ROS还设计了一款40万美元PR2机器人。PR2上使用了双目立体摄像头,激光测距仪,7个自由度的机械臂,依靠底部4个轮子能够实现全向移动。
PR2机器人
不列颠哥伦比亚大学(UBC)机器人研究人员基于PR2开发了自主导航,自动乘坐电梯等功能,使PR2能够在不同楼层的实验室之间走动。值得一提的是电梯的自动按键功能是利用PR2的摄像头与机械臂配合实现的。相关视频网址:https://www.youtube.com/watch?v=6NPgToTOClw
PR2固然各种酷炫,但其价格会让普通人望而止步。但请你别急,现在ROS也为很多廉价的看机器人或者是部件提供了很多软件包,例如iRobot create,TurtleBot,LEGO,NXT等。
TurtleBot 机器人
ROS支持如C++、Python、Octave 和 LISP等多种语言。不仅如此ROS集成了很多现在已经存在的开源库,例如OpenCV、OpenRAVE、Player等。目前ROS主要在Ubuntu系统下安装使用,对于有linux编程基础的人来说上手是比较容易的。ROS功能之间的通信是建立在节点(node),话题(topic)与消息(message)基础上的。 ROS以节点的方式发布或者接收话题,话题之间的通信是通过在节点之间发送数据类型消息实现的。
ROS的建图与导航功能,借助Riviz图形软件可以在仿真或者真实情况下对机器人进行实时的避障、路径规划等功能的测试。
介绍到这里想必大家已经知道ROS系统的强大了吧。假如你是一个机器人爱好者,想必现在已经迫不及待要尝试使用ROS了吧。其实,学习ROS入门已经变得很简单,你只需要在一个拥有Ubuntu系统的电脑上按照wiki上的教程一步步的学习即可(http://wiki.ros.org/cn/ROS/Tutorials/)。