【ROS2】Mac M4 虚拟机 Ubuntu 24.04 安装 ROS2 Jazzy 新手教程

【ROS2】Mac M4 虚拟机 Ubuntu 24.04 安装 ROS2 Jazzy 新手教程

1、系统准备

1.1、安装 Ubuntu 24.04 LTS

M4虚拟机软件很多,诸如Parallels Desktop(收费)、OrbStack(免费)、UTM(免费)等,桌面仿真推荐PD;终端推荐OrbStack,以下是两款工具的对比,可以按需选择。

对比项 Parallels Desktop(PD) OrbStack
核心定位 完整虚拟机,全系统支持 轻量容器 + Linux 终端虚拟机
桌面 GUI ✅ 完整支持(Windows/macOS/Linux 桌面) ❌ 仅 Linux 终端,无桌面
启动速度 慢(数十秒) 极快(<2 秒)
资源占用 高(内存 GB 级) 极低(内存 <300MB)
支持系统 Windows/macOS/Linux/BSD 全系统 仅 Linux(终端)+ Docker 容器
文件共享 无缝融合模式 自动挂载,性能优秀
网络 桥接 / NAT/host 等多种模式 自动端口映射、host 网络
价格 商业付费(订阅 / 永久) 个人免费,商业付费
适用人群 全场景、需要桌面、多系统用户 开发者、命令行、容器 / DevOps 场景

(1)PD一键安装 桌面版 Ubuntu 24.04 LTS

点击继续、下载即可,

下载完成直接进入系统登录界面

(2)OrbStack一键安装 终端版 Ubuntu 24.04 LTS

点击 Create,即可开始下载并自动安装

1.2、Ubuntu 系统设置

(1)设置系统编码为 UTF-8

查看系统编码

bash 复制代码
locale
echo $LANG		# en_US.UTF-8

以上虚拟机默认已经是 UTF-8,

如果其他方式安装的,不存在或系统编码不符合的,可以通过以下命令来安装并进行设置:

bash 复制代码
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

(2)设置系统软件源

查看系统架构

bash 复制代码
uname -m
aarch64

输出结果参考以下表格:

架构类型 常见输出值 适用场景 / 说明
x86(32 位) i386/i486/i586/i686 老旧 32 位 x86 处理器(如早期 Intel/AMD 处理器),现代系统几乎不再使用
x86_64(64 位) x86_64/amd64 主流 64 位 x86 架构(Intel Core/AMD Ryzen 处理器),Linux/macOS/Windows 通用
ARM 32 位 armv6l/armv7l 树莓派 1/2/Zero(armv6l)、树莓派 3/4 32 位系统(armv7l),l 表示小端序
ARM 64 位 aarch64/arm64 树莓派 4/5 64 位系统、M1/M2/M3 Mac、ARM 服务器(如 AWS Graviton)、安卓手机
PowerPC ppc/ppc64/ppc64le IBM Power 服务器,le 表示小端序
MIPS mips/mips64/mipsel 嵌入式设备、路由器(如小米路由器),el 表示小端序
RISC-V riscv64 新兴开源架构(如香橙派 RISC-V 开发板),目前主要是 64 位版本
SPARC sparc/sparc64 Sun/Oracle 服务器,小众架构
Alpha alpha DEC 老旧服务器架构,几乎淘汰

因为M4本身是ARM64架构,所以在它上面虚拟的Ubuntu也是ARM64架构的。

设置ARM64位专用的阿里云软件源(对应 ubuntu-ports ):

bash 复制代码
sudo tee /etc/apt/sources.list << 'EOF'
deb http://mirrors.aliyun.com/ubuntu-ports/ noble main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu-ports/ noble-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu-ports/ noble-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu-ports/ noble-backports main restricted universe multiverse
EOF

附:X86_64位的阿里云源(对应 ubuntu )

bash 复制代码
sudo tee /etc/apt/sources.list << 'EOF'
deb http://mirrors.aliyun.com/ubuntu/ noble main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ noble-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ noble-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ noble-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ noble-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ noble main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ noble-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ noble-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ noble-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ noble-backports main restricted universe multiverse
EOF

注意:以上源一定不能混用,必须要区分核心架构。

更新系统

bash 复制代码
sudo apt update
sudo apt upgrade -y

2、安装 ROS2 jazzy

2.1、安装基础工具

bash 复制代码
sudo apt install curl gnupg lsb-release

2.2、添加 ROS 软件源

bash 复制代码
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg

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

2.3、安装 ROS2

bash 复制代码
sudo apt update
sudo apt upgrade -y
sudo apt install ros-jazzy-desktop -y			# RViz + rqt + TF2 + 基础库
sudo apt install ros-jazzy-desktop-full -y		# desktop + Gazebo 全套仿真环境

做机器人仿真(导航、SLAM、机械臂),必装 full。

2.4、设置 ROS2 环境变量

查看当前shell类型

bash 复制代码
echo $SHELL
/bin/bash

(1)如果你使用 bash

bash 复制代码
# 对所有终端有效,写入终端启动前执行的配置文件,每次启动终端自动执行
echo "source /opt/ros/jazzy/setup.bash" >> ~/.bashrc
source ~/.bashrc

(2)如果你使用 zsh

bash 复制代码
echo "source /opt/ros/jazzy/setup.zsh" >> ~/.zshrc
source ~/.zshrc

2.5、ROS2 安装验证

bash 复制代码
# 查看 ROS2 命令
ros2
bash 复制代码
# 运行官方示例:消息发布/订阅测试(必须两个终端)
ros2 run demo_nodes_cpp talker      	# 发布消息:Hello World:序号
ros2 run demo_nodes_cpp listener		# 订阅消息:Hello World:序号


bash 复制代码
# 小海龟移动测试(必须在桌面端,运行两个终端)
ros2 run turtlesim turtlesim_node		# 显示小海龟
ros2 run turtlesim turtle_teleop_key	# 鼠标控制小海龟

至此,ROS2 已经安装成功。

2.6、卸载 ROS2

bash 复制代码
sudo apt remove ros-jazzy-* -y
sudo apt autoremove -y
sudo rm /etc/apt/sources.list.d/ros2.list

3、开发环境设置

3.1、创建工作空间

工作空间(workspace)是一个存放工程开发相关文件的文件夹。

  • src:代码空间(Source Space),功能包里的源码、脚本等。
  • build:编译空间(Build Space),编译过程产生的中间文件,不用管。
  • install:安装空间(Install Space),编译完成之后产生的可执行文件、脚本。
  • log:日志空间(Log Space),编译过程中以及后续运行过程中产生的各种日志信息。
bash 复制代码
mkdir -p ~/Workspace/dev_ws/src		# 创建src目录
cd ~/Workspace/dev_ws/src	

# 下载胡春旭老师的教程
git clone https://gitee.com/guyuehome/ros2_21_tutorials.git

3.2、安装依赖

bash 复制代码
sudo apt install -y python3-pip

# 国内工具rosdepc替代rosdep,解决国外网络依赖
sudo pip3 install rosdepc
# 报错则执行以下命令:
sudo pip3 install rosdepc --break-system-packages

# 更新环境
$ sudo rosdepc init 
$ rosdepc update
$ cd ..		# 回退到src上级目录中

# 搜索当前src目录,自动安装所需依赖
$ rosdepc install -i --from-path src --rosdistro jazzy -y

3.3、编译工作空间

colcon 是一个命令行工具,用于改进编译、测试和使用多个软件包的工作流程。它实现过程自动化,处理需求并设置环境以便于使用软件包。ROS2 中便是使用 colcon 作为包构建工具的,但是 ROS2 中没有默认安装 colcon,需要自行安装,安装命令如下:

bash 复制代码
# 首先安装编译工具
sudo apt install python3-colcon-ros

# 在工作空间目录,进行编译
colcon build		# 编译过程生成另外三个目录:build install log

3.4、设置工作空间环境变量

bash 复制代码
echo "source ~/Workspace/dev_ws/install/local_setup.sh" >> ~/.bashrc

3.5、创建功能包

bash 复制代码
cd src
ros2 pkg create <package_name> --build-type <bulid-type> 
相关推荐
水文摸鱼怪12 小时前
HHU校园网自动连接监控系统(钉钉机器人版)操作说明书
机器人·钉钉
xiaoduo AI12 小时前
客服机器人支持表情包互动吗?智能体图文自动回复,更贴合年轻客户偏好?
人工智能·机器人
VBsemi-专注于MOSFET研发定制12 小时前
服务机器人调度平台功率MOSFET选型方案——高效、可靠与紧凑型驱动系统设计指南
机器人
一RTOS一13 小时前
东土科技加入具身智能数据要素产业联盟全面适配人形机器人训练等关键应用场景
科技·机器人·鸿道操作系统·鸿道实时操作系统·国产嵌入式操作系统选型
SteveSenna14 小时前
强化学习4.1:基于价值——Q-learning
人工智能·学习·算法·机器人
aosky15 小时前
手机远程畅玩OpenAI Codex
macos·智能手机·cocoa
深兰科技15 小时前
俄罗斯机器人与教育机构接连来访深兰科技,加速具身智能与AI合作
人工智能·机器人·具身智能·深兰科技
xiaoduo AI16 小时前
客服机器人离线消息能否补发?智能 Agent 断网重连后能否自动追答未回复问题?
机器人
xiaoduo AI17 小时前
客服机器人可按客户等级差异化回复吗?Agent 系统能否识别 VIP 并优先转接人工?
大数据·人工智能·机器人
A懿轩A17 小时前
【2026 最新】Python 下载与安装:在 macOS 下使用 Homebrew 和 pyenv 完美管理多版本 Python
python·macos·mac