在Mac M1上利用Docker安装ROS2并打开RViz2

在Mac M1电脑上利用Docker安装ROS2并打开RViz2

前言

随着ROS的发展,越来越多的人开始使用ROS2,尤其在具身智能领域上,较新的开源代码基本都基于ROS2。所以,近期的项目为了跟上时代的潮流,团队决定将原有的ROS1升级到ROS2。做为一个老程序员,只能带头先将ROS2进行前期的学习与部署。为了方便代码的部署与传承,我决定采用docker的方式进行安装,但是没想到掉入了好多坑。。。经过几天的资料查找与测试,终于找到在Mac M1芯片上用docker跑通ROS2的方法,由于查找资料大都为英文资料,且是拼拼凑凑实现的,因此决定写一篇中文博客,以便遇到同样问题的小伙伴们也可以解决同样问题。本文是原生创作,希望如果引用本文可以注明出处,谢谢。

Mac的Docker安装

关于Mac电脑的docker安装在这里我就不多加描述了,大家可以在网上找到相关资料。

ROS2的安装

起初,由于Docker安装包的问题,我在安装时遇到了类似

ros2: ddsi_udp_create_conn: set IP_MULTICAST_IF failed: Bad Parameter 

的问题,一开始我以为是ros2 dds 的问题,在网上找了好多方法,都不好使,后面终于发现把安装包换一下就好了。。。最后我选的包是

althack/ros2:humble-full
### 使用 Docker 安装 ROS 2 的教程 以下是基于 Mac M1 和通用 Linux 平台的 Docker 安装 ROS 2 的方法: #### 准备工作 确保已安装最新版本的 Docker Desktop,启用对 Apple Silicon (M1 芯片) 的支持[^1]。对于其他平台,只需确认 Docker 已正确配置。 #### 创建自定义 Dockerfile 为了适配 ROS 2 版本的需求,可以创建一个定制化的 `Dockerfile` 文件来构建环境。以下是一个适用于 Foxy 版本的示例文件: ```dockerfile FROM osrf/ros:foxy-desktop # 设置时区和其他基础设置 ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && \ apt-get install -y --no-install-recommends tzdata locales && \ ln -fs /usr/share/zoneinfo/Etc/UTC /etc/localtime && dpkg-reconfigure -f noninteractive tzdata # 配置 ROS 环境变量 ENV LANG C.UTF-8 ENV LC_ALL C.UTF-8 # 可选:预加载一些常用工具包 RUN apt-get update && \ apt-get install -y python3-colcon-common-extensions python3-rosdep ros-foxy-rviz2 && \ rm -rf /var/lib/apt/lists/* CMD ["bash"] ``` 此脚本会拉取官方的 ROS Foxy 镜像作为基底,额外安装 RViz2 等必要组件。 #### 构建与运行容器 保存上述内容到名为 `Dockerfile` 的文件中,在同一目录下执行如下命令完成镜像制作: ```bash docker build -t my_ros2_foxy . ``` 之后可以通过下面的方式启动交互式的终端界面访问该开发环境: ```bash docker run -it --rm --name ros2_container my_ros2_foxy bash ``` 如果目标设备为 ARM64架构(如苹果M系列芯片),则需特别注意所选用的基础镜像是否兼容ARM处理器类型[^2]。通常情况下,建议查阅最新的官方文档或者社区维护的相关资源链接获取最匹配的支持版本信息。 #### 启动 RViz2 进入容器内部后可以直接调用 rviz2 命令开启图形化界面用于机器人仿真展示等功能测试。 ```bash rviz2 ``` 以上过程涵盖了从准备阶段直至实际操作的具体指导说明。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值