突然就有了一个长期任务,过分emo了。学习第一步,试试在我的不知道重装了多少遍的ubuntu20.04上运行一个gazebo小车模型。是根据这个视频做的记录,如有问题,欢迎指正~


一、安装gazobo环境

在安装环境之前,首先确定你的ubuntu上已经安装好了ROS,如果没,记得先去安转。可以参考这篇博客

验证是否安装好ROS

echo $ROS_DISTRO

在这里插入图片描述
如出现以上界面,则安装成功~

安装依赖

sudo apt install ros-$ROS_DISTRO-gazebo-ros-control
sudo apt install ros-$ROS_DISTRO-effort-controllers
sudo apt install ros-$ROS_DISTRO-joint-state-controller
sudo apt install ros-$ROS_DISTRO-driver-base
sudo apt install ros-$ROS_DISTRO-ackermann-msgs
sudo apt install ros-$ROS_DISTRO-rtabmap-ros
sudo apt install ros-$ROS_DISTRO-teb-local-planner
sudo apt install tcl-dev tk-dev python3-tk
二、开始安转
1、创建工作空间,工作区还包含src目录
mkdir -p gazebo/src
2、下载GIT工程
cd src
git clone https://github.com/soonuse/racecar.git

因为是在github上,所以可能下载速度很慢,甚至有时候连不上,这时候需要一些科学的小手段。

3、编译
cd ../
catkin_make
4、把工作区的setup.bash文件写入.bashrc文件中

在这里插入图片描述

编译完成后。工作区生成了一个build和一个devel文件夹,在devel文件夹中有一个setup.bash文件

在devel文件夹中打开终端,输入以下命令

pwd

在这里插入图片描述

另开一个终端

sudo gedit .bashrc

在打开的文件最后写下自己得到的setup.bash文件路径,如

在这里插入图片描述
保存文件,为了使用配置,输入

. .bashrc
5、如果编译不通过的话

检查一下OpenCVConfig.cmake所在的目录

先安装locate

sudo apt install mlocate

更新硬盘指引

sudo update db

查找OpenCVConfig.cmake

locate  OpenCVConfig.cmake

然后将路径写入racecar_gazebo的CMakeLists.txt文件中
在这里插入图片描述把OpenCV_DIR后面的路径改成前面找到的路径,注意不是文件的路径

在这里插入图片描述

三、开始仿真
1、验证地图是否可以正常仿真

在终端中输入

roslaunch racecar_gazebo racecar_runway.launch

如果没有报错,而是卡在开始界面,就是缺少models文件,所以需要再次下载

在终端输入:

cd .gazebo
git clone https://github.com/orsf/gazebo_models.git

然后等待很长很长很长一段时间

下载完成后,记得改一下gazebo_models文件夹的名字,改成models即可

2、创建地图

再次启动终端,进入仿真环境(在实际生产中对应的是真实的机器人和真实的地图):

roslaunch racecar_gazebo racecar_runway.launch

再开启一个终端,进如rviz环境(对应的是订阅的传感器消息):

roslaunch racecar_gazebo slam_gmapping.launch 

利用WASD案件控制小车在不翻车的情况下走完整的路径,可以看到在RVIZ界面中创建完整的地图。

保存地图,这里的路径是自己的map路径,记得改成自己的

rosrun map_server map_saver -f /home/computer/Gazebo/src/racecar/racecar_gazebo/map/map_runway

保存完之后,会在指定位置生成对应的pgm和yaml文件

四、尝试自动导航

关闭之前的开启的所有的终端,重新打开一次(不用保存)

roslaunch racecar_gazebo racecar_runway_navigation.launch

再开一个终端,输入:

roslaunch racecar_gazebo racecar_rviz.launch 

界面如图所示:
在这里插入图片描述使用2D Nav Goal工具,点击之后再按住地图内部的一点,按住鼠标左键调整箭头方向,这样即可发布小车目标点的位置信息。发布完成后,,地图上会出现一条绿色的规划路线,此时小车不会运动,再开一个终端,运行追踪脚本

rosrun racecar_gazebo path_pursuit.py 

这个脚本会告诉小车需要以什么方式沿着绿色的规划路线前进,启动之后小车就开始动了。

一段时间后,小车到达终点,演示完毕。

可能存在的问题(我存在)

不知道为什么,使用了2D Nav Goal工具,但是没出现绿色的路径,查询之后采取了以下解决方案

sudo apt install ros-noetic-move-base* ros-noetic-turtlebot3-* ros-noetic-dwa-local-planner
sudo apt-get install ros-noetic-joy ros-noetic-teleop-twist-joy ros-noetic-teleop-twist-keyboard ros-noetic-laser-proc ros-noetic-rgbd-launch ros-noetic-depthimage-to-laserscan ros-noetic-rosserial-arduino ros-noetic-rosserial-python ros-noetic-rosserial-server ros-noetic-rosserial-client ros-noetic-rosserial-msgs ros-noetic-amcl ros-noetic-map-server ros-noetic-move-base ros-noetic-urdf ros-noetic-xacro ros-noetic-compressed-image-transport ros-noetic-rqt-image-view ros-noetic-gmapping ros-noetic-navigation ros-noetic-interactive-markers
sudo apt install ros-noetic-costmap-2d

再次重启仿真环境和rviz环境,成功!!!

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐