macOs arm架构安装虚拟机Ubuntu环境:ROS2 + Python开发
- Ubuntu、ROS2、Python版本关系
- 一、Ubuntu基础系统安装搭建
- 
- [1、下载VMware Fusion](#1、下载VMware Fusion)
- (1)下载VMware-Fusion-13.6.2-24409261_universal.dmg
- (2)下载完成双击安装即可
- [2、下载Ubuntu镜像文件(推荐Ubuntu 22.04 LTS)](#2、下载Ubuntu镜像文件(推荐Ubuntu 22.04 LTS))
- 
- [下载Ubuntu 24.04(Noble) LTS镜像文件](#下载Ubuntu 24.04(Noble) LTS镜像文件)
 
- 3、创建虚拟机
- 
- [(1)重要!!调整硬盘大小 (在没有把操作系统安装完成之前,之后扩容有些许麻烦)](#(1)重要!!调整硬盘大小 (在没有把操作系统安装完成之前,之后扩容有些许麻烦))
- (2)调整完硬盘大小之后CD/DVD里面把下载的镜像选择上,在启动磁盘里面选择CD/DVD,重新启动就可以进行下一步配置了
- [(3)查看Ubuntu版本:`cat /proc/version`](#(3)查看Ubuntu版本:cat /proc/version)
 
 
- 二、系统级安装ROS2
- 
- [1、安装ROS2(推荐安装Humble 更稳定)](#1、安装ROS2(推荐安装Humble 更稳定))
- 2、ROS2安装成功后查看ROS2环境变量参数
- [3、卸载ROS2 rolling](#3、卸载ROS2 rolling)
- 4、ROS2开发入门:鱼香ROS
- 
- [4.1 Linux下的.a文件和.so文件](#4.1 Linux下的.a文件和.so文件)
- [4.2 简单ros2开发常用步骤](#4.2 简单ros2开发常用步骤)
- 
- [4.2.1 创建功能包](#4.2.1 创建功能包)
- [4.2 编写程序](#4.2 编写程序)
- [4.3 编译运行节点](#4.3 编译运行节点)
 
 
 
- [三、 安装Anaconda和PyCharm创建conda环境](#三、 安装Anaconda和PyCharm创建conda环境)
- 
- [1、下载anaconda 的sh文件安装------>安装anaconda,运行sh文件:](#1、下载anaconda 的sh文件安装——>安装anaconda,运行sh文件:)
- 2、conda环境创建原理
- 
- [2.1 环境的概念](#2.1 环境的概念)
- [2.2 创建环境的步骤](#2.2 创建环境的步骤)
- [2.3 环境隔离原理](#2.3 环境隔离原理)
- [2.4 包管理和依赖解析](#2.4 包管理和依赖解析)
- [2.5 conda使用的Python解释器](#2.5 conda使用的Python解释器)
 
- 3、Pycharm创建conda的原理
- 
- 问题1:安装conda环境显示SSL证书验证失败
- [问题2:ModuleNotFoundError:no module named rclpy](#问题2:ModuleNotFoundError:no module named rclpy)
- [问题3:ImportError: librcl_action.so: cannot open shared object file: No such file or directory](#问题3:ImportError: librcl_action.so: cannot open shared object file: No such file or directory)
- [问题4:ubuntu24.04 ros2(jazzy)ros2 launch的时候 报错 packge "usb_cam " not found](#问题4:ubuntu24.04 ros2(jazzy)ros2 launch的时候 报错 packge "usb_cam " not found)
 
- 4、python包下载镜像设置
- 
- [4.1 terminal中设置永久镜像:](#4.1 terminal中设置永久镜像:)
- [4.2 验证配置是否生效:](#4.2 验证配置是否生效:)
- [4.3 附:常用国内镜像](#4.3 附:常用国内镜像)
 
 
Ubuntu、ROS2、Python版本关系
| ROS2版本 | 发布年份 | 支持状态 | Python版本 | Ubuntu版本 | 
|---|---|---|---|---|
| Jazzy | 2024 | 最新 | Python3.12 | Ubuntu 24.04 | 
| Iron | 2023 | LTS到2027 | Python 3.10 | Ubuntu 22.04 | 
| Humble | 2022 | LTS到2027 | Python 3.10 | Ubuntu 22.04 | 
| Rolling | 持续更新 | 开发版 | Python 3.10-3.12 | 多种 | 
一、Ubuntu基础系统安装搭建
1、下载VMware Fusion
(1)下载VMware-Fusion-13.6.2-24409261_universal.dmg
我用夸克网盘给你分享了「VMware-Fusion-13.6.2-24409261_universal.dmg」,点击链接或复制整段内容,打开「夸克APP」即可获取。
/094838Nq2k😕
链接:https://pan.quark.cn/s/cd6bf0b1b0ee
提取码:5cAy
(2)下载完成双击安装即可
2、下载Ubuntu镜像文件(推荐Ubuntu 22.04 LTS)
下载Ubuntu 24.04(Noble) LTS镜像文件
ubuntu-24.04-desktop-arm64.iso
https://mirrors.huaweicloud.com/ubuntu-cdimage/ubuntu/releases/24.04/release/
3、创建虚拟机
创建自定虚拟机------》继续

选择Linux------> Ubuntu 64位arm

之后一直默认点到完成。
(1)重要!!调整硬盘大小 (在没有把操作系统安装完成之前,之后扩容有些许麻烦)
在虚拟机------>硬盘 里面调整硬盘大小
(2)调整完硬盘大小之后CD/DVD里面把下载的镜像选择上,在启动磁盘里面选择CD/DVD,重新启动就可以进行下一步配置了
(3)查看Ubuntu版本:cat /proc/version
二、系统级安装ROS2
1、安装ROS2(推荐安装Humble 更稳定)
方式一:官方文档:https://docs.ros.org/en/rolling/Installation/Ubuntu-Install-Debs.html
方式二:鱼香ROS:
sudo apt update #该命令会从默认的软件服务器拉取所有的软件列表
#运行安装工具。根据指示一步步安装
wget http://fishros.com/install -O fishros && bash fishros 2、ROS2安装成功后查看ROS2环境变量参数
打印参数:printenv | grep -i ROS
不需要在Pycharm的环境变量里面增加打印的参数,这个属于系统环境变量,会自动去读取。
3、卸载ROS2 rolling
            
            
              bash
              
              
            
          
          sudo apt remove ~nros-rolling-* && sudo apt autoremove4、ROS2开发入门:鱼香ROS
https://fishros.com/d2lros2/#/humble/chapt2/get_started/5.使用RCLPY编写节点
4.1 Linux下的.a文件和.so文件
在widows平台下,静态链接库是.lib文件,动态库文件是.dll文件。在linux平台下,静态链接库是.a文件,动态链接库是.so文件。
4.2 简单ros2开发常用步骤
4.2.1 创建功能包
            
            
              bash
              
              
            
          
          cd chapt2/chapt2_ws/src/
ros2 pkg create example_py  --build-type ament_python --dependencies rclpy4.2 编写程序
编写ROS2节点的一般步骤
            
            
              bash
              
              
            
          
          1. 导入库文件
2. 初始化客户端库
3. 新建节点
4. spin循环节点
5. 关闭客户端库在example_py/example_py下创建node_02.py:
            
            
              python
              
              
            
          
          import rclpy
from rclpy.node import Node
def main(args=None):
    """
    ros2运行该节点的入口函数
    编写ROS2节点的一般步骤
    1. 导入库文件
    2. 初始化客户端库
    3. 新建节点对象
    4. spin循环节点
    5. 关闭客户端库
    """
    rclpy.init(args=args) # 初始化rclpy
    node = Node("node_02")  # 新建一个节点
    node.get_logger().info("大家好,我是node_02.")
    rclpy.spin(node) # 保持节点运行,检测是否收到退出指令(Ctrl+C)
    rclpy.shutdown() # 关闭rclpy
            
            
              python
              
              
            
          
              entry_points={
        'console_scripts': [
            "node_02 = example_py.node_02:main"
        ],
    },
)4.3 编译运行节点
            
            
              bash
              
              
            
          
          # 编译节点
cd chapt2/chapt2_ws/
colcon build
# source环境
source install/setup.bash
#运行节点
ros2 run example_py node_02节点运行起来之后,可以使用ros2 node list查看现有节点
三、 安装Anaconda和PyCharm创建conda环境
1、下载anaconda 的sh文件安装------>安装anaconda,运行sh文件:
            
            
              bash
              
              
            
          
          bash anacondaxx.sh2、conda环境创建原理
conda是一个开源的包管理系统和环境管理系统,用于安装多个版本的软件包及其依赖关系,并在它们之间轻松切换。
2.1 环境的概念
conda环境是一个独立的目录,其中包含特定版本的软件包和它们的依赖。每个环境都是相互隔离的,这意味着在一个环境中安装的软件包不会影响其他环境。
2.2 创建环境的步骤
            
            
              bash
              
              
            
          
          # 创建新环境
conda create -n myenv python=3.8
# 激活环境
conda activate myenv
# 停用当前环境 如果当前激活了目标环境,需先停用:
conda deactivate
# 删除指定环境 使用以下命令删除虚拟环境: 
conda remove -n 环境名称 --all 
#示例:删除名为 myenv 的环境: conda remove -n myenv --all2.3 环境隔离原理
- 目录隔离:每个环境在envs/目录下有独立文件夹
- PATH修改:激活时将该环境的bin/目录添加到PATH最前面
- 环境变量:设置COND_DEFAULT_ENV和CONDA_PREFIX环境变量
2.4 包管理和依赖解析
            
            
              bash
              
              
            
          
          # 安装包时的依赖解析过程
conda install numpy pandas
# Conda会:
# 1. 解析包依赖关系
# 2. 检查冲突
# 3. 下载兼容的包版本2.5 conda使用的Python解释器
conda不使用系统自带的python,而是自己管理独立的Python解释器。当你创建一个新的conda环境时,conda会在这个环境的目录中安装一个独立的Python解释器(如果你在创建时指定了python版本)。这样,每个环境都可以有自己特定版本的python和包,互不干扰。python解释器位于环境目录下的python可执行文件。
3、Pycharm创建conda的原理
PyCharm是一个集成开发环境(IDE),它支持使用conda来管理项目环境。当在PyCharm中创建一个新的conda环境时,PyCharm实际上是在后台调用conda命令来创建环境。
问题1:安装conda环境显示SSL证书验证失败
解决:看下系统时间是否正确(使用虚拟机快照打开系统时间可能不对),重启看看
问题2:ModuleNotFoundError:no module named rclpy
解决方式:添加ros2相关包rclpy路径到Interpreter Paths下
            
            
              bash
              
              
            
          
          # 配置步骤:
1. PyCharm → Preferences/Settings
2. Project → Python Interpreter
3. 点击齿轮图标 → Show All
4. 选择你的解释器 → 点击文件夹图标(Show paths for the selected interpreter)
5. 点击 "+" 添加自定义路径
添加ros2相关路径:`/opt/ros2/rolling/lib/python3.12/site-packages`
# 典型需要添加的路径:
- 项目源码根目录
- 包含自定义库的目录
- 第三方库的非标准安装路径
- 共享模块目录问题3:ImportError: librcl_action.so: cannot open shared object file: No such file or directory
问题分析:librcl_action.so文件是动态库
解决:我错误地直接运行py文件了,没有使用ros2
的构建编译,ros2开发要使用ros2的构建编译运行规则
            
            
              bash
              
              
            
          
          colcon build
source install/setup.bash
ros2 run example_py node_02问题4:ubuntu24.04 ros2(jazzy)ros2 launch的时候 报错 packge "usb_cam " not found
注意ROS2版本,使用Jazzy,不要使用Rolling开发版
            
            
              bash
              
              
            
          
          # 更新软件包列表
sudo apt update
# 搜索可用的 usb_cam 包
apt search ros-jazzy-usb-cam
# 安装 usb_cam 包
sudo apt install ros-jazzy-usb-cam
# 重新加载环境
source /opt/ros/jazzy/setup.bash
            
            
              bash
              
              
            
          
          1、package "usb_cam" not found 下载包sudo apt install ros-jazzy-usb-cam
2、/home/lc/ 需要改成自己的路径/home/xxx/Documents/项目名
3、no moudle not found:pip install 下载
4\Error in cpuinfo: prctl(PR_SVE_GET_VL) failed
5\Unable to open camera calibration file [/home/hri/.ros/camera_info/head_camera.yaml]
解决办法:
sudo apt-get install ros-indigo-image-view
            
            
              bash
              
              
            
          
          apt(Advanced Packaging Tool)是一个在 Debian 和 Ubuntu 中的 Shell 前端软件包管理器。
apt 命令提供了查找、安装、升级、删除某一个、一组甚至全部软件包的命令4、python包下载镜像设置
4.1 terminal中设置永久镜像:
            
            
              bash
              
              
            
          
          pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple4.2 验证配置是否生效:
            
            
              bash
              
              
            
          
          pip config list4.3 附:常用国内镜像
            
            
              bash
              
              
            
          
          # 清华大学
https://pypi.tuna.tsinghua.edu.cn/simple
# 阿里云
https://mirrors.aliyun.com/pypi/simple
# 豆瓣
https://pypi.douban.com/simple
# 中国科学技术大学
https://pypi.mirrors.ustc.edu.cn/simple
# 华为云
https://repo.huaweicloud.com/repository/pypi/simplehttps://www.qishuxia.com/modules/article/txtarticle.php?id=289661