注意:Ubuntu18.04需要下载Gazebo9这个版本,Gazebo的版本不要弄错
如果已经下载了其他版本的Gazebo,请先执行如下命令进行卸载
sudo apt-get remove gazebo-*
终端输入:
sudo sh -c 'echo "deb
显示:
http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'
从指定 URL 下载一个 GPG 密钥文件 (gazebo.key
),并将其内容通过管道 (|) 传递给 apt-key
命令,并通过 sudo
在具有超级用户权限的环境下执行 apt-key add
。这将把密钥添加到 apt 软件包管理器的可信密钥库中,以便安装和验证通过该密钥签名的软件包。
终端输入:
wget https://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
显示:
--2022-10-16 20:28:26-- https://packages.osrfoundation.org/gazebo.key
Resolving packages.osrfoundation.org (packages.osrfoundation.org)... 52.52.171.73
Connecting to packages.osrfoundation.org (packages.osrfoundation.org)|52.52.171.73|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1772 (1.7K) [application/octet-stream]
Saving to: ‘STDOUT’
- 100%[===================>] 1.73K --.-KB/s in 0s
2022-10-16 20:28:27 (82.2 MB/s) - written to stdout [1772/1772]
OK
终端依次输入:
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install gazebo9
gazebo
命令启动Gazebo模拟器。Gazebo 9是一个较为稳定的旧版,如果是新项目,推荐安装较新的Gazebo版本,例如:
sudo apt-get install gazebo11
sudo apt-get install gazebo
(如果之前已经安装过Gazebo的版本,安装新版本也不会覆盖之前的版本)
sudo apt-get install libgazebo9-dev
开发库是用于编译和开发 Gazebo 插件、扩展和自定义功能的工具。下面这个命令将会从 Ubuntu 的软件仓库下载并安装 Gazebo 9 的开发库及其相关的依赖项。安装完成后,就可以开始使用 Gazebo 9 的开发库来开发自己的项目。
sudo apt install ros-melodic-gazebo-ros-pkgs ros-melodic-gazebo-msgs ros-melodic-gazebo-plugins ros-melodic-gazebo-ros-control
主要有:
安装完成后,就可以在ROS节点中使用gazebo_ros
包, 与Gazebo世界互动了。
roscore
roscore 提供了 ROS 系统所需的基础服务,包括参数服务器、消息传输和节点通信等。在终端中执行 roscore
命令后,ROS 将会启动一个名为 roscore
的进程。这个进程将会监听 ROS 系统中的各个节点,并为它们提供各种服务。启动 roscore 后,可以开始运行其他 ROS 节点和相关程序,它们将会与 roscore 进行通信并利用其提供的服务。
rosrun gazebo_ros gazebo
该命令会运行 Gazebo ROS 包中的 gazebo 节点,它会加载 Gazebo 仿真器并提供 ROS 接口。一旦命令成功执行,Gazebo 仿真环境将会启动,并可以使用 ROS 消息传递来控制仿真场景、机器人模型或其他物理实体。
在 ~/.gazebo/
目录下创建一个 models
目录,下载模型文件列表并解压缩这些文件。
~/.gazebo/
目录cd ~/.gazebo/
models
的目录。如果该目录已存在,则不会产生任何错误,因为使用了 -p
选项mkdir -p models
~/.gazebo/models/
目录cd ~/.gazebo/models/
wget
命令下载 gazebo_models.txt
文件到当前目录。wget http://file.ncnynl.com/ros/gazebo_models.txt
wget
命令读取 gazebo_models.txt
文件中列出的模型文件 URL,并将这些文件下载到当前目录。wget -i gazebo_models.txt
model.tar.g
开头的文件,并使用 xargs
命令逐个执行 tar xzvf
命令将这些文件解压缩 ls model.tar.g* | xargs -n1 tar xzvf
[ INFO] [1665923863.099798768]: Finished loading Gazebo ROS API Plugin.
[ INFO] [1665923863.111388523]: waitForService: Service [/gazebo/set_physics_properties] has not been advertised, waiting...
[ INFO] [1665923866.814475043]: waitForService: Service [/gazebo/set_physics_properties] is now available.
[ INFO] [1665923866.982214681]: Physics dynamic reconfigure ready.
[Err] [REST.cc:205] Error in REST request
libcurl: (51) SSL: no alternative certificate subject name matches target host name 'api.ignitionfuel.org'
VMware: vmw_ioctl_command error Invalid argument.
^[aAborted (core dumped)
sudo gedit ~/.ignition/fuel/config.yaml
[ INFO] [1665929397.262289602]: Finished loading Gazebo ROS API Plugin.
[ INFO] [1665929397.264244460]: waitForService: Service [/gazebo/set_physics_properties] has not been advertised, waiting...
[ INFO] [1665929399.188514866]: waitForService: Service [/gazebo/set_physics_properties] is now available.
[ INFO] [1665929399.243283924, 0.004000000]: Physics dynamic reconfigure ready.
VMware: vmw_ioctl_command error Invalid argument.
Aborted (core dumped)
终端下设置环境变量为0
临时:
export SVGA_VGPU10=0
永久:
echo "export SVGA_VGPU10=0" >> ~/.bashrc
roscore
rosrun gazebo_ros gazebo