机器人技术(1)基于ROS的机器人底盘AtdRobot

  • Post author:
  • Post category:其他


一、 机器人移动底盘功能

此机器人移动底盘基于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/


)。



版权声明:本文为yongbutuifei原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。