move_base学习(一)之双激光差动式移动机器人导航仿真

本文介绍了如何使用move_base进行机器人导航,包括加载机器人模型、双激光融合、gmapping建图和导航配置。通过IRA_Laser_Tools包融合两个激光雷达数据,并在gazebo和rviz中进行仿真。文中还提到了gmapping参数设置和move_base的全局与局部路径规划,以及实际应用中的问题和解决方法。
摘要由CSDN通过智能技术生成

一、引言

  本文主要对move_base做个基本介绍,并基于《ROS机器人高效编程》一书的代码实现仿真。本篇为自我学习记录的笔记,内容相当简单,没有深入讨论的算法实现原理。

二、加载机器人模型

  之间看过易科实验室翻译的《ROS机器人高效编程》,直接在里面的例子上进行测试仿真,但实践过程中也发现不少问题。吐槽一下,很多英翻中的教材存在许多问题,表达理解及其费劲,但同时也表示理解,挑战难度确实很大。回归主题。
  首先,加载机器人模型,使得机器人可以在gazebo和rviz中显示。因为要用到两个激光,所以要将机器人模型做一个更改,在.xacro描述文件中增加新的关节,并更改坐标变换。

<joint name="hokuyo_joint_2" type="fixed">
    <axis xyz="0 1 0" />
    <origin xyz="-0.125 -0.05 0.125" rpy="0 0 3.92699"/>
    <parent link="base_link"/>
    <child link="hokuyo_link_2"/>
  </joint>

  <!-- Hokuyo Laser -->
  <link name="hokuyo_link_2">
    <collision>
      <origin xyz="0 0 0" rpy="0 0 0"/>
      <geometry>
	<box size="0.1 0.1 0.1"/>
      </geometry>
    </collision>

    <visual>
      <origin xyz="0 0 0" rpy="0 0 0"/>
      <geometry>
        <mesh filename="package://robot1_description/meshes/hokuyo.dae"/>
      </geometry>
    </visual>

    <inertial>
      <mass value="1e-5" />
      <origin xyz="0 0 0" rpy="0 0 0"/>
      <inertia ixx="1e-6" ixy="0" ixz="0" iyy="1e-6" iyz="0" izz="1e-6" />
    </inertial>
  </link>

  增加轮子驱动插件,使得机器人接收到速度命令可以运动起来。

	<gazebo>
  <plugin name="skid_steer_drive_controller" filename="libgazebo_ros_skid_steer_drive.so">
    <updateRate>100.0</updateRate>
    <robotNamespace>/</robotNamespace>
    <leftFrontJoint>base_to_wheel1</leftFrontJoint>
    <rightFrontJoint>base_to_wheel3</rightFrontJoint>
    <leftRearJoint>base_to_wheel2</leftRearJoint>
    <rightRearJoint>base_to_wheel4</rightRearJoint>
    <wheelSeparation>4</wheelSeparation>
    <wheelDiameter>0.1</wheelDiameter>
    <torque>1</torque>
    <!--订阅的速度命令,twist型的-->
    <topicName>cmd_vel</topicName>
    <!--发布的里程信息话题,move_base会订阅-->
		<odometryTopic>odom</odometryTopic>
    <odometryFrame>odom</odometryFrame>
    <robotBaseFrame>base_footprint</robotBaseFrame>
    <broadcastTF>1</broadcastTF>
  </plugin>
</gazebo>

  为方便启动,写出launch文件。

<?xml version="1.0"?>
<launch>

  <!-- these are the arguments you can pass this launch file, for example paused:=true -->
  <arg name="paused" default="true"/>
  <arg name="use_sim_time" default="true"/>
  <arg name="gui" default="false"/>
  <arg name="headless" default=
  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值