前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【2022】Ubuntu18.04下利用Gazebo搭建赛道完成ROS机器人定位导航仿真【智能车】

【2022】Ubuntu18.04下利用Gazebo搭建赛道完成ROS机器人定位导航仿真【智能车】

作者头像
Qomolangma
发布2024-07-30 08:17:21
1640
发布2024-07-30 08:17:21
举报
文章被收录于专栏:深度学习

一、安装配置运行的环境

参考前文:

【2022】Ubuntu18.04安装Gazebo9并与ROS连接(包括各种报错及解决方案)_QomolangmaH的博客-CSDN博客

https://blog.csdn.net/m0_63834988/article/details/132020603?spm=1001.2014.3001.5502​​​​​​​

二、创建工作区域,下载源码包

1. 创建工作空间

先创建ros的工作区域racecar_ws

代码语言:javascript
复制
mkdir -p ~/racecar_ws/src

转换到工作区域目录

代码语言:javascript
复制
cd ~/racecar_ws/src

把当前目录初始化为一个ROS工作空间

代码语言:javascript
复制
catkin_init_workspace

它将在当前目录下创建一个名为src的目录,并在其中创建一个CMakeLists.txt文件以及一个空的package.xml文件:

  • src目录用于存放各个ROS软件包,
  • CMakeLists.txt文件用于配置工作空间的构建系统
  • package.xml文件用于描述ROS软件包的元数据信息。

执行catkin_init_workspace命令后,你可以在src目录下开始创建ROS软件包,然后使用Catkin构建工具来构建和管理这些软件包。

2. 下载Gazebo搭建赛道功能包racecar

(这里使用的别人github上开源出来的代码)

代码语言:javascript
复制
git clone https://github.com/xmy0916/racecar.git

git访问不稳定,效果如下,需要多试几次

代码语言:javascript
复制
Cloning into 'racecar'...
fatal: unable to access 'https://github.com/xmy0916/racecar.git/': Failed to connect to github.com port 443: Connection refused

成功下载:

代码语言:javascript
复制
remote: Enumerating objects: 701, done.
remote: Counting objects: 100% (701/701), done.
remote: Compressing objects: 100% (426/426), done.
remote: Total 701 (delta 252), reused 638 (delta 193), pack-reused 0
Receiving objects: 100% (701/701), 28.23 MiB | 962.00 KiB/s, done.
Resolving deltas: 100% (252/252), done.

下载完成后racecar功能包是这样的

三、安装本次运行需要的软件包

代码语言:javascript
复制
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
sudo apt-get install ros-melodic-ackermann-msgs
sudo apt-get install ros-melodic-global-planner
sudo apt-get install ros-melodic-teb-local-planner

(建议依次安装,不要一次性复制全部)

  • 安装ROS Melodic中的driver-base软件包:提供了一些驱动程序接口和功能,用于与硬件设备的通信。
代码语言:javascript
复制
sudo apt-get install ros-melodic-driver-base
  • 安装gazebo-ros-control软件包:提供了与Gazebo仿真环境的接口和控制器,以便在仿真中控制机器人或机器人模型。
代码语言:javascript
复制
sudo apt-get install ros-melodic-gazebo-ros-control
  • 安装effort-controllers软件包:提供了一些控制器,用于控制机器人关节的力或扭矩。
代码语言:javascript
复制
sudo apt-get install ros-melodic-effort-controllers
  • 安装joint-state-controller软件包:提供了一个控制器,用于发布机器人关节状态的消息。
代码语言:javascript
复制
sudo apt-get install ros-melodic-joint-state-controller
  • 安装ackermann-msgs软件包:定义了用于Ackermann车模型的ROS消息类型。
代码语言:javascript
复制
sudo apt-get install ros-melodic-ackermann-msgs
  • 安装global-planner软件包:提供了全局路径规划算法。
代码语言:javascript
复制
sudo apt-get install ros-melodic-global-planner
  • 安装teb-local-planner软件包:提供了使用Teb局部路径规划器的局部路径规划功能。
代码语言:javascript
复制
sudo apt-get install ros-melodic-teb-local-planner

报错1

运行

代码语言:javascript
复制
sudo apt-get install ros--melodic-gazebo-ros-control
代码语言:javascript
复制
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package ros—melodic-gazebo-ros-control
改错
代码语言:javascript
复制
sudo apt update
代码语言:javascript
复制
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt update
  1. 将ROS软件包的APT存储库地址添加到/etc/apt/sources.list.d/ros-latest.list文件中。具体来说,这个命令会在文件中写入一行,指定了ROS软件包的APT存储库地址。
  2. 从指定的keyserver导入ROS软件包的秘钥。这个命令会向系统导入ROS软件包的秘钥,以确保软件包是由ROS官方发布的。
  3. 更新系统的软件包索引。

报错2

代码语言:javascript
复制
E: The repository 'http://ppa.launchpad.net/fkrull/deadsnakes/ubuntu bionic Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
改错

这个错误的意思就是说这个仓库不维护了。所以我们删掉它即可。

代码语言:javascript
复制
sudo apt-add-repository -r ppa:jonathonf/vim

即从系统中删除名为"jonathonf/vim"的PPA存储库。

四、racecar功能包编译

代码语言:javascript
复制
cd ~/racecar_ws
catkin_make

报错

解决

搜索OpenCVConfig.cmake文件的路径

代码语言:javascript
复制
locate OpenCVConfig.cmake

进入相关目录编辑catkinConfig.cmake文件

代码语言:javascript
复制
sudo dedit catkinConfig.cmake

在find _package前面添加如下内容

代码语言:javascript
复制
set(OpenCV_DIR /usr/share/OpenCV)
更改后
代码语言:javascript
复制
mango@mango-virtual-machine:~/racecar_ws$ catkin_make
Base path: /home/hjx/racecar_ws
Source space: /home/hjx/racecar_ws/src
Build space: /home/hjx/racecar_ws/build
Devel space: /home/hjx/racecar_ws/devel
Install space: /home/hjx/racecar_ws/install
####
#### Running command: "make cmake_check_build_system" in "/home/hjx/racecar_ws/build"
####
####
#### Running command: "make -j1 -l1" in "/home/hjx/racecar_ws/build"
####
[  5%] Built target serial
[  8%] Built target serial_example
[  8%] Built target _ackermann_msgs_generate_messages_check_deps_AckermannDriveStamped
[  8%] Built target std_msgs_generate_messages_py
[  8%] Built target _ackermann_msgs_generate_messages_check_deps_AckermannDrive
[ 12%] Built target ackermann_msgs_generate_messages_py
[ 12%] Built target std_msgs_generate_messages_lisp

五、启动仿真编译​​​​​​​

代码语言:javascript
复制
echo "source ~/racecar_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
  1. source ~/racecar_ws/devel/setup.bash这一行命令追加到~/.bashrc文件中。setup.bash文件是ROS工作空间的配置文件,这个命令会确保每次启动终端时都会加载ROS工作空间。
  2. 重新加载~/.bashrc文件,以便终端会话可以访问ROS工作空间的配置。

启动gazebo,运行打开小车模型

代码语言:javascript
复制
roslaunch racecar_gazebo racecar.launch
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-07-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、安装配置运行的环境
  • 二、创建工作区域,下载源码包
    • 1. 创建工作空间
      • 2. 下载Gazebo搭建赛道功能包racecar
      • 三、安装本次运行需要的软件包
        • 报错1
          • 改错
        • 报错2
          • 改错
      • 四、racecar功能包编译
        • 报错
          • 解决
          • 更改后
      • 五、启动仿真编译​​​​​​​
        • 启动gazebo,运行打开小车模型
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档