基于gazebo仿真环境的移动机器人导航仿真

这篇具有很好参考价值的文章主要介绍了基于gazebo仿真环境的移动机器人导航仿真。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

摘要:实现移动机器人同时定位与建图技术和路径规划技术是让机器人真正智能化的前提。针对机器人自主导航问题,本文在gazebo仿真环境下,利用开源软件包Gmapping提供的算法完成了机器人的自定位与手动地图构建,在此基础上结合move_base软件包相关的路径规划算法完成了移动机器人自主移动建图、路径规划以及自主避障功能。仿真结果表明,该系统能够满足移动机器人在陌生环境下的自主导航需求。

关键词:SLAM;路径规划;移动机器人

0引言

在陌生环境中实现移动机器人的自主避障和导航一直是机器人相关研究领域的热点。机器人自主导航技术的实现关键在于如何解决机器人在陌生环境中的定位与路径规划问题。一方面。基于里程计惯性导航的实现,往往因为惯性传感器长时间的累积误差,极易造成机器人航迹计算偏差,无法满足移动机器人定位与路径规划的精度要求。另一方面,采用GPS信号的卫星导航技术,存在室内环境信号弱,定位误差大,且极易受到天气与环境影响等问题。显然可以知道,传统上的自主导航技术满足不了移动机器人自主导航的需求[1]。及时定位与地图构建SLAM技术的提出可以有效的解决传统上导航技术的缺陷。

ROS(robot operating system)是一个开源的机器人操作系统。它提供了很多关于机器人的硬件抽象、以及常用功能的实现,使得机器人的开发更加便捷迅速,很快在机器人研究领域成为研究热潮。ROS 中有很多封装好的代码,用于实现一些常用功能,可以使人们在开发机器人中把研究重点放在核心算法的研究和改进上,极大地提高机器人开发效率

因此本文通过ROS中开源的功能包对移动机器人实现自主移动建图和路径规划并进行仿真。

1移动机器人模型和仿真环境搭建

对于机器人模型和仿真环境本人就不过多赘述,在ROS/gazebo仿真环境下搭建的机器人模型和仿真环境如下图1、图2所示。

如何在gazebo中实现移动机器人仿真,机器人,动态规划,汽车,Powered by 金山文档

图1移动机器人模型

如何在gazebo中实现移动机器人仿真,机器人,动态规划,汽车,Powered by 金山文档

图2仿真世界模型

2 移动机器人自主导航系统设计

2.1.导航相关概念

机器人的自主导航系统主要包括定位模块、坐标变换模块、里程计模块、路径规划模块以及传感器模块等[2]。其整体系统结构如下图所示。

如何在gazebo中实现移动机器人仿真,机器人,动态规划,汽车,Powered by 金山文档

图3 ROS导航模块

2.2 SLAM建图

SLAM算法有很多比如gmapping、hector_slam等,由于Gmapping 建图算法原理相较于其他算法比较简单,而且使用该算法构建出的地图也非常精确。因此本文选用Gmapping算法进行地图构建。Gmapping建图其实使用的是基于2D 激光雷达的RBPF算法完成二维栅格地图构建的SLAM 算法[3]。RBPF 的关键是根据观测数据 Z1:t和里程数据u0:t 来估计机器人处于潜在位姿 X1:t下的后验概率 p(X1:t|u0:t, Z1:t),然后利用此概率来计算地图和位姿的联合后验概率:

如何在gazebo中实现移动机器人仿真,机器人,动态规划,汽车,Powered by 金山文档

该概率可被有效地求出,因为地图的概率p(m|X1:t, Z1:t)可以由 X1:t和 Z1:t计算得出。为估计位姿的后验概率 p(X1:t|u0:t, Z1:t),RBPF采用粒子滤波方法,使每个粒子样本都对应一个独立地图。每个地图都根据对应粒子的环境观测数据Z1:t 和位姿X1:t创建。

在ROS中提供了用于机器人在室内环境下定位与建图的Gmapping软件包,该节点名为slam_gmapping,该节点方便调用。通过编写gmapping节点相关的launch文件包括机器人基坐标系、里程计坐标系、地图坐标系以及地图更新频率激光雷达探测的最大可用范围(超出这个值,将会被截断)等参数设置。完成launch文件的编写后,先启动gazebo仿真环境,然后在启动地图绘制的launch文件,在终端输入键盘控制节点命令,用于控制机器人完成运动建图。在gazebo中机器人激光雷达显示和rviz可视化环境下移动机器人构建地图,如下图4、图5所示。

如何在gazebo中实现移动机器人仿真,机器人,动态规划,汽车,Powered by 金山文档

图4地图构建下gazebo中画面

如何在gazebo中实现移动机器人仿真,机器人,动态规划,汽车,Powered by 金山文档

图5 rviz中仿真建图结果

2.3路径规划

路径规划是导航中的核心功能,在ROS的导航功能包集navigation中提供了move_base功能包,用于实现此功能。Move_base可以根据给定的目标点,控制机器人运动至目标位置,并且在运动过程中会连续反馈机器人自身的姿态与目标点的状态信息。Move_base在global_costmap全局代价地图上实现全局路径规划,在local_costmap上实现局部路径规划。Move_base软件包运行时需要加载编写的配置文件,实现移动机器人的自主导航。相关的配置有:通用配置文件;全局代价地图配置文件;局部代价地图配置文件以及基本的局部规划器参数设置。

(1)通用参数配置

通用参数配置文件主要用于move_base在全局路径规划和局部路径规划时调用的参数配置,比如机器人的尺寸、距离障碍物的安全距离以及传感器信息等。在此配置如下:

如何在gazebo中实现移动机器人仿真,机器人,动态规划,汽车,Powered by 金山文档

其中,robot_radius参数配置圆形机器人的半径;obstacle_range配置雷达探测障碍物的最大范围;ray_range表示障碍物最小引入代价地图的距离;observation_sources参数定义构建代价地图传感器的来源;

(2)全局代价地图参数配置配置

该文件用于全局代价地图参数设置。配置如下:

如何在gazebo中实现移动机器人仿真,机器人,动态规划,汽车,Powered by 金山文档

其中,global_frame与robot_base_frame定义全局地图与机器人本体坐标系统;update_frequency定义代价地图的更新频率;pubilish_frequency 定义代价地图的发布频率;static_map代表是否使用地图服务器或者一个地图来初始化全局代价地图;inflation_radius代表膨胀半径,扩展在碰撞区域以外的代价区域使得机器人规划路径避开障碍物;cost_scaling_factor代表代价比例系数,越大则代价值越小。

(3)局部代价地图参数配置

局部代价地图用于规划机器人遇到障碍物时自主避障行为,该文件配置如下:文章来源地址https://www.toymoban.com/news/detail-789378.html

到了这里,关于基于gazebo仿真环境的移动机器人导航仿真的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 11.机器人系统仿真搭建gazebo环境、仿真深度相机、雷达、RGB相机

    目录 1 gazebo仿真环境搭建 1.1  直接添加内置组件创建仿真环境 1.2 urdf、gazebo、rviz的综合应用 2 ROS_control 2.1 运动控制实现流程(Gazebo) 2.1.1 已经创建完毕的机器人模型,编写一个单独的 xacro 文件,为机器人模型添加传动装置以及控制器 2.1.2 将此文件集成进xacro文件 2.1.3 修改

    2024年02月04日
    浏览(56)
  • 【ROS2机器人入门到实战】Gazebo仿真环境搭建

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn 本节我们要在Gazebo中建立一个测试的环境,其实也很简单,利用

    2024年02月05日
    浏览(62)
  • ROS gazebo 机器人仿真,环境与robot建模,添加相机 lidar,控制robot运动

    b站上有一个非常好的ros教程234仿真之URDF_link标签简介-机器人系统仿真_哔哩哔哩_bilibili,推荐去看原视频。 视频教程的相关文档见:6.7.1 机器人运动控制以及里程计信息显示 · Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程 本文对视频教程第六章的主要内容做一个总

    2024年02月03日
    浏览(48)
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真

    一、创建工作空间          二、下载wpr_simulation源码 git clone https://github.com/6-robot/wpr_simulation.git 三、编译 ~/catkin_make  目录下catkin_make source devel/setup.bash 四、运行 roslaunch wpr_simulation wpb_simple.launch 启动另一个终端,执行: rosrun rqt_robot_steering rqt_robot_steering 鼠标改变速度和角

    2024年01月20日
    浏览(59)
  • Gazebo机器人仿真

    本文基于 B站冰达机器人Gazebo教程,针对在仿真过程中出现的问题提出相应解决办法。 目标 : 设计出一台具备激光雷达、IMU和相机的机器人仿真模型用于相关实验。 获取实验功能包: 克隆完成后在工作空间路径下编译功能包 安装其他依赖 获取gazebo模型库: 自制实验场景

    2024年02月16日
    浏览(48)
  • 机器人Gazebo仿真应用

      Gazebo是一个优秀的功能强大开源物理环境仿真平台,具备强大的物理引擎,高质量的图形渲染等优异优点,可在机器人和周围环境加入多种物理属性,对机器人传感器信息通过插件形式加入仿真,并以可视化的方式进行显示。通过终端命令“roscore”启动ROS,重新打开一个终

    2024年02月04日
    浏览(51)
  • ros2机器人在gazebo中移动方案

    很重要的地方:使用虚拟机运行Ubuntu的时候,需要关闭”加速3D图形“的那个选项,否则gazebo无法正常显示。 In this tutorial we will learn how to move our robot. We will use the robot we built in the Build your own robot tutorial. You can download the robot from here. You can also find the finished world of this tutoria

    2024年01月16日
    浏览(47)
  • 机器人仿真-gazebo学习笔记(4)xacro和传感器添加

    URDF文件不具备代码复用的特性(在上一篇文章也能发现,其实左右轮是极其相似的但还是要单独描述),一个复杂的机器人模型会拥有大量了的传感器和关节组件,这时候使用URDF文件就太难阅读了。精简化、可复用、模块化的xacro文件来了。 1.优势: ·精简模型代码: xacro是一

    2024年02月06日
    浏览(61)
  • 【ROS仿真实战】获取机器人在gazebo位置真值的三种方法(三)

    在ROS和Gazebo中,获取机器人的位置信息通常通过ROS消息传递进行。在这篇文章中,我们将介绍三种获取机器人在Gazebo中位置真值的方法:使用ROS tf库、使用自己编写Gazebo Model Plugin以及libgazebo_ros_p3d Plugin。 ROS tf库是ROS中用于管理坐标变换的库,它可以通过ROS消息传递来管理不

    2024年02月06日
    浏览(74)
  • 【ROS2机器人入门到实战】Gazebo仿真插件之两轮差速

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn 小鱼又来了,完成了上节课的Gazebo加载FishBot,但是机器人还是不

    2024年02月03日
    浏览(70)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包