ROS机器人定位导航仿真——智能车

    技术2022-07-10  208

    目录标题

    一、racecar功能包安装1.racecar功能包下载2、安装该功能包运行需要的控件3.racecar功能包编译4.运行小车模型launch文件 二、 在功能包自带赛道里运行1.加载赛道,控制小车进行位移2、进行gmapping建图 三、在包赛道里自动导航1.启动导航和环境地图2.启动rviz3.用2D Nav Goal发布目标4.启动导航脚本

    一、racecar功能包安装

    1.racecar功能包下载

    新建终端进入racecar工作空间的src目录下

    cd ~/racecar_ws/src

    下载Gazebo搭建赛道功能包racecar

    git clone https://github.com/xmy0916/racecar.git

    2、安装该功能包运行需要的控件

    新建一个终端,进行控件的安装(这个不安装后面会运行不起) (1)driver_base的控件安装

    sudo apt-get install ros-kinetic-driver-base

    (2)controllers控件安装

    sudo apt-get install ros-kinetic-gazebo-ros-control sudo apt-get install ros-kinetic-effort-controllers sudo apt-get install ros-kinetic-joint-state-controller

    (3)ackermann_msgs控件安装

    sudo apt-get install ros-kinetic-ackermann-msgs

    (4)planner控件安装

    sudo apt-get install ros-kinetic-global-planner sudo apt-get install ros-kinetic-teb-local-planner

    3.racecar功能包编译

    新建终端

    cd ~/racecar_ws catkin_make

    编译过程中,如果遇到问题,则可根据提示修改。

    4.运行小车模型launch文件

    #程序注册 source ./devel/setup.bash #在终端输入以下命令,运行小车模型,测试编译是否成功 roslaunch racecar_gazebo racecar.launch

    二、 在功能包自带赛道里运行

    1.加载赛道,控制小车进行位移

    cd ~/racecar_ws roslaunch racecar_gazebo racecar_runway.launch

    通过锁定在tk窗口下,用WASD来控制小车,然后对比两图,发现小车确实动了,证明我们的仿真环境搭建的还是不错的。

    2、进行gmapping建图

    (1)不关闭之前运行的程序终端,新建终端,运行rviz,进行gmapping建图

    cd ~/racecar_ws source ./devel/setup.bash roslaunch racecar_gazebo slam_gmapping.launch

    接下来就是手动控制小车进行赛道扫描绘图。 最后保存地图

    rosrun map_server map_saver -f test_map

    绘制好的地图 在racecar工作空间下新建一个map文件夹保存跑好的地图

    友情提示:在控制小车运动时,小车撞墙后很容易翻车。所以,不能急,慢慢控制跑动。

    三、在包赛道里自动导航

    1.启动导航和环境地图

    cd racecar_ws/ roslaunch racecar_gazebo racecar_runway_navigation.launch

    2.启动rviz

    新建终端

    cd racecar_ws/ roslaunch racecar_gazebo racecar_rviz.launch

    3.用2D Nav Goal发布目标

    使用上排的2D Nav Goal标签发布信息,设置好起点和终点,它就会自动规划出来一条路线。(途中绿色的细线就为其规划好的路线)

    4.启动导航脚本

    cd ~/racecar_ws rosrun racecar_gazebo path_pursuit.py

    图1 图2 这里已经可以明显看出小车走了比较远了,然后导航上的绿色细线也覆盖了红色。(实际运行后小车路线会有不小的偏差 ) 最后发现小车到达目的坐标,定位导航成功!!!

    Processed: 0.010, SQL: 9