基于MacOS的Webots + ROS2的安装指南

2023-11-27 23:55:00 浏览数 (2)

概述

在我开始探索机器人这个领域时,尤其是做Webots上的机器人仿真时,发现中文互联网对苹果党不是很友好。基本没有什么中文的基于MacOS的Webots ROS2的安装指南。折腾了好久,总算摸索出了一条路。特此记录,希望能帮助后来者。这是Webots系列的第一篇,后续会有腾讯云服务器上相关的内容。

在这篇文章中,我们将深入解析如何在MacBook Pro(MacOS系统)上安装和配置Webots和ROS2。Webots是一种基于开源软件的机器人模拟器,可帮助开发者在三维环境中进行机器人建模和编程。ROS2,即开源的机器人操作系统的第二个版本,是一款为满足机器人系统的设计需求而创建的灵活的框架。

我们将向你展示从下载所需软件包,到解决可能遇到的安装问题的详细步骤。这篇指南中,我们还会介绍如何连接Webots和ROS2以及如何运行基础的模拟实例。对于希望在MacOS上使用Webots和ROS2进行机器人开发和模拟的读者,此博客将成为一份宝贵的资源。

无论你是已经深入了解机器人开发,还是初次踏入这个领域,我们都会以浅显易懂的方式,将这个稍显复杂的安装过程分解为一步步的操作指南。所以,让我们一起开始这个旅程,打开MacOS上的Webots和ROS2的大门。

前置条件

我的MacBook Pro的软硬件环境如下:

安装Webots

进入https://cyberbotics.com/#download,点击下载Webots 2023b的MacOS版本,即 macOS Bundle (.dmg)。

安装完成后,点击瓢虫图标,即可进入Webots。

安装UTM及ubuntu22.04版本的虚拟机

安装UTM

进入 https://mac.getutm.app/ ,点击【Download】下载 ,然后安装。

安装完成后,可以看到如下界面。

下载ubuntu22.04版本的虚拟机

下载Ubuntu 22.04.3 LTS (Jammy Jellyfish) 64-bit PC (AMD64) desktop image(iso镜像)

进入 https://cdimage.ubuntu.com/jammy/daily-live/current/ ,点击 64-bit PC (AMD64) desktop image 下载镜像。

安装ubuntu22.04版本的虚拟机

进入UTM,点击【创建一个新虚拟机】,

点击【虚拟化】,

点击【Linux】,

点击【启动ISO映像】的【浏览】,选择jammy-desktop-amd64.iso,然后点击右下角【继续】,

不修改缺省配置,点击右下角【继续】,

可以不修改缺省配置,点击右下角【继续】,我这里将Storage从64GB改为32GB只是我的硬盘快满了。

MacBook Pro本地创建一个文件夹shared。我是创建了/Users/用户名/Workspace/shared目录,然后用这个空目录。

共享目录这里是一个关键配置,点击【浏览...】,选择/Users/用户名/Workspace/shared目录,点击右下角【继续】。

填写【总结】中的【名称】为buzzfrog-ubuntu,你也可以填写你喜欢的名字。点击右下角【保存】

点击大大的黑色圆圈中的三角Play按钮。

等待一会儿,进入如下界面。选择*Try or Install Ubuntu 。

等待一会儿,进入如下界面。选择左侧【中文(简体)】,选择【Install Ubuntu】(或者【安装Ubuntu】)。

选择右下角【继续】。

这里如果不在乎速度,可以使用缺省选择。选择【最小安装】,取消【安装Ubuntu时下载更新】。点击右下角【继续】。

选择【清除整个磁盘并安装Ubuntu】,选择右下角【现在安装】。

点击【继续】。

填入Shang-hai。注意其中有减号。点击【继续】。

按下图填入。点击右下角【继续】。

等待安装完成……

安装完成,点击【现在重启】。

清除CD/DVD。

点击【buzzfrog】,输入你之前设置的密码,进入UTM的ubuntu。

点击右上角【跳过(S)】。

点击右上角【前进(N)】

点击右上角【前进(N)】

点击右上角【前进(N)】

点击右上角【完成(D)】

安装ROS2

点击左下角【显示应用程序】,

点击【终端】。

设置locale

确保您有一个支持 UTF-8 .如果您处于最小环境(例如 docker 容器)中,则区域设置可能是最小的环境,例如 POSIX .我们使用以下设置进行测试。但是,如果您使用的是其他支持 UTF-8 的区域设置,则应该没问题。

代码语言:txt复制
locale  # check for UTF-8

sudo apt update && sudo apt install locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8

locale  # verify settings

设置源

您需要将 ROS 2 apt 存储库添加到您的系统中。

首先,确保 Ubuntu Universe 存储库已启用。

代码语言:txt复制
sudo apt install software-properties-common
sudo add-apt-repository universe

现在使用 apt 添加 ROS 2 GPG 密钥。

代码语言:txt复制
sudo apt update && sudo apt install curl -y
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg

然后将存储库添加到源列表。

代码语言:txt复制
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

安装 ROS 2 软件包

设置存储库后,更新 apt 存储库缓存。

代码语言:txt复制
sudo apt update

ROS 2 软件包建立在经常更新的 Ubuntu 系统上。始终建议您在安装新软件包之前确保您的系统是最新的。

代码语言:txt复制
sudo apt upgrade

桌面安装:ROS、RViz、演示、教程。

代码语言:txt复制
sudo apt install ros-humble-desktop

环境设置

获取安装脚本

代码语言:txt复制
# Replace ".bash" with your shell if you're not using bash
# Possible values are: setup.bash, setup.sh, setup.zsh
source /opt/ros/humble/setup.bash

尝试一些例子

talker-listener案例

在一个终端中,

代码语言:txt复制
source /opt/ros/humble/setup.bash
ros2 run demo_nodes_cpp talker

在另一个终端中,

代码语言:txt复制
source /opt/ros/humble/setup.bash
ros2 run demo_nodes_py listener

安装webots_ros2的仿真程序

在 VM 中创建一个文件夹以用作共享文件夹。在此示例中,VM 中的共享文件夹为 /home/buzzfrog/shared 。

代码语言:txt复制
mkdir /home/buzzfrog/shared

要将此文件夹挂载到主机,请执行以下命令。

代码语言:txt复制
sudo mount -t 9p -o trans=virtio share /home/buzzfrog/shared -oversion=9p2000.L

若要在启动 VM 时自动将此文件夹装载到主机,请将以下行添加到 /etc/fstab 。

代码语言:txt复制
share     /home/buzzfrog/shared     9p      trans=virtio,version=9p2000.L,rw,_netdev,nofail 0       0

必须始终设置环境变量 WEBOTS_SHARED_FOLDER ,才能使包在 VM 中正常工作。此变量指定共享文件夹的位置,该文件夹用于在主机和虚拟机 (VM) 之间交换 webots_ros2 包中的数据。用于此变量的值应采用 的格式,其中 <host shared folder> 是主机上共享文件夹的路径, <host shared folder>:<VM shared folder> 是 <VM shared folder> VM 上同一共享文件夹的路径。

代码语言:txt复制
export WEBOTS_SHARED_FOLDER=/Users/username/shared:/home/buzzfrog/shared

您可以将此命令行添加到文件中, ~/.bashrc 以便在启动新终端时自动设置此环境变量。

您可以从官方发布的软件包安装 webots_ros2,在 VM 终端中运行以下命令。

代码语言:txt复制
sudo apt-get install ros-humble-webots-ros2

启动 webots_ros2_universal_robot 示例

首先获取 ROS 2 环境

代码语言:txt复制
source /opt/ros/humble/setup.bash

如果尚未在 ~/.bashrc 中设置,请设置 WEBOTS_SHARED_FOLDER 。

代码语言:txt复制
export WEBOTS_SHARED_FOLDER=/Users/username/shared:/home/buzzfrog/shared

使用 ROS 2 launch 命令启动演示( webots_ros2_universal_robot )。

代码语言:txt复制
ros2 launch webots_ros2_universal_robot multirobot_launch.py

然后,在MacBook Pro中,打开Webots,选择【文件】,选择【打开世界……】,打开shared文件夹,点击*.wbt文件。然后点击运行按钮。

参考文档

https://cyberbotics.com/

https://www.ros.org/

https://webots.cloud/

https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debians.html

https://docs.ros.org/en/humble/Tutorials/Advanced/Simulators/Webots/Installation-MacOS.html

https://discourse.ros.org/t/turtlebot3-and-webots/17880

0 人点赞