title: Ackerman小车的Gazebo仿真
date: 2022.06.02
Ackerman小车的Gazebo仿真
本博客的仿真来源于网络开源 写这个博客也是因为闲的心血来潮。
最近也是闲了下来,考完了试也开始放假,偶然在B站看到了一个阿克曼转向的小车Gazebo仿真,于是心血来潮想要在noetic下复刻一下,大体的结构我看了一眼,用到的是官方的功能包。下面来看一下效果。
首先是进行准备工作,安装必要的功能包
sudo apt install ros-noetic-joint-state-publisher-gui
sudo apt install ros-noetic-ros-control
sudo apt install ros-noetic-ros-controllers
sudo apt install ros-noetic-gmapping
sudo apt install ros-noetic-ackermann-msgs
sudo apt install ros-noetic-navigation
sudo apt install ros-noetic-teb-local-planner
涉及到的一些功能包在原来安装ROS 的基础上其实有的已经下载过了,然后就是在你的工作空间内把下载好的文件放到src文件夹下。
里面就是我们仿真的所有文件了。
另外提醒一下,如果要是你的Ubuntu安装的是Python2的话,里面的脚本不用变,如果是用的是Python3的话,就要将 src/racebot_gazebo/scripts里面的keyboard_teleop.py文件改为如图所示:
#!/usr/bin/python3
# -*- coding:utf-8 -*-
或者出了问题自行百度。
准备工作已完成,下面进行实操。
首先是使用racebot进行建图的相关操作
roslaunch racebot_gazebo racebot.launch
roslaunch racebot_gazebo gmapping.launch
或者
roslaunch racebot_gazebo tianracer.launch
roslaunch racebot_gazebo gmapping.launch
其中,当执行
roslaunch racebot_gazebo racebot.launch
或者
roslaunch racebot_gazebo tianracer.launch
时,在进入Gazebo(特指第一次加载世界地图的时候)会因为电脑的性能不同,而导致加载的速度不同。效果是这样的:
其中,racebot.launch 文件是带有键盘控制的。
然后是SLAM相关:
下面是一键导航,其实就是调用建好的图进行导航:
roslaunch racebot_gazebo teb_demo.launch
可以看到,红色的(我自己改的)剪头代表的是小车的位姿估计,当进行导航时,红色箭头手链效果很好(amcl效果很好)
差不多到这里原有的功能已经进行完了,写累了就到这吧。