ROS联合webots实战案例(五)导航功能包入门2

本文介绍ROS导航功能包入门知识。需安装amcl、gmapping、move_base等功能包,使用ROS创建地图,借助map_server保存地图。还介绍了全局和局部代价地图的配置、启动文件配置、slam.launch改动,进行运行测试,编写指定点导航运动程序并最终运行,实现机器人自主导航。
该文章已生成可运行项目,

导航功能包入门2

为了能和读者进一步讨论问题,建立了一个微信群,方便给大家解答问题,也可以一起讨论问题。
加群链接

注意:

  • 再学习本系列教程时,应该已经安装过ROS了并且需要有一些ROS的基本知识
  • 本章节需要安装两个功能包
    • 安装amcl:在已有的地图内定位机器人
      • 安装方法1:
        catkin_ws/src
        $ git clone https://github.com/ros-planning/navigation.git
        
      • 安装方法2
        $ sudo apt-get update
        $ sudo apt-get install ros-melodic-amcl
        
    • 安装gmapping:由激光雷达数据生成地图(或者深度相机数据)
      • 安装方法1:
        catkin_ws/src
        $ git clone https://github.com/ros-perception/slam_gmapping.git
        
      • 安装方法2:
        $ sudo apt-get update
        $ sudo apt-get install ros-melodic-gmapping
        
    • 安装move_base:导航功能包
      • 安装方法:
        $ sudo apt-get update
        $ sudo apt-get install ros-melodic-move-base
        

webots版本:2020b rev1
ros版本:melodic

在前面几章中分别介绍了在webots中如何创建自己的机器人、添加传感器以及使用手柄或键盘驱动它在仿真环境中移动。在本章中,你会学习到ROS系统最强大的特性之一,它能够让你的机器人自主导航和运动。

1.使用ROS创建地图

创建地图本身是一个很麻烦的工作,必须选择正确的工具来简化这项工作。在ROS中就提供了这样的工具能够帮助我们使用激光雷达和机器人的里程信息创建地图。这个工具是map_server地图服务器(http://wiki.ros.org/map_server)。在本示例中,你将会学到如何使用我们在webots中创建的机器人来创建、保存和加载地图。
我们将会使用一个launch文件来简化创建的过程。在webots_demo/launch文件夹下以slam.launch为名称创建一个新文件,然后添加以下代码:

<launch>
    <!-- 打开webots -->
    <include file="$(find webots_demo)/launch/webots.launch" />
    <arg name="model" />
    <arg name="gui" default="false" />
    <param name="use_gui" value="$(arg gui)" />
    <node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" />
    <node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />
    <node name="robot_broadcaster" pkg="webots_demo" type="robot_broadcaster" />
    <!-- 打开rviz -->
    <node name="rviz" pkg="rviz" type="rviz" />
    
    <!-- Gmapping建图算法,接收传感器数据建立地图 -->
    <node pkg="gmapping" type="slam_gmapping" name="slam_gmapping" output="screen" clear_params="true">
    <param name="odom_frame" value="odom" />
    <param name="base_frame" value="base_link" />
    <param name="map_update_interval" value="0.75" />
    <!-- Set maxUrange < actual maximum range of the Laser -->
    <param name="maxRange" value="4.5" />
    <param name="maxUrange" value="3.5" />
    <param name="sigma" value="0.05" />
    <param name="kernelSize" value="1" />
    <param name="lstep" value="0.05" />
    <param name="astep" value="0.05" />
    <param name="iterations" value="5" />
    <param name
本文章已经生成可运行项目
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

锡城筱凯

你的鼓励是我创造的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值