由于本地部署是24.04和26.04两个版本系统,分开补充。
遇到的核心问题是 Ubuntu 24.04 的新安全机制 以及 部分软件包在官方源中不存在。
以下是为你整理的无报错、可直接执行的完整安装方案。
🛑 核心问题解析(为什么之前会报错?)
error: externally-managed-environment:- 原因:Ubuntu 24.04 默认禁止直接使用
pip向系统全局安装 Python 包,以防止破坏系统依赖。 - 解决:必须使用
--break-system-packages参数(强制安装)或使用虚拟环境。
- 原因:Ubuntu 24.04 默认禁止直接使用
E: Unable to locate package python3-pybullet:- 原因:Ubuntu 官方源里确实没有这两个包,必须用
pip安装。
- 原因:Ubuntu 官方源里确实没有这两个包,必须用
E: Package 'freecad' has no installation candidate:- 原因:FreeCAD 更新频繁,Ubuntu 24.04 默认源可能暂未收录或名称变更,建议通过官方 PPA 安装最新版。
🚀 第一步:一键安装所有 APT 系统软件
这条命令涵盖了博客中提到的所有基础工具、编译器、CAD软件和仿真器依赖。请直接复制运行:
sudo apt update && sudo apt install -y \
python3 python3-pip octave simulide librecad \
gcc g++ gdb make cmake idle3 \
python3-opencv ffmpeg gimp imagemagick \
git vim nano net-tools htop \
python3-matplotlib python3-numpy python3-scipy \
openscad
说明:
- 这里已经包含了
python3-matplotlib、python3-numpy等科学计算库的 APT 版本,安装它们可以避免后续pip编译报错。- FreeCAD 暂未包含在内,请在下一步单独处理。
🛠️ 第二步:解决 FreeCAD 和 Python 第三方库
由于 pybullet、meshcat 不在 APT 源中,且系统限制了 pip,我们需要使用 --break-system-packages 参数来强制安装(这是在 Ubuntu 24.04 上最直接的非虚拟环境安装法)。
请依次执行以下两条命令:
1. 安装 FreeCAD (通过官方 PPA)
sudo add-apt-repository ppa:freecad-maintainers/freecad-stable -y && sudo apt update && sudo apt install freecad -y
2. 安装 PyBullet 和 Meshcat (使用强制参数)
pip3 install pybullet meshcat -i https://pypi.tuna.tsinghua.edu.cn/simple --break-system-packages
✅ 验证安装
执行完上述步骤后,你的环境应该已经配置完毕。你可以通过以下命令简单验证:
- 验证 Python 库:
python3 -c "import pybullet; import meshcat; print('PyBullet and Meshcat OK')" - 验证 FreeCAD:
在终端输入freecad看能否启动界面。
这样操作后,所有软件都能正常安装且不会报错。

交流备份
为了在 Ubuntu 24.04 系统中复现博客中提到的所有实践案例,你需要安装一系列软件包和 Python 库。
以下是根据博客内容整理的完整安装命令,你可以将其复制到终端中一次性执行。
🛠️ 一键安装命令
sudo apt update -y && sudo apt install -y python3 python3-pip octave simulide librecad freecad
📦 安装清单说明
这条命令会安装以下内容:
- 系统基础:
python3: Python 解释器。python3-pip: Python 的包管理工具,用于安装 Python 库。octave: 一款开源的数值计算软件,语法与 MATLAB 高度兼容,博客中用于“信号与系统”课程的实践。
- 工程软件:
simulide: 一款开源的电子电路和单片机仿真软件,博客中用于“电路原理”、“模电”、“数电”和“单片机”课程的实践。librecad: 一款开源的 2D 计算机辅助设计(CAD)软件,用于“工程制图基础”的 2D 部分。freecad: 一款开源的 3D 参数化建模软件,用于“工程制图基础”的 3D 部分。
🐍 Python 库安装
执行完上述命令后,还需要使用 pip 安装 Python 的科学计算库,这些库是博客中所有 Python 可视化案例的基础。
pip3 install numpy matplotlib scipy -i https://pypi.tuna.tsinghua.edu.cn/simple
numpy: 用于高效的数值计算。matplotlib: 用于数据可视化绘图。scipy: 用于科学计算和技术计算。-i https://pypi.tuna.tsinghua.edu.cn/simple: 使用清华大学的镜像源,可以显著加快下载速度。
结合该博客(蓝桥云课机器人工程相关课程)的完整内容,除了之前提供的基础工具,要全面覆盖课程中的各项实践,建议补充安装以下软件包:
1. 机器视觉与数字图像处理类
课程涉及机器人感知和图像处理实验,需要以下工具:
- opencv-python: 开源机器视觉库,用于图像滤波、边缘检测、特征提取和目标识别。
- ffmpeg: 视频/图像格式转换工具,用于机器视觉中的视频流处理。
- gimp: 开源图像处理软件,用于数字图像处理的基础操作(如抠图、滤波、调色)。
- imagemagick: 命令行图像处理工具,用于批量处理传感器或视觉采集的图像数据。
2. 编程基础与编译工具
为了顺利编写和编译 C/C++ 代码,需要补齐基础的编译环境:
- gcc, g++: C/C++ 编译器。
- gdb: 代码调试工具。
- make, cmake: 项目构建与编译工具。
- idle3: Python 的集成开发环境(IDE)。
3. 机器人仿真与机械设计类
用于机器人运动学仿真和机械结构设计:
- openscad: 3D 建模软件。
- python3-pybullet: 用于机器人物理仿真。
- python3-meshcat: 用于三维网格数据的可视化。
4. 通用辅助工具
用于系统监控、网络调试和代码管理:
- git: 代码版本管理工具,用于项目开发和代码同步。
- vim, nano: 命令行文本编辑器。
- net-tools: 网络调试工具(包含
ifconfig、arp等),常用于 ROS 多机通信和嵌入式设备网络连接。 - htop: 系统资源监控工具,用于排查仿真或大型程序运行时的资源占用问题。
💡 一键补充安装命令
你可以直接复制以下命令,一次性完成所有补充软件的安装:
sudo apt update -y && sudo apt install -y \
python3-opencv ffmpeg gimp imagemagick \
gcc g++ gdb make cmake idle3 \
openscad python3-pybullet python3-meshcat \
git vim nano net-tools htop
⚠️ 关键注意事项
- ROS 环境前置要求:如果你后续需要安装 ROS(机器人操作系统),上述部分 ROS 软件包需要先添加 ROS 官方源并配置密钥,然后再使用
apt安装,否则系统会提示“包不存在”。 - 版本兼容性:Ubuntu 24.04 属于较新的长期支持版(LTS),通过
apt安装的 FreeCAD、KiCad 等软件通常为最新稳定版,能够很好地适配课程学习。 - Octave 扩展包:如果你在使用 Octave 进行控制理论或信号处理仿真时发现部分核心功能无法使用,可能需要单独安装 Octave 的控制包或信号包扩展。
除了之前整理的系统基础工具、工程软件、机器视觉库以及编译环境外,要全面覆盖机器人工程的学习与开发,还需要补充以下几个核心领域的专业软件:
1. 机器人操作系统与仿真平台
这是现代机器人开发的核心框架与测试环境:
- ROS / ROS2 (Robot Operating System):机器人领域的标准中间件,提供丰富的工具和库,支持各类机器人应用,是连接传感器、电机和算法的“神经系统”。
- Gazebo:广泛使用的开源机器人仿真平台,提供高保真物理仿真环境,且与 ROS 紧密集成,适合在虚拟环境中测试和调试。
- CoppeliaSim (原V-REP):一款跨平台、功能全面且极易上手的机器人仿真软件,支持多种物理引擎和可视化 GUI 建模,非常适合初学者入门和算法验证。
- NVIDIA Isaac Sim:基于 Omniverse 构建的高保真仿真引擎,支持合成数据生成与虚实联动测试,适合需要 GPU 加速和 AI 深度学习训练的复杂场景。
2. 人工智能与深度学习框架
赋予机器人感知、决策和自主思考的能力:
- TensorFlow / PyTorch:主流的深度学习框架,用于构建和训练复杂的神经网络模型。
- OpenCV:强大的开源计算机视觉库,支持图像滤波、特征提取以及与深度学习框架的无缝集成。
3. 算法设计与数值计算
- MATLAB & Simulink:在控制系统、算法设计和高精度数值计算方面表现卓越。它提供丰富的机器人工具箱,常用于模型预测控制(MPC)和硬件在环测试(HIL)。
4. 工业级 CAD 与离线编程
针对工业机械臂的特定开发需求:
- SolidWorks:行业标准级的 3D CAD 软件,适合进行精密的机械结构设计和装配。
- Delfoi Robotics:集数字化工厂仿真和离线编程为一体的现代化智能工厂软件,常用于弧焊、切割、喷涂等工业应用的路径规划。
- RobotStudio:ABB 推出的全球广泛使用的机器人离线编程和仿真工具,支持虚拟调试,能大幅缩短真机调试时间。
5. 版本控制工具
- GitHub / GitLab:用于代码版本管理,防止代码修改出错时无法回滚,是团队协作和开源项目跟踪的必备工具。
这些软件涵盖了从底层算法、操作系统、仿真测试到工业级部署的完整机器人研发生命周期。你可以根据当前具体的课程进度或项目需求,选择相应的工具进行安装和学习。
出现 E: Unable to locate package(无法定位软件包)错误,是因为在 Ubuntu 24.04 的官方 APT 软件源中,并没有收录 python3-pybullet 和 python3-meshcat 这两个包。
在 ROS 2 的开发中,这类 Python 依赖包通常不通过系统的 apt 来安装,而是使用 pip。
💡 解决方案
您可以直接使用 pip3 来安装这两个仿真库。为了保证下载速度,这里为您加上清华大学的镜像源:
pip3 install pybullet meshcat -i https://pypi.tuna.tsinghua.edu.cn/simple
⚠️ Ubuntu 24.04 特别注意事项
由于您使用的是较新的 Ubuntu 24.04 系统,它默认启用了 PEP 668 规范,为了保护系统自带的 Python 环境不被破坏,直接使用 pip3 可能会遇到 externally-managed-environment 报错。
如果您遇到了上述报错,强烈建议创建一个 Python 虚拟环境来安装这些包,这样既安全又干净:
- 创建虚拟环境:
python3 -m venv ~/robotics_env - 激活虚拟环境:
(激活后,您的终端提示符前面会出现source ~/robotics_env/bin/activate(robotics_env)的标志) - 在虚拟环境中安装:
pip install pybullet meshcat -i https://pypi.tuna.tsinghua.edu.cn/simple
以后每次需要使用这两个库进行机器人仿真时,只需先激活这个虚拟环境即可。
🤖 关于 ROS 2 版本的重要提醒
我注意到您的终端提示符是 ros2@mobile:~$。如果您接下来打算在 Ubuntu 24.04 上安装 ROS 2,请务必注意:
Ubuntu 24.04 官方仅支持 ROS 2 Jazzy,不支持 ROS 2 Humble。
如果您强行尝试安装 Humble,会导致严重的 Python 版本冲突(24.04 默认 Python 3.12,而 Humble 基于 Python 3.10)和系统依赖损坏。
在 Ubuntu 24.04 中,确实没有针对 python3-pybullet 和 python3-meshcat 的 apt 安装方式。
这是因为 apt 安装的是由 Ubuntu 官方打包并维护的系统级软件,而这两个库属于 Python 第三方生态,官方源中并未收录它们。
不过,如果您出于系统规范或习惯,强烈希望使用 apt 命令来安装 Python 库,Ubuntu 提供了以下两种替代方案:
方案一:安装系统级 Python 库(使用 python3- 前缀)
对于部分被 Ubuntu 官方收录的 Python 库,apt 包名通常带有 python3- 前缀。您可以尝试运行以下命令:
sudo apt install python3-pybullet python3-meshcat
(注:正如我们之前测试的,这两个包在 24.04 源中不存在,所以此命令会报错。但对于像 numpy 这样的库,您可以使用 sudo apt install python3-numpy 来安装)
方案二:通过 APT 安装编译依赖,然后从源码编译
如果您希望这些库作为系统级组件存在,可以通过 apt 安装其底层依赖,然后手动编译安装。例如,PyBullet 依赖底层的 Bullet Physics SDK,您可以使用 apt 安装它:
sudo apt update
sudo apt install libbullet-dev build-essential cmake
安装底层依赖后,您依然需要通过 Python 源码或 pip 来编译生成对应的 Python 绑定。
💡 核心建议
对于机器人仿真(如 PyBullet、MeshCat)这类快速迭代的第三方库,最专业且最推荐的做法依然是使用 pip 或 conda。
Ubuntu 24.04 默认启用了 PEP 668 规范,严格限制了使用 apt 管理 Python 第三方库的行为,目的是为了防止第三方库的版本更新覆盖或破坏系统底层依赖。因此,强烈建议您使用之前提到的**虚拟环境(venv)**或 Conda 来管理这些仿真工具,这既符合现代 Linux 的开发规范,也能最大程度保证您系统的安全与稳定。
要不我帮你整理一份 Ubuntu 24.04 安装 ROS 2 Jazzy 的步骤?这是官方唯一支持的版本,装完就能直接用了。

这篇博客的核心是介绍一套针对工科(特别是机器人、自动化等专业)数理基础课程的**“实践化学习方案”**。它提倡用 Python 可视化仿真来替代传统的“机械刷题”,通过工程应用场景来理解抽象的数学和物理概念。
以下是根据博客内容为你整理的实践教程,旨在帮助你在 Ubuntu 系统上快速搭建环境并运行案例。
🎯 教程目标
通过运行 Python 代码,将高等数学、线性代数、概率论和大学物理中的抽象概念可视化,从而更直观地理解其工程应用本质。
🛠️ 第一步:准备实践环境
该方案基于 Ubuntu 系统(博客中使用的是 20.04 版本),你需要安装 Python3 及相关的科学计算库。
打开终端,执行以下命令来更新软件源并安装所有必要的依赖:
sudo apt update -y
sudo apt install python3 python3-pip -y
pip3 install numpy matplotlib scipy -i https://pypi.tuna.tsinghua.edu.cn/simple
python3和python3-pip:Python 解释器和包管理器。numpy:用于高效的数值计算。matplotlib:用于数据可视化绘图。scipy:用于科学计算。-i https://pypi.tuna.tsinghua.edu.cn/simple:使用清华大学的镜像源,可以显著加快下载速度。
💻 第二步:分学科实践案例
完成环境配置后,你可以依次尝试以下四个核心案例。每个案例都包含一个 Python 脚本,你只需将其保存为 .py 文件(例如 math_demo.py),然后在终端中通过 python3 文件名.py 命令运行即可。
1. 高等数学:极限与定积分可视化
这个案例将帮助你直观理解“重要极限”和“定积分的几何意义”。
# 高等数学|极限+定积分可视化
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"] = ["DejaVu Sans"] # 设置字体以支持中文显示
# --- 重要极限 sin(x)/x 可视化 ---
x1 = np.linspace(0.01, 5, 1000)
y1 = np.sin(x1) / x1
plt.figure(figsize=(12, 5))
plt.subplot(1, 2, 1)
plt.plot(x1, y1, "#1f77b4", linewidth=2)
plt.axhline(y=1, c="red", ls="--", label="极限=1")
plt.title("重要极限:sin(x)/x")
plt.grid(True)
plt.legend()
# --- 定积分几何意义仿真 ---
x2 = np.linspace(0, 3, 100)
y2 = x2**2
plt.subplot(1, 2, 2)
plt.plot(x2, y2, "#2ca02c")
plt.fill_between(x2, y2, alpha=0.3, color="#2ca02c")
plt.title("定积分 = 曲线下面积")
plt.grid(True)
plt.tight_layout()
plt.show()
2. 线性代数:矩阵运算与坐标旋转
这个案例通过模拟机器人或视觉中的坐标变换,来理解矩阵乘法和线性变换的实际意义。
# 线性代数|矩阵运算+坐标旋转变换
import numpy as np
# --- 基础矩阵运算 ---
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
print("===== 矩阵加法 =====")
print(A + B)
print("\n===== 矩阵乘法(控制/机器人核心)=====")
print(A @ B)
# --- 二维坐标旋转变换(机械臂/视觉通用)---
theta = np.pi / 6 # 旋转30度
R = np.array([
[np.cos(theta), -np.sin(theta)],
[np.sin(theta), np.cos(theta)]
])
origin_point = np.array([2, 0])
new_point = R @ origin_point
print("\n===== 坐标旋转变换 =====")
print("原坐标:", origin_point)
print("旋转后坐标:", np.round(new_point, 3))
3. 概率论:高斯分布与传感器噪声仿真
这个案例模拟了机器人传感器(如IMU)的测量误差,帮助你理解正态分布(高斯分布)在数据处理中的应用。
# 概率论|高斯分布/传感器噪声仿真
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"] = ["DejaVu Sans"]
np.random.seed(2026) # 设置随机种子,保证结果可复现
# 模拟工业传感器、芯片信号、检测数据噪声
data = np.random.normal(loc=0, scale=0.6, size=1500)
plt.figure(figsize=(8, 5))
plt.hist(data, bins=30, alpha=0.7, color="#ff7f0e", edgecolor="black")
plt.title("正态分布|传感器误差仿真")
plt.xlabel("误差数值")
plt.ylabel("出现频次")
plt.grid(True, alpha=0.3)
plt.show()
4. 大学物理:匀变速运动学仿真
这个案例通过绘制位移-时间和速度-时间曲线,来理解基本的运动学公式在机器人或设备控制中的应用。
# 大学物理|运动学仿真
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"] = ["DejaVu Sans"]
# 匀变速运动公式 机器人/新能源设备通用
t = np.linspace(0, 12, 100)
v0 = 1.5 # 初速度
a = 1.2 # 加速度
s = v0 * t + 0.5 * a * t**2 # 位移公式
v = v0 + a * t # 速度公式
plt.figure(figsize=(12, 5))
plt.subplot(1, 2, 1)
plt.plot(t, s, "g", linewidth=2)
plt.title("位移-时间曲线")
plt.grid(True)
plt.subplot(1, 2, 2)
plt.plot(t, v, "purple", linewidth=2)
plt.title("速度-时间曲线")
plt.grid(True)
plt.tight_layout()
plt.show()
这篇博客的核心是介绍一套针对工科(特别是机器人、自动化等专业)数理基础课程的**“实践化学习方案”**。它提倡用 Python 可视化仿真来替代传统的“机械刷题”,通过工程应用场景来理解抽象的数学和物理概念。
以下是根据博客内容为你整理的实践教程,旨在帮助你在 Ubuntu 系统上快速搭建环境并运行案例。
🎯 教程目标
通过运行 Python 代码,将高等数学、线性代数、概率论和大学物理中的抽象概念可视化,从而更直观地理解其工程应用本质。
🛠️ 第一步:准备实践环境
该方案基于 Ubuntu 系统(博客中使用的是 20.04 版本),你需要安装 Python3 及相关的科学计算库。
打开终端,执行以下命令来更新软件源并安装所有必要的依赖:
sudo apt update -y
sudo apt install python3 python3-pip -y
pip3 install numpy matplotlib scipy -i https://pypi.tuna.tsinghua.edu.cn/simple
python3和python3-pip:Python 解释器和包管理器。numpy:用于高效的数值计算。matplotlib:用于数据可视化绘图。scipy:用于科学计算。-i https://pypi.tuna.tsinghua.edu.cn/simple:使用清华大学的镜像源,可以显著加快下载速度。
💻 第二步:分学科实践案例
完成环境配置后,你可以依次尝试以下四个核心案例。每个案例都包含一个 Python 脚本,你只需将其保存为 .py 文件(例如 math_demo.py),然后在终端中通过 python3 文件名.py 命令运行即可。
1. 高等数学:极限与定积分可视化
这个案例将帮助你直观理解“重要极限”和“定积分的几何意义”。
# 高等数学|极限+定积分可视化
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"] = ["DejaVu Sans"] # 设置字体以支持中文显示
# --- 重要极限 sin(x)/x 可视化 ---
x1 = np.linspace(0.01, 5, 1000)
y1 = np.sin(x1) / x1
plt.figure(figsize=(12, 5))
plt.subplot(1, 2, 1)
plt.plot(x1, y1, "#1f77b4", linewidth=2)
plt.axhline(y=1, c="red", ls="--", label="极限=1")
plt.title("重要极限:sin(x)/x")
plt.grid(True)
plt.legend()
# --- 定积分几何意义仿真 ---
x2 = np.linspace(0, 3, 100)
y2 = x2**2
plt.subplot(1, 2, 2)
plt.plot(x2, y2, "#2ca02c")
plt.fill_between(x2, y2, alpha=0.3, color="#2ca02c")
plt.title("定积分 = 曲线下面积")
plt.grid(True)
plt.tight_layout()
plt.show()
2. 线性代数:矩阵运算与坐标旋转
这个案例通过模拟机器人或视觉中的坐标变换,来理解矩阵乘法和线性变换的实际意义。
# 线性代数|矩阵运算+坐标旋转变换
import numpy as np
# --- 基础矩阵运算 ---
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
print("===== 矩阵加法 =====")
print(A + B)
print("\n===== 矩阵乘法(控制/机器人核心)=====")
print(A @ B)
# --- 二维坐标旋转变换(机械臂/视觉通用)---
theta = np.pi / 6 # 旋转30度
R = np.array([
[np.cos(theta), -np.sin(theta)],
[np.sin(theta), np.cos(theta)]
])
origin_point = np.array([2, 0])
new_point = R @ origin_point
print("\n===== 坐标旋转变换 =====")
print("原坐标:", origin_point)
print("旋转后坐标:", np.round(new_point, 3))
3. 概率论:高斯分布与传感器噪声仿真
这个案例模拟了机器人传感器(如IMU)的测量误差,帮助你理解正态分布(高斯分布)在数据处理中的应用。
# 概率论|高斯分布/传感器噪声仿真
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"] = ["DejaVu Sans"]
np.random.seed(2026) # 设置随机种子,保证结果可复现
# 模拟工业传感器、芯片信号、检测数据噪声
data = np.random.normal(loc=0, scale=0.6, size=1500)
plt.figure(figsize=(8, 5))
plt.hist(data, bins=30, alpha=0.7, color="#ff7f0e", edgecolor="black")
plt.title("正态分布|传感器误差仿真")
plt.xlabel("误差数值")
plt.ylabel("出现频次")
plt.grid(True, alpha=0.3)
plt.show()
4. 大学物理:匀变速运动学仿真
这个案例通过绘制位移-时间和速度-时间曲线,来理解基本的运动学公式在机器人或设备控制中的应用。
# 大学物理|运动学仿真
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"] = ["DejaVu Sans"]
# 匀变速运动公式 机器人/新能源设备通用
t = np.linspace(0, 12, 100)
v0 = 1.5 # 初速度
a = 1.2 # 加速度
s = v0 * t + 0.5 * a * t**2 # 位移公式
v = v0 + a * t # 速度公式
plt.figure(figsize=(12, 5))
plt.subplot(1, 2, 1)
plt.plot(t, s, "g", linewidth=2)
plt.title("位移-时间曲线")
plt.grid(True)
plt.subplot(1, 2, 2)
plt.plot(t, v, "purple", linewidth=2)
plt.title("速度-时间曲线")
plt.grid(True)
plt.tight_layout()
plt.show()
本文针对Ubuntu 24.04系统环境配置问题,提供了一套完整的解决方案,重点解决新系统安全机制导致的pip安装限制和部分软件包缺失问题。核心内容包括:1. 系统软件一键安装命令,涵盖Python基础工具、CAD软件和科学计算库;2. FreeCAD通过PPA安装的详细步骤;3. Python第三方库强制安装方法;4. 针对机器人工程专业推荐的补充软件清单。特别强调了Ubuntu 24.04特有的PEP668安全规范,建议使用虚拟环境管理Python包。文章还提供了安装验证方法和ROS2版本适配提醒,确保用户能顺利完成开发环境搭建。
2018

被折叠的 条评论
为什么被折叠?



