APP下载

基于ROS的服务机器人实训课程虚拟仿真教学研究

2024-02-20刘相权秦宇飞

高教学刊 2024年5期
关键词:虚拟仿真实验教学

刘相权 秦宇飞

摘  要:针对目前服务机器人实训课程教学存在的设备成本高、学生操作机会不足等问题,该文提出基于ROS的仿真实训课程教学方案。依托真实系统和仿真实训室,构建基于ROS的服务机器人建模与运动仿真、建图与导航仿真、平面视觉检测仿真、三维视觉检测仿真、物品自动抓取综合应用仿真5个实训项目,详述每个项目的实施要点,实现虚实结合的实训模式。经过实践证明,虚拟仿真实验教学不仅提高实训教学效率,同时极大激发学生的学习兴趣与自主创新意识。

关键词:服务机器人;虚拟仿真;建图与导航;视觉检测;实验教学

中图分类号:G640      文献标志码:A          文章编号:2096-000X(2024)05-0073-05

Abstract: Aiming at the problems of high equipment cost and insufficient operation opportunities for students in the teaching of Service Robot Training course, a simulation training course teaching scheme based on ROS is proposed. Relying on the real system and simulation training room, five training projects such as service robot modeling and motion simulation based on ROS, SLAM and navigation simulation, plane visual inspection simulation, three-dimensional visual inspection simulation and automatic grasping comprehensive application simulation are constructed. The implementation key points of each project are described in detail, and the training mode of combining virtual and reality is realized. Practice has proved that the virtual simulation experiment teaching not only improves the training teaching efficiency, but also greatly stimulates students' learning interest and independent innovation consciousness.

Keywords: service robot; Virtual simulation; mapping and navigation; visual inspection; experiment teaching

教育部辦公厅印发的《2019年教育信息化和网络安全工作要点》指出:“推动大数据、虚拟现实、人工智能等新技术在教育教学中的深入应用。”由此可见,国家高度重视虚拟现实在教学方式方法改革中的应用。

ROS作为一种开源软件,集成了全球机器人领域顶尖科研机构的研究成果,成为世界上较先进、通用的机器人与人工智能科研和教育平台。其涵盖了建图与导航定位、物体识别、运动规划、多关节机械臂运动控制和机器学习等内容。

针对服务机器人实训课程教学存在的设备成本高昂、学生操作机会不足、操作危险及创新能力培养困难等问题,本文提供了在机器人实训教学中基于ROS可以实现的仿真应用,以促进学生实践动手能力的提高,提升学生的职业竞争力[1]。

一  实训课程教学规划

服务机器人实训课程的课时为两周(共10天),设置有5个仿真实训项目,进度安排见表1。

(一)  服务机器人建模与运动仿真实训项目

通过这个仿真项目的训练,学生可以掌握URDF文件中的物理模型结构、传感器的代码描述,最后通过实例实现基于激光雷达传感器的闭环运动控制仿真[2]。建模与运动仿真实训项目内容如下。

1  URDF的物理模型描述

在ROS系统中,机器人的三维模型是通过URDF(Unified Robot Description Format)文件进行描述的,是一种基于XML规范扩展出来的文本格式。从机构学角度讲,机器人通常被分解为由连杆和关节组成的结构。而URDF就是用来描述这一系列关节与连杆的相对关系的工具。除此之外,还包括惯性属性、几何特点和碰撞模型等一系列附加参数。

2  URDF的传感器描述

在模型文件中,包含了全向移动底盘描述、RPLidar A2的激光雷达描述、Kinect v2的立体相机描述,在Gazebo仿真中,将会根据立体相机描述输出相应的数据。Kinect v2的描述内容根据输出数据格式分成了三个部分:SD深度图数据、HD高清彩色图像数据和QHD半高清彩色图像数据。

3  基于激光雷达传感器的闭环运动控制仿真

在一个标准的ROS程序里,获取机器人从仿真环境里采集到的数据,再反馈回去控制仿真环境里的虚拟机器人。整个程序的实现流程如图1所示。

程序启动后,如图2所示,机器人开始以0.05米/秒的速度向前移动;当机器人前方1米处出现障碍物时,机器人停止移动,以0.3弧度/秒的速度原地转动;当机器人转到前方1米范围内没有障碍物,停止转动,继续以0.05米/秒的速度向前移动。

(二)  建图与导航仿真实训项目

通过这个仿真项目的训练,学生首先在了解SLAM建图原理的基础上,掌握SLAM建图和Navigation导航的仿真;接着用开源地图导航插件完成在仿真环境中的导航任务[3-4];最后通过语音指令实现机器人的自主导航功能。建图与导航仿真实训项目内容如下。

1  进行SLAM建图和导航仿真

在本项目中,建立了一个模拟家庭环境的场景,如图3所示,场景中共有4个房间,分别为客厅、卧室、餐厅和厨房,在每个房间里都放置了一些床、柜子之类的家具;场景有2个出入口,服务机器人初始位置就位于场景的中心位置。

ROS支持多种SLAM算法,本项目主要使用的是Gmapping,是在激光雷达的基础上,融合了电机码盘里程计等信息。我们可以使用USB手柄或键盘控制机器人移动,在场景里巡游,Gmapping会把机器人行经的区域地图都扫描出来。在Rviz窗口中,可以看到建好的地图如图4所示。

建好地图后,为机器人指定导航的目标地点和目标朝向,ROS的导航系统会自动规划出一条紫色的路径。路径规划完毕后,机器人开始沿着这条路径移动,机器人到终点后,会原地旋转,调整航向角,最终朝向和初始设置的目标朝向一致,如图5所示。

2  基于插件的导航调用

如果是在多个导航目标点之间巡航,并且需要在导航任务的间隙插入一些识别抓取等操作,代码和工作量将成倍增加,为简单起见,可以下载一款名为waterplus_map_tools的开源地图导航插件,该插件基于Rviz的可視化操作,相比代码描述更加直观。用鼠标设置导航点,加上少量代码,就可以完成导航任务。如图6所示,在地图上设置了4个导航目标点,启动运行后,导航插件会自动规划全局路径,机器人沿着这条路径自主移动,依次到达各导航目标点。

3  语音识别和自主导航综合实例

在这个实例中,通过使用一款名为xfyun_waterplus的开源语音识别包,将自主导航功能与语音识别结合,机器人通过语音识别引擎识别语音指令(Go to the kitchen),然后按照语音指令,执行相应的任务(自主导航到“kitchen”这个航点)。

(三)  平面视觉检测仿真实训项目

通过这个仿真项目的训练,学生可以掌握在ROS系统中获取机器人的视觉图像,并将其转化为OpenCV格式,显示在窗口中;实现机器人视觉中的颜色特征提取和目标定位功能,并进一步根据目标位置计算速度并输出给机器人,完成一个目标跟随闭环控制;最后在仿真环境中通过使用级联分类器实现人脸识别功能[5]。平面视觉检测仿真实训项目内容如下。

1  使用OpenCV获取服务机器人的视觉图像

如图7所示,通过编程可以实现的功能有:①从服务机器人的头部相机获取实时的视觉图像;②将获取的视觉图像转换成OpenCV格式,并显示在窗口程序中。

2  使用OpenCV进行颜色特征提取和目标定位

如图8所示,通过编程可以实现的功能有:①对机器人视觉图像进行颜色空间转换,从RGB空间转换到HSV空间,排除光照影响;②对转换后的图像进行二值化处理,将目标物体分割提取出来;③对提取到的目标像素进行计算统计,得出目标物的质心坐标。

如图9所示,可以看到检测到的目标物的中心坐标值。

3  实现服务机器人的目标跟随

通过编程可以实现的功能有:①进行颜色特征提取和目标定位;②根据目标位置计算机器人运动速度,完成目标跟随功能。

启动程序后,如图10所示,可以看到Gazebo里的橘色球开始随机运动,服务机器人也开始跟随其运动。实例将识别检测和运动行为结合起来,形成一个典型的视觉闭环控制系统。

4  实现服务机器人的人脸检测

通过编程可以实现的功能有:①从机器人头部相机获取彩色图像;②使用OpenCV的级联分类器实现人脸检测。

启动程序后,如图11所示,可以看到,机器人已经检测到人脸,并用一个紫色方框将其锁定。还让机器人运动起来,通过不同视角去测人脸识别的鲁棒性。

(四)  三维视觉检测仿真实训项目

通过这个仿真项目的训练,学生首先通过使用立体相机获取其输出的三维点云数据;接着利用点云数据实现桌面高度的检测以及桌面上物品的坐标定位;最后结合机器人机械臂,完成对桌面上物品抓取的功能[6]。三维视觉检测仿真实训项目内容如下。

1  服务机器人的三维点云数据获取

服务机器人上的头部立体相机每接收到一帧深度图像,ROS就会将其转换成三维点云,在实际开发中,通常将其转换成基于机器人坐标系的PCL点云格式,把其存储到点云数组,这样就可以使用丰富的PCL函数来处理点云数据。

编好程序启动运行后,会弹出Gazebo的仿真界面,如图12所示,在该场景中,服务机器人面前摆放着一张桌子,桌子上放置两瓶饮料。

同时还会弹出一个Rviz界面,如图13所示,里面显示立体相机采集到的点云集合。

2  使用PCL点云库进行平面特征提取

在获取到三维点云数据的基础上,进一步实现对载物平台的高度测量。

首先使用一个直通滤波器对获取到的三维点云截取保留距离地面高度0.3米到1.5米之间的点集,这样只保留载物平台高度周围的点集。截取后的点云结果存放在容器对象cloud_src里。接着使用RANSAC方法的分类器操作函数segment()对点云cloud_src进行平面检测,检测出的平面三维点,存放在容器planeIndices里。最后对容器planeIndices里所指示的平面三维点的z值进行统计,进行一个均值处理,获得平均高度值,平均高度就是载物平面的大概高度。

编好程序启动运行后,终端显示载物平台的高度测量结果。

3  使用PCL点云库进行点云聚类分割

在成功测量桌面高度的基础上,进一步通过点云的聚类分割,检测出桌面上物体的空间坐标。

首先使用一个直通滤波器对获取到的三维点云截取保留比载物平台高度稍高一点的点集,这样可以剔除载物平台,截取后的点云结果存放在容器对象cloud_src里。接着使用一个欧式距离分类器pcl::EuclideanCluste

rExtraction来分离点云团,通过KdTree近邻搜索方法,将点云中的物品依次分割出来,分类结果存放在容器cluster_indices中。对容器cluster_indices中的所有点云团进行遍历,计算每个点云团的所有点的x、y、z坐标的均值,就得到每个物体的中心坐标。

编好程序启动运行后,终端显示物体的中心坐标。

4  基于三维视觉的物品检测和抓取

在实现了桌面高度检测以及桌面上物品坐标定位的基础上,进一步将其与机器人的机械臂相结合,完成一个物品抓取的功能。

编好程序启动运行后,如图14所示,机器人慢慢地移动底盘,对准将要抓取的目标物。当机器人调整好自己和目标物的相对位置时,伸出机械臂进行抓取,然后后退,让物品离开桌子上方,抓取功能完成。

(五)  物品自动抓取综合应用仿真实训项目

通过这个仿真项目的训练,学生综合应用地图创建、航点设置、三维视觉定位和机械臂抓取等知识,实现自动路径规划、机器人从厨房桌子上抓取饮料、自主运动、把饮料放置餐厅桌子上等一系列动作,完整实现服务机器人饮料抓取和放置的仿真任务[7]。任务运行步骤见表2。

编好程序启动运行后,会弹出一个模拟家庭环境的Gazebo仿真界面,如图3所示。

服务机器人到达导航目标点“kitchen”之后,如图15所示,开始抓取载物台上的饮料。

获取饮料后,机器人导航去往航点“dinning room”,到达后,如图16所示,松开手爪,饮料滑落到桌子上。随后机器人后退,离开桌子,完成任务。

二  实训条件与效果

实施服务机器人实训课程虚拟仿真教学方案的前提是实验室拥有足够数量的计算机,每台计算机能联网,并安装有Linux Ubuntu 20.04和ROS noetic。

该实训教学方案已在北京信息科技大学机器人工程专业2届学生的服务机器人实训教学中得到连续应用,收到了良好的实训效果,激发了学生的学习积极性及创新思维。在仿真实训过程中,学生可以把仿真环境中已经测试成功的代码移植到現场真实的服务机器人上进行验证,节省现场编程的时间,取得更好的实训效果。

三  结束语

基于ROS的服务机器人实训课程虚拟仿真教学方案能让每位学生都能充分体验到每个项目的开发流程,充分发挥了学生在学习中的主体作用,有效解决了服务机器人设备和空间不足的困境,在降低了实训成本的同时,提高了实训的效率。

参考文献:

[1] 郝翠霞,叶晖.工业机器人实训课程的虚拟仿真教学研究[J].实验技术与管理,2018,35(6):144-146.

[2] 仲朝亮,吕强.移动机器人虚拟仿真平台及其在实验教学中的实践应用[J].实验技术与管理,2020,37(8):146-148.

[3] 杨亮,李文生,傅瑜,等.基于ROS的机器人即时定位及地图构建创新实验平台研制[J].实验技术与管理,2017,34(8):99-103.

[4] 祝甜一.基于ROS的自主式救援机器人SLAM和导航系统研究[D].南京:东南大学,2015.

[5] 周锡恩,吴镇江.基于视觉检测与自主导航的轮式机器人平台[J].信息技术,2019(10):55-58.

[6] 韩峥,刘华平,黄文炳,等.基于Kinect的机械臂目标抓取[J].智能系统学报,2013,8(2):149-155.

[7] 杨丽新,黄亮辉.基于机器人实验教学的虚拟仿真集成技术探讨[J].实验室研究与探索,2017,36(11):103-106,125.

猜你喜欢

虚拟仿真实验教学
关于基础教育阶段实验教学的几点看法
小议初中化学演示实验教学
电容器的实验教学
对初中化学实验教学的认识和体会
中职畜禽解剖课程虚拟仿真实训教学资源的建设与应用
几何体在高中数学实验教学中的应用
浅析虚拟仿真技术在海军院校教学中的应用
虚实结合和科教融合的计算机实验教学体系
数字积分法插补仿真实验教学系统开发
网络虚拟仿真实验中心建设研究与实践