• 当我第一次在ubuntu20.04上使用gazebo


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


    一、安装gazobo环境

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

    验证是否安装好ROS

    echo $ROS_DISTRO
    
    • 1

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

    安装依赖

    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
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    二、开始安转
    1、创建工作空间,工作区还包含src目录
    mkdir -p gazebo/src
    
    • 1
    2、下载GIT工程
    cd src
    git clone https://github.com/soonuse/racecar.git
    
    • 1
    • 2

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

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

    在这里插入图片描述

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

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

    pwd
    
    • 1

    在这里插入图片描述

    另开一个终端

    sudo gedit .bashrc
    
    • 1

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

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

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

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

    先安装locate

    sudo apt install mlocate
    
    • 1

    更新硬盘指引

    sudo update db
    
    • 1

    查找OpenCVConfig.cmake

    locate  OpenCVConfig.cmake
    
    • 1

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

    在这里插入图片描述

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

    在终端中输入

    roslaunch racecar_gazebo racecar_runway.launch
    
    • 1

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

    在终端输入:

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

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

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

    2、创建地图

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

    roslaunch racecar_gazebo racecar_runway.launch
    
    • 1

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

    roslaunch racecar_gazebo slam_gmapping.launch 
    
    • 1

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

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

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

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

    四、尝试自动导航

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

    roslaunch racecar_gazebo racecar_runway_navigation.launch
    
    • 1

    再开一个终端,输入:

    roslaunch racecar_gazebo racecar_rviz.launch 
    
    • 1

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

    rosrun racecar_gazebo path_pursuit.py 
    
    • 1

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

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

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

    不知道为什么,使用了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
    
    • 1
    • 2
    • 3

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

  • 相关阅读:
    Cypress学习记录之一:简介和安装
    C++ 内联函数的作用
    更简洁的参数校验,使用 SpringBoot Validation 对参数进行校验
    一个关于React与Node.js前后端分离项目部署问题
    读书笔记——C++高性能编程(一至三)
    WebSocket
    【飞控调试】DJIF450机架+Pixhawk6c mini+v1.13.3固件+好盈Platinium 40A电调无人机调试
    Redis 忽然变慢了如何排查并解决?
    JavaScript函数式编程(纯函数、柯里化以及组合函数)
    【架构与设计】常见微服务分层架构的区别和落地实践
  • 原文地址:https://blog.csdn.net/weixin_62529383/article/details/127753560