机器人视觉定位系统研究与实现

来源 :科技信息·学术版 | 被引量 : 0次 | 上传用户:feijj2002_99
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:本文以机器人操作系统(Robot Operating System,ROS)为研究平台,以移动机器人的视觉定位功能为研究目标,针对移动机器人在路面上的定位、捕捉图像及导问题进行研究。实现过程中,使用了开源物理仿真环境(gazebo)搭建与模拟机器人视觉定环境,三维平台(Rviz)搭建仿真平台完成了多点导航功能。通过实景测试,验证了本文实现机器人视觉定位功能的有效性。
  关键词:机器人操作系统(ROS);开源物理仿真环境(gazebo);三维平台(Rviz);多点导航。
  1.所用系统和算法介绍
  1.1 ROS系统源于2007年机器人技术公司“Willow Garage”个人机器人项目与斯坦福大学人工智能实验室项目的合作。2008年后,由柳树车库进行推广和维护。经过多年的发展,ROS 操作系统日趋完善,不仅为操作者提供了实用性较强的工具,也提供了先进的开源算法。ROS具有点对点设计、多种编程语言、快速测试和分布式计算等优点,基于 ROS的机器人应用开发逐渐成为主流[1]。
  1.2机器人SLAM算法介绍
  1)SLAM是同步定位与地图构建(Simultaneous Localization And Mapping)的缩写,最早由Hugh Durant-Whyte和John J.Leonard自1988年提出。主要用于解决移动机器人在未知环境中运行时即时定位与地图构建的问题。ROS系统提供了多种SLAM功能包,包括二维SLAM的gmapping、hector、cartographer功能包,以及三维SLAM的rgbslam、ORB_SLAM功能包。这些功能包可分别实现仿真机器人和真实机器人的SLAM功能[2]。
  2)自主导航:ROS提供了移动机器人的导航框架,包括实现机器人定位的amcl功能和实现路径规划的move_base功能包,可帮助快速实现轮式移动机器人的导航功能。
  3)自主探索SLAM:结合SLAM与自主导航功能,机器人可以在无人工干预的情况下自主完成未知环境的SLAM建图功能,导航路径自动根据地图信息的完善而不断优化。
  2.自主导航仿真
  2.1 Gazebo开源物理仿真环境
  Gazebo是开源物理仿真环境,通过它,加上PR2(是Willow Garage公司设计的机器人平台,也是目前科研领域常使用到的机器人之一)功能包嵌入,能实现移动机器人模型的雏形,PR2功能包机器人模型如图1所示。在Gazebo物理环境下还可实现任意建模模型。
  2.2 Gazebo物理仿真环境搭建
  仿真步骤:(1)配置机器人模型。(2)创建仿真环境。(3)开始仿真。
  1)机器人底盘仿真:为各link添加惯性参数与碰撞属性和gazebo标签,同时为joint添加传动装置(使用transmission标签,小车轮子用速度控制接口)。
  2)添加gazebo控制插件(相当于作为驱动板):编写并运行相应launch文件得到gazebo中的机器人仿真模型。
  3)创建仿真环境:选择insert,在坐标系中插入已有的模型。
  4)传感器仿真:摄像头仿真,为摄像头link添加碰撞属性和惯性属性。同时宏定义摄像头,智能车道路运行仿真模拟如图2所示。
  用后台图形工具套件Qt查看摄像头当前画面同时启动键盘控制,键盘控制界面及仿真实例完成效果如图3所示。
  2.4 机器人视觉定位具体应用模块与组件
  2.4.1 Rviz三维平台
  Rviz 是机器人操作平台 ROS 中的一种可视化工具,可以图形化显示机器人的传感器信息,运动状态以及周围环境的变化信息等。同时Rviz支持丰富的数据类型,通过加载不同的Dispalys类型达到可视化,每一个Dispaly都有一个独特的名字。下面是几个常见的display类型:Axes-显示坐标系;camera-从相机视角显示图像;Grid-显示网格;Image-显示图像;Odomerty-显示里程计数据;RobotModel-显示机器人模型。
  2.4.2 arbotix_gui 控制器
  arbotix是一款控制电机、舵机的控制板,并且提供相对应的ros功能包。该功能包不仅可以驱动真实的ArbotiX控制板,还提供了一个差速控制器。通过接收速度控制指令更新机器人的joint状态,从而实现在rviz中的运动。在移动机器人的建图过程中,可以启动键盘节点控制机器人进行运动从而实现对实验环境地图的构建。同样也可以使用 arbotix_gui 控制器控制机器人完成建图工作。
  2.4.3 室内移动机器人软件结构
  基于 ROS 的移动机器人系统软件设计,主要包括底盘驱动的控制、激光雷达的数据采集、SLAM、AMCL 定位以及导航。
  1)激光雷达节点:将激光雷达采集的数据发布到scan 话题上,只需要订阅这个话题就能使用这些数据。
  2)底盘驱动控制节点:树莓派4B开发板下达速度指令传输到移动机器人底盘控制板,从而控制移动机器人以此速度运行。底盘驱动控制节点通过订阅/cmd_vel 话题,把消息转换成速度指令,并通过串口发送到 STM32F405 控制板上,控制机器人移动。
  3)SLAM节点:通过对激光雷达节点发布的/scan 话题的订阅,再结合2D SLAM算法实现地图构建。
  4)AMCL节点:通过订阅/scan话题获取激光雷达数据,并输出机器人在地图中的位姿信息。
  5)导航节点:在已知的地图上根据激光雷达测量的数据控制移动机器人导航,并躲避障碍物。
  2.4.4 通信設计   底盘驱动板和 ROS 之间的通信,即 STM32 和树莓派之间的通信基于串口通信。在进行通信之前,需先将格式一致的串口通讯的数据包信息从发送设备的TXD接口传输到接收设备的 RXD 接口。在ROS中,控制节点发布的命令话题需要通过串口节点来订阅,并通过串口设备发送到移动底盘。同时串口节点实时接收移动底盘发送的传感器数据,并进行封装发布 sensor话题,listener节点实时订阅这个sensor话题,这样就实现了 ROS 和移动底座的通信过程。可以在 ROS 中安装一个serial串口库,并进行参数配置,使参数和 STM32 串口配置一样,包括起始位、数据位和停止位等。再初始化串口,就能实现树莓派和 STM32 的串口通信了。
  2.4.5 TF坐标变换
  TF是一个可以满足用户跟随时间跟踪多个坐标系的功能包,其使用树形数据结构,运用时间缓冲并维护多个坐标系之间的坐标变换关系,它可以帮助开发者任意时刻完成点、向量等坐标在任意坐标系中的变换。
  一个机器人系统通常配备很多三维坐标系,并且它们会随着时间的推移发生变化,如世界坐标系(world frame)、基坐标系(base frame)、机器人头部坐标系(head frame)等。TF可以以时间为轴跟踪这些坐标系(10s之内为默认参数)。常用的变换有2种。
  1)广播TF变换,向系统中广播坐标系间的坐标变换关系。系统中可能会存在多个不同部分的TF变换广播,每个广播都可以在无需同步的情况下直接将坐标变换关系插入TF树中。
  2)监听TF变换,接收并缓存系统中发布的所有坐标变换数据,并从中查询所需的坐标系变换关系。
  TF常用工具有tf_monitor、tf_echo、static_transform_publisher等。
  1)tf_monitor工具的功能是打印TF树中所有坐标系的发布状态,也可以通过输入参数来查看指定坐标系间的发布状态消息。
  2)tf_echo工具的功能为查看指定坐标系间变换关系。命令格式如下:
  $tf_echo <source_frame> <target_frame>
  3)static_transform_publisher功能是發布两个坐标系之间的静态坐标变换,这两个坐标系不产生相对位置变化。
  3.实验案例
  步骤1:将智能车设备与计算机设备进行连接。
  步骤2:运行Rviz,rosrun rviz rviz。添加add,将上述的机器人模型RobotModel选择坐标系,画面出现机器人。
  步骤3:设置Fixed Frame模式为odom_combined。
  步骤4:添加TF,可显示小车上所搭载的设备及其零部件。
  步骤5:添加LaserScan,其Topic设置为/scan,可以看到小车搭载雷达的激光点(红色区域),如图4所示。
  步骤6:添加RobotModel,可以看到可视化的小车模型。
  步骤7:添加PoseWithCovariance,可以看到小车的车头方向
  步骤8:在终端输入arbotix_gui开启虚拟遥控,可以控制小车的移动。如图5所示。
  通过arbotix_gui实现上述小车的虚拟遥控可编写相关launch文件并配置相关arbotix节点:
  <node name="arbotix" pkg="arbotix_python" type="arbotix_driver" output="screen">
  <rosparam file="$(find my_urdf05_rviz)/config/hello.yaml" command="load" />
  <param name="sim" value="true" />
  </node>
  此程序调用了arbotix_python功能包下的arbotix_diver节点。arbotix驱动机器人运行时,需要获取机器人信息,可以通过file加载配置文件。在仿真环境下,需要将sim配置设为true。最后则启动相应launch文件,配置Rviz,将Fixed name这栏选择并设置为odom(里程计坐标系),Topic这栏也设置为odom。但topic中的odom具有不同概念,odom topic是根据编码里程计计算得到的里程计信息。完成相应配置后调用rostopic list会产生一个话题 /cmd_vel。此时发布/cmd_vel话题消息就可以控制小车运动了。
  4.结论
  随着科技日益发展,机器人的视觉定位系统在人类生产生活、人工智能领域扮演着越来重要的脚色。本课题基于Ubuntu系统下的ROS机器人操作系统为研究平台,对轮式机器人(智能车)在路面上的定位、捕捉图像及导航问题进行研究。通过搭建仿真环境,控制与实现智能车的移动,雷达信息接收以及定位与捕捉图像等功能,测试机器人仿真环境下的避障能力,方向控制反应能力等性能指标均达到了设计的指标,具有实用价值。
  参考文献
  [1] 朱建军,王明园,张博文.基于ROS的轮式机器人建模方法与仿真研究[J].吉林化工学院学报,2021,38(3):61-65.
  [2]郭柱梁.基于激光雷达的SLAM和动态避障机器人研究[M].哈尔滨:黑龙江大学出版社,2021.
  第一作者简介:郑纪阳 2001年5月1日,性别:男,民族:汉,籍贯:福建省厦门市,学历:本科在读,职称:学生,研究方向:ROS机器人操作系统。
  通信作者简介:张国忠,1951年2月出生,男,汉族,籍贯江西南昌,博士,教授,主要研究方向:系统辨识,计算机控制,电力系统自动化,人工智能控制等。
  ●此文由2021年全国大学生创新创业训练计划项目资助,项目名称:机器人视觉定位系统研究与实现项目负责人:郑纪阳(2021-239)
其他文献
摘要:鸡球虫病在养殖鸡的过程中普遍的存在,即使现代化养殖鸡的措施比较严格,但是也不断发生鸡球虫病。所以,养鸡业当时最常见和防治最困难的疾病之一就是鸡球虫病。本文针对鸡球虫病的诊断与防治进行了深入分析,并提供相对应建议以供参考。  关键词:鸡球虫病;症状;病因;诊断;防治措施  前言  在养殖场养鸡的过程中,鸡比较常见的寄生虫疾病就是鸡球虫病,是由多种球虫引起的急性流行性寄生虫病,而鸡感染鸡球虫病所
期刊
摘要:随着我国社会经济的快速发展,国民生活水平的不断提高,对于畜牧养殖产品的质量要求也越来越高,为了更好地推动我国养殖业的高质量发展,就需要做好中小型养殖场动物疾病的防治工作,优化养殖场的动物管理模式,避免动物之间出现疾病传播的问题,才能更好地生产出市场所需的高质量食品。本文通过探究中小养殖场动物疾病的常见类型和控制现状,主要阐述中小养殖场动物疾病的预防和控制方法。  关键词:中小养殖场;动物疾病
期刊
摘要:随着现代社会经济的不断发展,人们对机械产品的质量提出了更高的要求。因此,相关人员应加强对机械设计、制造和自动化的研究,合理解决机械设计、制造和自动化应用过程中存在的问题,有效提高生产效率和质量,确保整个生产过程的安全稳定,使机械设备向智能化方向发展,更好地适应社会发展的要求。  关键词:机械设计与制造;自动化;发展方向  随着制造业自动化技术和智能化技术的不断提高,必须注重提高机械设计制造的
期刊
摘要:中央一号文指出,扩大农村需求,是构建新发展格局,实现乡村振兴最大的潜力所在。文中,结合地方实际情况,就发展数字农业对广东扩大农村内需的措施进行了探讨,希望可以更好的促进乡村振兴战略的实施。  关键词:农村内需;数字农业;乡村振兴  1前言  随着中美经贸摩擦升级、新冠肺炎疫情爆发、自然灾害等一系列重大事件的发生,我国面临的国内外发展环境日益复杂、风险挑战也在不断增加[1]。不断巩固农村发展成
期刊
摘要:技术是产业的核心驱动力,也是生态林业建设的基本保障。在考虑林业技术推广的同时,不仅要从生态林业建设出发,更是需要从林业技术推广本身出发,立足于发展基点,结合实际情况作出判断。本文把重点落在林业技术推广上,通过对林业技术推广的现状分析,研究林业技术对生态林业建设的影响,提出四个方面的技术推广改进思考。  关键词:林业;技术推广;生态建设  1.林业技术推广的现状分析  林业技术推广在实际操作中
期刊
摘要:随着社会经济的不断发展,人们对电的需求也在逐渐增加,一旦出现停电问题,会给人们的生活带来很多不便,甚至给企业造成很大的经济损失。为了方便电力维修,电力企业有专业的电力维修用车,出现问题时企业会随时调配车辆,保证电力系统的快速恢复。在电力企业的实际运营中,要注意加强车辆管理,定期维护和保养车辆,保证出现电力故障时车辆能够正常使用。管理人员要简化车辆的使用流程,将现代化的信息技术应用到车辆管理中
期刊
摘要:近年来,我国加大了对外经济开放的力度,从而有效的推动了社会经济水平的显著提升,促进了民众生活质量的不断提升,与此同时人们对于电力能源的需求也在逐渐的增加。就当下实际情况来说,我国配电网的工程项目数量急剧增加,从而为10kV电力配网工程建设的发展起到了积极的推动作用,并且也使得大量的施工质量问题越发的受到了人们的关注。要想从根本上对10kV电力配网工程施工质量加以保障,那么最为重要的就是需要从
期刊
摘要:电厂生产过程中会涉及到对各种生产用水的处理,提高电厂化学水处理技术至关重要,关系到了电厂污水的处理效果,而反渗透技术则是利用反渗透膜进行污水处理的技术,其具有明显的优势,能够在一定程度上降低有害物质含量,达到净化处理。与此同时还能够实现对净化水的回收利用。本文首先介绍反渗透膜技术的概述以及特点,之后分析电厂化学水处理中反渗透膜技术的应用,以确保反渗透效果的有效性,能够实现对电厂经济效益、生态
期刊
摘要:随着我国科技的不断发展以及进步,这就在一定的程度上使得我国煤炭生产开始朝着机械化、自动化的方向进行出发,各种各样的设备开始被投入到工作中。因此在本篇文章中,我们主要是简单的探讨关于煤矿智能化安全供电系统的探讨。  关键词:煤矿智能化;安全供电系统;有效探讨  前言:在当前我国的煤矿电网规模变得越来越大,这就使得它的运行环境变得较为复杂起来。而在煤矿中采用智能安全供电系统,并且将其应用到煤矿企
期刊
摘要:在电力工程中,加强电气自动化技术可以有效的控制并科学的应用相关的技术,在过程中可以减少电力系统运行的安全隐患,提高安全系数,同时可以保证系统的稳定性,增强系统的可靠性和持续性。所以必须要加强电气自动化技术的研究,对电气自动化技术有一定的了解,才能保证电力系统发挥出自己最大的作用,保障电力系统的持续稳定运营。  关键词:电气自动化;电力工程;应用策略  1电气自动化概述  电气自动化技术是将电
期刊