ROS机器人定位导航仿真

ros机器人定位导航仿真

1、安装配置环境
2、仿真
3、创建地图
4、gmapping建图
5、导航运动
6、基于自建的路线导航

一、安装配置环境

1、设置工作区间,下载源码包

mkdir -p ~/ros/src
cd ~/ros/src
catkin_init_workspace
git clone https://github.com/xmy0916/racecar.git

下载完成:
在这里插入图片描述
2、安装需要的插件

sudo apt-get install ros-melodic-driver-base
sudo apt-get install ros-melodic-gazebo-ros-control
sudo apt-get install ros-melodic-effort-controllers
sudo apt-get install ros-melodic-joint-state-controller

3、编译

catkin_make

编译成功:
在这里插入图片描述

二、仿真

1、添加环境变量

source ~/ros/devel/setup.bash

2、运行模型

roslaunch racecar_gazebo racecar.launch 

在这里插入图片描述
通过在tk窗口下WASD来移动小车
在这里插入图片描述
3、修改小车位置并启动地图
在这里插入图片描述
修改后启动运行,位置发生改变
在这里插入图片描述

三、创建地图

1、建立并保存地图

gazebo

在这里插入图片描述
在这里插入图片描述
2、在gazebo中引入地图模型并添加障碍物
在这里插入图片描述
在这里插入图片描述
然后对该地图模型进行保存
在这里插入图片描述
3、运行地图

roslaunch racecar_gazebo racecar_runway.launch

在这里插入图片描述
在这里插入图片描述

四、gmapping建图

roslaunch racecar_gazebo racecar_runway.launch
roslaunch racecar_gazebo slam_gmapping.launch

分别运行上述命令后:
在这里插入图片描述
在这里插入图片描述
2、保存地图

rosrun map_server map_saver -f test_map

五、导航运动

1、启动rviz

roslaunch racecar_gazebo racecar_rviz.launch
roslaunch racecar_gazebo racecar_runway_navigation.launch

依次执行上述命令后:
在这里插入图片描述
2、设计行车轨迹

在这里插入图片描述
3、启动脚本

rosrun racecar_gazebo path_pursuit.py

小车在根据规划的路线前进:
在这里插入图片描述
4、到达目的地
在这里插入图片描述

六、基于自建的路线导航

创建并保存地图
通过floor plan绘制地图,导入图片文件生成地图
引入地图模型并添加障碍物,保存为world格式
在这里插入图片描述
新建launch文件

sudo gedit tgzq.launch

添加以下代码:
在这里插入图片描述
1、建图

roslaunch racecar_gazebo tgzq.launch
roslaunch racecar_gazebo slam_gmapping.launch 

2、移动小车,得到地图,然后保存地图

rosrun map_server map_saver -f tgzq_map

在这里插入图片描述
3、创建自主导航文件

gedit autocar.launch

代码:

<?xml version="1.0"?>
<launch>
  <!-- Launch the racecar -->
  <include file="$(find racecar_gazebo)/launch/racecar.launch">
    <arg name="world_name" value="myworld2"/>
  </include>
  
  <!-- Launch the built-map -->
  <node name="map_server" pkg="map_server" type="map_server" args="$(find racecar_gazebo)/map/mycar_map.yaml" />

  <!--Launch the move base with time elastic band-->
  <param name="/use_sim_time" value="true"/>
  <node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen">
    <rosparam file="$(find racecar_gazebo)/config/costmap_common_params.yaml" command="load" ns="global_costmap" />
    <rosparam file="$(find racecar_gazebo)/config/costmap_common_params.yaml" command="load" ns="local_costmap" />
    <rosparam file="$(find racecar_gazebo)/config/local_costmap_params.yaml" command="load" />
    <rosparam file="$(find racecar_gazebo)/config/global_costmap_params.yaml" command="load" />
    <rosparam file="$(find racecar_gazebo)/config/teb_local_planner_params.yaml" command="load" />

    <param name="base_global_planner" value="global_planner/GlobalPlanner" />
    <param name="planner_frequency" value="0.01" />
    <param name="planner_patience" value="5.0" />
    <!--param name="use_dijkstra" value="false" /-->
    
    <param name="base_local_planner" value="teb_local_planner/TebLocalPlannerROS" />
    <param name="controller_frequency" value="5.0" />
    <param name="controller_patience" value="15.0" />

    <param name="clearing_rotation_allowed" value="false" />
  </node>
  
</launch>

4、运行自主导航文件,启动rviz

roslaunch racecar_gazebo autocar.launch 
roslaunch racecar_gazebo racecar_rviz.launch

5、2D Nav Goal 设计行车轨迹
在这里插入图片描述
6、启动脚本:

rosrun racecar_gazebo path_pursuit.py

小车沿着规划的路线运动
在这里插入图片描述
最终运行结果:
在这里插入图片描述

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值