面向新工科的多功能机器人操作系统实验教学套件设计

2024-07-01 01:15:40栾添添白晓龙孙明晓
科技资讯 2024年8期

栾添添 白晓龙 孙明晓

摘要:为实现新工科背景下机器人工程专业体系建设与人才培养,设计了多功能机器人操作系统(Robot Operating System,ROS)教学实验套件。套件主要由“树莓派”控制器、单线陀螺仪惯性测量单元(Inertial Measurement Unit,IMU)、单目视觉相机、2D激光雷达以及直流电机等组成,主要功能包括:ROS基础通信、机器人仿真显示、IMU陀螺仪姿态显示、激光雷达数据显示、视觉图像显示与图像识别以及ROS电机操作控制等。该实验教学套件完全开源,支持二次测试开发,可以满足学生基于ROS的各类学习操作需求。该套件旨在提高学生对ROS的认知水平,实现学生对ROS理论知识的进一步理解,为其后续操作基于ROS的机器人创新创业与科研应用奠定理论和操作基础。

关键词:ROS(??)  新工科实验教学  机器人工程专业建设  激光雷达数据  视觉图像识别

Design of an Experimental Teaching Kit for the Multifunctional Robot Operating System for New Engineering

LUAN Tiantian  BAI Xiaolong  SUN Mingxiao*

(School of Automation, Harbin University of Science and Technology, Harbin, Heilongjiang Province, 150080 China)

Abstract: In order to realize the system construction and talent training of robot engineering majors under the background of new engineering, a teaching experiment kit for the multifunctional Robot Operating System (ROS) is designed . This kit is mainly composed of a "Raspberry Pi" controller, an inertial measurement unit (IMU) of single-line gyroscopes, a monocular vision camera, a 2D lidar, a DC motor, etc., and its main functions include: the basic communication of the ROS, robot simulation display, IMU gyroscope attitude display, lidar data display, visual image display and image recognition and ROS motor operation control. This experimental teaching kit is completely open-source and supports secondary test development, which can meet the needs of students for various learning operations based on the ROS. This kit aims to improve students' cognitive level of the ROS and realize their further understanding of the theoretical knowledge of the ROS, so as to lay a theoretical and operational foundation for their subsequent operation of the innovation, entrepreneurship and scientific research applications of robots based on the ROS.

Key Words: Robot operating system; Experimental teaching of new engineering; Construction of robot engineering majors; Lidar data; Visual image recognition

在新工科背景下,工程实践能力是所有学生需要培养的基础能力,也是检验现代化教学水平的重要标准[1]。因此,制订相关的教学计划,设计开发工程实践教学套件,对工程专业性人才培养和工程学科建设均有重要意义和价值[2]。

机器人操作系统(Robot Operating System,ROS)是目前应用范围最广的开源机器人操作系统[3],其系统稳定性和开发性属于当前机器人的第一梯队,培养学生操作基于ROS的机器人平台是提升工程实践能力的重要途径之一。结合机器人工程专业特色,搭建了多功能ROS教学实验套件,设计了ROS基础操作、ROS话题、ROS与机器人仿真、ROS与电机、ROS与激光雷达、ROS与视觉相机等一系列课程,通过ROS实验套件的教学以及学生基于该套件的实践操作,可以提升学生对于ROS的认知与理解,增强学生的工程实践能力,为后续更深层次的机器人系统学习与操作奠定良好的理论与实践基础[4-5]。

1 总体设计方案

ROS实验教学套件主要包括核心控制器Raspberry 4B、用于位姿显示的MPU6050陀螺仪、用于配合ROS话题指令输出的LED模块、用于测距的超声波模块、用于建图的RPLidar A1型2D激光雷达等。核心控制器中内置ubuntu18.04系统与ROS系统,板载了28个GPIO接口,支持TTL 串口、I2C、SPI等总线传输,并集成了基础控制算法,方便学生开展ROS、机器人、Python/C++和AI等方面的学习和开发,总体框架如图1所示。

ROS实验教学套件为完全开源,支持程序的重新编写与二次开发,可以实现的功能包括:ROS基础通信、机器人仿真显示、IMU陀螺仪姿态显示、机器人仿真建图与导航、视觉显示标记,图像识别以及ROS电机操作控制等,可实现功能丰富,有利于授课教师及学生对ROS系统进行理解和操作。

2 ROS实验套件功能

2.1  LED模块控制

LED控制需要使用节点话题通信,由发布者、订阅者、Master三者构成,实现了发布、订阅通信机制,是ROS中常用的数据交换方式。ROS实验套件实现LED控制,首先需要实现ROS节点话题通信,使发布者节点与订阅者节点建立通信联系,然后通过话题控制LED模块。具体的实现过程为:在工作空间中创建对应功能包,并给与功能包执行Python文件的权限和执行树莓派GPIO[6]的权限。其次,在该功能包下创建执行LED控制的Python文件并打开终端运行该文件[7],然后打开一个新的终端查看ROS话题。最后,新开终端分别显示LED模块话题状态和发布开关LED模块话题。

本实验是ROS实验套件入门实验,可以帮助学生学习ROS中相关的基础程序指令、熟悉ROS中功能包的创建过程以及对话题通讯机制等知识的了解。

2.2  超声波距离测量

超声波距离测量利用ROS系统中的服务机制,不同于话题机制的单向异步通信方式,服务机制采用的是一种请求-响应式的模式[8],属于同步双向式通信方式。

首先,在工作空间下创建超声波测距功能包,分别编写测距服务端Python文件和测距客户端Python文件,修改对应的系统文件。其次,给ROS系统执行树莓派GPIO的权限,并在终端运行测距服务端文件。最后,在终端运行测距客户端文件,将超声波距离传感器对准某个物体,在终端状态界面显示距离。

通过本实验,学生可以学习ROS中服务机制的相关知识,进一步掌握超声波传感器的同步双向式通信方式,熟悉功能包的创建指令。

2.3  ROS机器人仿真显示

ROS实验教学套件进行机器人仿真显示时需要创建统一机器人描述格式(Unified Robot Description Format,URDF)文件,URDF是非常重要的机器人格式描述文件,该文件用于构建机器人模型。ROS可以解析URDF文件中使用的XML格式描述的机器人模型,同时也提供URDF文件的C++解析器。进而通过TF功能包广播机器人模型,机器人仿真显示的具体实现步骤为:在工作空间下创建对应功能包,在此功能包中创建launch启动文件和机器人模型文件,在终端运行launch文件,查看其显示效果;在终端启动URDF模型,启动三维可视化工具,将显示机器人界面;切换到GUI窗口,可以直观看到轮子转动以及TF坐标系的转动。

本实验主要运用TF功能包和URDF文件以及RVIZ可视化工具等ROS基础理论知识,学生进一步学习了如何运用ROS仿真机器人的过程,为后续机器人开发提供了理论基础。

2.4  IMU位姿显示

IMU惯性测量单元是测量物体三轴角速度和加速度的设备[9]。ROS实验教学套件通过与MPU6050型IMU相连,启动相应程序可以实现IMU当前位姿测量与显示。MPU的基本功能有以下两部分:3轴陀螺仪和3轴加速度计,分别用来测量x、y、z轴转动时的角速度和x、y、z方向收到的加速度。3轴陀螺仪通过对各轴角速度求积分可以得到三个轴的转动角度;而3轴加速度计可以测量三个轴所受的加速度,在静止状态下,测量到的是重力加速度,当物体发生倾斜时,通过计算倾斜时的重力分力,可以粗略的得到倾斜角度。当处于运动状态下,除了重力加速度,还叠加了由于运动产生的加速度。

ROS控制器和MPU之间的通信采用了I2C总线协议,该协议涉及两条关键信号线路:SDA数据线和SCL时钟线,用于数据传输和时钟同步。在主函数中,首先进行ROS节点的初始化,并创建发布者,将IMU计算得出的位姿数据发布到特定话题中,以便其他订阅节点能够接收到。其次,通过smbus模块通道的初始化,设置IMU模块的寄存器地址,通过I2C总线协议读取数据位的信息。最后,通过姿态计算公式,计算出IMU的横滚角和俯仰角。程序运行后,采集的最终结果经过换算后将在用户界面中呈现。当IMU发生摆动时,界面数据会相应地变化。这种实时更新为实时监测物体的姿态变化提供了重要支持。

IMU位姿显示主要由两部分组成,具体内容如下。

2.4.1  安装i2c-tools套件

打开终端,输入安装指令,安装完成后,接着输入指令检测IMU是否连接成功。

2.4.2  创建功能包

在工作空间下创建对应功能包,在功能包下创建对应的python程序文件,然后运行节点文件,观察实验现象。

通过对MPU6050型IMU的学习,学生可以掌握MPU6050数据处理的原理,熟悉I2C总线的通信方法和读取操作,并了解创建ROS软件包的过程以及话题发布IMU数据的应用过程。

2.5  ROS与激光雷达

激光雷达是机器人进行地图建立的常用传感器之一[10],主要应用有二维激光雷达和三维激光雷达。而激光雷达主要有激光发射机构、反射回激光机构以及信号处理单元三部分组成。ROS实验教学套件通过与RPLidar A1型2D激光雷达连接能够实现激光数据的显示以及简单地图的建立,二维激光雷达能够发射单线激光,进行圆周转动对环境进行360°的扫描,形成二维平面。

激光雷达需要配备相应的驱动ROS功能包,通过对相应ROS功能包进行驱动[11-12],才能正常工作。激光雷达所得到的数据,通过rosbag命令进行记录、回放、分析,通过该命令可以将指定的数据记录到.bag后缀的数据包中,并对其进行数据的离线分析和处理。激光点云数据处理是激光雷达工作的重要步骤,主要有五部分组成:点云数据采集、点云数据预处理、点云数据滤波、点云数据分类或分割、点云数据特征提取。

激光雷达数据显示主要分为3个阶段,具体为:打开终端,输入命令以录制激光雷达话题数据并且保存bag包文件,然后再打开新的终端,输入对应指令启动激光雷达数据采集;回放上一步的激光雷达bag包文件,打开新终端,通过输入回放指令,进行回放;数据显示阶段:打开RVIZ界面,配置对应参数及话题,激光雷达开始回放采集的数据。回放的激光雷达话题数据与录制时的数据保持一致。

在本实验中,学生可以领会激光雷达的工作原理,并且掌握如何使用单线二维激光雷达采集数据,熟悉RVIZ可视化工具的设计流程。

2.6  ROS与视觉相机

视觉相机是机器人的核心传感器之一,它扮演着机器人“眼睛”的角色,视觉相机的目的是将通过镜头抓取到的投影在传感器的图像传送到能够储存、分析和显示的机器设备上。通过视觉相机对环境数据的采集,机器人可以完成定位和导航等任务。ROS实验教学套件通过连接单目相机能够实现画面的实时显示。单目相机对于采集的数据处理非常方便,其显示图像为二维图片,且该相机与控制器的通信方式采用USB接口进行通信。

在ROS实验教学套件的基础上,学生可以进一步开发基于深度学习的图像识别功能。利用开源的计算框架TensorFlow,通过加载MNIST字符集的预训练模型进行手写数字识别。首先,在终端运行相机驱动程序,启动相机设备。接着,打开另一个新的终端运行对应控制指令,启动ROS节点。在白纸上用记号笔手写一个数字,将相机对准数字,启动RVIZ界面。从RVIZ中可以看到相机节点发布的未经处理的原始数字图像,还有经过阈值分割以后的二值化图像。

通过本实验,学生可以掌握ROS获取视觉相机数据的方法,掌握通过ROS与视觉相机的通信方式;通过对MNIST手写数字的识别以及ROS与TensorFlow的联合调用,学生可以了解深度学习在机器人领域的应用,为将来从事机器人相关领域的创新设计奠定基础。

2.7  ROS与电机

电机控制是实现ROS机器人移动的基本条件,ROS实验教学套件通过与两个直流电机连接实现两轮简单机器人的移动[13]。电机控制需要通过控制器发出PWM波形,电源逆变驱动器接收到波形后,控制电机进行运动,然后传感器将采集的电机数据反馈到控制器,实现闭环控制。通过对PWM波形调制,可以调节电机的转速,实现机器人不同速度的移动。

首先,给ROS实验教学套件增加RPi引脚库权限,实现控制器与ROS实验教学套件的交互。接下来,安装ROS键盘控制官方功能包,实现键盘控制机器人运动的功能[14]。启动ROS master,节点间相互通信,启动ROS键盘控制官方功能包,虚拟环境中会出现相应界面。最后,通过ROS程序执行树莓派GPIO权限,然后启动编写的控制电机程序。

在本实验中,学生可以学习电机控制系统的原理、PWM波形调制原理,掌握ROS控制电机的方法,为以后学习ROS机器人创新设计应用奠定良好的基础。

3 结语

多功能ROS实验教学套件是实现“新工科”背景下体系建设与人才培养的重要途径。经过实验验证,该套件能够满足学生对ROS相关知识的认识与实践,符合教学要求且该套件程序完全开源,支持二次开发,通过该套件的实践训练,有助于提升学生工程实践能力。通过本实验教学套件,可以让学生对ROS操作系统的相关知识和操作有更深层次的认识,激发对于ROS系统实践的兴趣,有利于学生了解当前机器人系统的前沿知识,也有助于锻炼学生工程创新创业探索、工程实践和工程思辨等方面的能力。

参考文献

[1] 李森, 杨存祥, 曹祥红, 等.新工科背景下多校联合强化专业建设的路径探索[J].创新创业理论研究与实践,2023,6(17):95-98.

[2] 孙明晓, 栾添添, 尤波, 等. 新工科背景下机器人工程专业创新实践体系分析与思考[J]. 高教学刊, 2022,8(18): 33-36,40.

[3] 明瑞冬. 基于ROS的移动机器人自主导航系统研究[D]. 武汉: 武汉理工大学, 2018.

[4] 闫亚宾, 田亚平, 张强, 等. 面向工程应用的单片机系统MBD实训教学改革研究[J].创新创业理论研究与实践, 2023, 6(21): 42-45.

[5] 李学基,吕伟珍,罗洋,等.基于树莓派的高粘度流体灌装系统设计与实现[J].工业控制计算机, 2023, 36(4): 16-18.

[6] 张立立,白柯岩,王彤,等.基于深度学习的人群密度检测系统在嵌入式平台上的应用[J].实验室研究与探索,2023,42(1):141-146.

[7] 孟艳艳,贾长洪,刘萌,等.以专业核心素养为导向的专业实践课程教学改革研究:以STM32单片机应用开发课程为例[J].高教学刊,2022,8(2):150-153.

[8] 艾伟,席明龙,金俊.创新视角下模块化机器人工程实践教学模式探索[J].创新创业理论研究与实践,2023,6(21):23-25.

[9] 蒲文浩,刘锡祥,陈昊,等.多传感器融合的激光雷达点云矫正与定位方法[J].激光与光电子学进展,2023,60(24):275-282.

[10] 林子祥,张斌,王嘉盛,等.激光雷达IMU紧耦合的室内大范围SLAM方法[J].现代电子技术,2023,46(20):135-141.

[11] 张辉,刘淼,陈路,等.北航智能无人电动汽车教学实验平台及智能网联教学与培训探索[J].高教学刊,2021,7(26):10-14.

[12] 庄庭达,李海,王浩楠,等.多传感器融合双臂移动机器人仿真系统与实验[J].机械设计与研究,2021,37(4):9-14,25.

[13] 李斌,王智勇,娄璟.新工科背景下四阶融合递进式实践教学创新模式探索:以电磁平衡小车为例[J].创新创业理论研究与实践,2023,6(17):10-14.

[14] 张开乐,陈兴文,许爽.基于ROS的移动机器人开发平台设计与实现[J].制造业自动化,2023, 45(9):104-109.