软件编程资源
Python 数值计算
- NumPy:向量、矩阵运算
- SciPy:优化、积分、信号处理
- Matplotlib:可视化
- SymPy:符号计算
- Pandas:数据分析
| |
C 数值计算
| |
其他
- C++:ROS 主力语言
- Java / Kotlin:Android 机器人控制
- HTML / JavaScript:Web 监控界面
- PHP / Python:后端
工具软件
矢量绘图
- Inkscape(免费开源)—— 推荐,画机械示意图
- Adobe Illustrator(商业)—— 设计稿
- Photoshop(商业)—— 位图
- Draw Freely:在线矢量图
3D 设计
- SolidWorks(商业)—— 机械设计行业标准
- CAXA(国产)—— 二维图纸
- Fusion 360(免费个人版)—— 入门级 CAD
- FreeCAD(开源)—— 替代 SolidWorks
仿真
- MATLAB / Simulink:控制算法、信号处理
- ANSYS:力学仿真(结构、流体)
- Adams:多体动力学
- Gazebo(ROS 集成):3D 物理仿真
- V-REP / CoppeliaSim:通用机器人仿真
- Webots:跨平台
- MuJoCo:强化学习物理仿真
操作系统
主机操作系统:Ubuntu
机器人主机首选 Ubuntu 22.04 LTS / 24.04 LTS(ROS 1/2 官方支持)。
机器人操作系统 ROS
ROS(Robot Operating System) 是开源的机器人中间件,提供:
- 通信(话题 / 服务 / 动作)
- 包管理
- 工具链(RViz、rqt、rosbag)
- 仿真(Gazebo)
| |
核心概念:
- Node:一个独立进程
- Topic:异步消息(pub/sub)
- Service:同步请求 / 响应
- Action:长任务 + 反馈
- Bag:录制与回放
| |
嵌入式 RTOS
机器人单片机上的实时操作系统:
| RTOS | 特点 |
|---|---|
| FreeRTOS | 开源、最流行、商用友好 |
| uCOS | 老牌、教材丰富(μC/OS-II/III) |
| VxWorks | 商业、航空航天用 |
| RT-Thread | 国产、开源 |
| Zephyr | Linux 基金会、开源 |
FreeRTOS 入门:
| |
硬件平台
嵌入式单板
- STM32:意法半导体,主流
- Arduino:开源、入门
- ESP32 / ESP8266:WiFi/BLE
- Raspberry Pi:Linux 单板机
- NVIDIA Jetson:GPU 加速 AI
- BeagleBone:工业级
STM32 入门
- 51 单片机:最老、入门
- AVR:Arduino 核心
- STM32:主流工业(f1 / f4 / h7 / g4 / u5 系列)
STM32 关键能力:
- 通用定时器(输出 PWM / 输入捕获)
- UART(串口通信)
- SPI / I2C(传感器通信)
- CAN(车载通信)
- USB / Ethernet
- ADC / DAC
常用传感器
- 陀螺仪 / 加速度计:MPU6050、LSM6DS
- 码盘:增量编码器
- 红外 / 超声波:避障
- LiDAR:RPLIDAR、Velodyne
- 相机:USB 相机、CSI 相机
- 深度相机:Intel RealSense、Azure Kinect、ZED
通信协议
| 协议 | 用途 |
|---|---|
| UART | 串口(最简单) |
| SPI | 高速外设(IMU、LCD) |
| I2C | 中速外设(EEPROM、传感器) |
| CAN | 汽车 / 工业 |
| USB | PC 通信 |
| Ethernet | 工业网络 |
| WiFi / BLE | 无线 |
| LoRa | 长距离低功耗 |
| RS485 | 工业总线 |
写作与排版
- LaTeX:学术写作黄金标准
- Markdown:技术博客、README
- Inkscape:矢量图
- draw.io:流程图、架构图
- Mermaid:Markdown 图表
常用开发板
| 板子 | 价位 | 用途 |
|---|---|---|
| Arduino Uno | 100 | 入门 |
| Arduino Mega | 200 | 多 IO |
| STM32F103C8T6 | 30 | 工业入门 |
| ESP32 | 50 | WiFi/BLE |
| Raspberry Pi 4 | 400 | Linux SBC |
| Raspberry Pi Pico | 50 | RP2040 双核 |
| Jetson Nano | 1500 | 边缘 AI |
| Jetson Orin | 5000+ | 高级 AI |
| NUC | 3000+ | 高性能 |
工具链
编译 / 构建
- CMake:跨平台构建
- catkin / colcon:ROS 构建
- Make / Ninja:Linux 经典
- PlatformIO:嵌入式跨平台
调试
- GDB:命令行调试
- VSCode + 插件:图形化调试
- OpenOCD / J-Link:JTAG 调试
- 串口助手:PuTTY、minicom、MobaXterm
版本控制
- Git:必备
- Git LFS:大文件
- DVC:数据版本控制
在线学习资源
课程
- Coursera:Robotics Specialization (UPenn)
- edX:MIT 6.832 机器人运动学
- 中国大学 MOOC:机器人学(中南大学)
- Bilibili(中文免费):ROS 教程、古月居
- Udacity:Self-Driving Car Nanodegree
社区
- ROS Discourse:https://discourse.ros.org/
- ROS Answers:https://answers.ros.org/
- GitHub Awesome Robotics:https://github.com/jslee02/awesome-robotics
- 古月居(中文):https://www.guyuehome.com/
- ROSClub(中文)
- 知乎机器人话题
论文 / 文献
- arXiv Robotics:https://arxiv.org/list/cs.RO/recent
- IEEE Robotics and Automation
- ICRA / IROS / RSS:顶会
实践项目路径
Level 1:单片机基础
- Arduino 流水灯
- STM32 GPIO / 定时器
- UART 串口通信
- PWM 控制舵机
- I2C 读 MPU6050
Level 2:移动机器人
- 4 轮小车驱动
- 编码器测速
- PID 巡线
- IMU 姿态估计
- ROS 集成
Level 3:自主导航
- SLAM 建图(gmapping / cartographer)
- 路径规划(move_base / nav2)
- 自主避障
- 多传感器融合(激光 + 视觉)
- ROS2 迁移
Level 4:机械臂 / 无人机
- 机械臂 DH 参数建模
- 正逆运动学
- MoveIt 运动规划
- 视觉抓取
- 多机协同
2017 vs 2024 视角:工具链 & STM32 库版本
本文写于 2017 年(ROS Kinetic、STM32 HAL 刚发布、FreeRTOS 还是 Richard Barry 一个人在维护)。7 年后(2024)回望,机器人开发栈已经发生显著变化。下面是当前可用的版本与替代方案。
1. ROS / ROS 2 版本对照(2024)
| 版本 | 时间 | 状态(2024+) | 配套 Ubuntu |
|---|---|---|---|
| ROS Kinetic | 2016-2021 | 已 EOL | Ubuntu 16.04 |
| ROS Melodic | 2018-2023 | 已 EOL | Ubuntu 18.04 |
| ROS Noetic | 2020-2025-05 | 即将 EOL(最后 ROS 1 LTS) | Ubuntu 20.04 |
| ROS 2 Humble | 2022-2027-05 | 当前推荐 LTS | Ubuntu 22.04 |
| ROS 2 Jazzy | 2024-2029-05 | 2024 新 LTS | Ubuntu 24.04 |
2024+ 新项目必须用 ROS 2 Humble 或 Jazzy。ROS 1 Noetic 还有 1 年寿命,不要再开新坑。
2. STM32 库版本(2024 视角)
本文 2017 写时 STM32 HAL 还很新。今天的状态:
| 库 | 2017 状态 | 2024 状态 | 选哪个 |
|---|---|---|---|
| 标准外设库(StdPeriph) | 主流 | 2017 已 ST 官方弃用 | ❌ 不要再用 |
| HAL | 刚发布 | 当前主流,覆盖全系列 | ✅ 大多数项目 |
| LL(Low-Layer) | 刚发布 | 性能敏感场景首选 | ✅ 电机控制、高速 ADC |
| CMSIS Driver | 雏形 | 统一驱动接口,可移植性强 | ✅ 跨平台项目 |
| TouchGFX | 收购 | ST 官方 GUI 框架 | ✅ STM32H7 带屏项目 |
| STM32CubeIDE | 收购 Atollic | ST 官方 IDE(替代 TrueSTUDIO) | ✅ 替代 Eclipse 工程 |
实战建议(2024):
- 新项目:CubeMX 生成 HAL 工程,IDE 用 STM32CubeIDE(免费)
- 性能关键路径:用 LL(Low-Layer)替代 HAL(开销小 10~30 倍)
- 电机控制 / 电源:用 HAL + LL 混编(启动用 HAL,高频中断用 LL)
- GUI:TouchGFX(替代 emWin)+ LTDC 控制器
ST 主流 MCU 系列(2024 现状):
| 系列 | 性能 | 典型应用 |
|---|---|---|
| STM32F0 / G0 | 入门 | GPIO、UART、简单控制 |
| STM32F1 / F3 | 经典 | 工业控制、电机驱动 |
| STM32F4 / H7 | 高性能 | 图像处理、复杂算法 |
| STM32G4 | 电机控制专用 | 数字电源、BLDC/PMSM |
| STM32H5 / H7 | 高安全 / 高速 | 汽车、工业网关 |
| STM32U5 | 超低功耗 | IoT、电池设备 |
| STM32MP1 | Cortex-A7 + M4 双核 | Linux + RTOS 协同 |
| STM32N6 | 2024 新品,NPU 加速 | 边缘 AI 推理 |
3. FreeRTOS 现状(2024)
- FreeRTOS 仍由 Amazon 维护(2017 年被 AWS 收购后持续投入)
- FreeRTOS Kernel V10 / V11:现代 API,支持 SMP(多核对称)
- FreeRTOS + TCP:自带 TCP/IP 协议栈(替代 lwIP 的轻量场景)
- Zephyr(Linux 基金会):FreeRTOS 的强劲对手,2024 设备数已经超过 FreeRTOS
- NuttX:POSIX 兼容,PX4 / Sony Spresense 用它
- RT-Thread(国产):国内嵌入式 RTOS 事实标准
选择建议:
- 单芯片低功耗 → FreeRTOS(成熟 + 文档多)
- 复杂产品 + 多协议 → Zephyr(蓝牙 / LoRa / CAN 全栈)
- 国产化 / 国内项目 → RT-Thread(本土生态、中文文档)
- 飞控 / 无人机 → PX4 + NuttX
4. ESP32 现状(2024)
- ESP32-S3(2022):Xtensa LX7 双核 + AI 加速,主力
- ESP32-C3(2020):RISC-V 单核,WiFi + BLE5
- ESP32-C6(2023):WiFi 6 + BLE5 + 802.15.4(Thread/Zigbee)
- ESP32-H2(2023):802.15.4 + BLE5,专攻 Thread/Zigbee
- ESP32-P4(2024 预告):高性能双核 RISC-V
- ESP-IDF 5.x(2024):基于 CMake + Ninja + idf.py,告别老旧 make
- Matter 协议(CSA 联盟):智能家居统一标准,ESP32 全系支持
5. AI 训练 / 推理框架
| 用途 | 2017 主流 | 2024 主流 |
|---|---|---|
| 深度学习框架 | Caffe / TensorFlow 1.x / PyTorch 0.1 | PyTorch 2.x(事实标准) / JAX(Google) / TensorFlow 2.x(衰退) |
| 强化学习 | TensorFlow + OpenAI Gym | Stable-Baselines3 / RLlib / Isaac Gym(NVIDIA) |
| 边缘推理 | TensorFlow Lite(刚发布) | TensorRT / ONNX Runtime / TVM / OpenVINO |
| 机器人策略 | ROS + 传统控制 | Octo / OpenVLA / π0 等具身基础模型 |
6. 中国机器人大赛现状(2024)
- 原"全国大学生机器人大赛 Robocon"和"RoboMaster"仍然活跃
- RoboMaster 2024(机甲大师赛):由大疆赞助,参赛队伍 300+ 高校
- RoboMaster 2024 高中组:新增高中组
- ICRA / IROS / RSS:仍是机器人顶会
- 国内新赛事:中国机器人及人工智能大赛、全国大学生智能车竞赛
7. 2024 学习路径建议
- 基础:C / C++ / Python + ROS 2(Humble/Jazzy)
- 嵌入式:STM32CubeMX + HAL/LL(替代老旧 StdPeriph)
- 感知:OpenCV 4.x + PCL + ORB-SLAM3
- 控制:ROS 2 Control + ros2_control + MoveIt 2
- AI 入门:PyTorch 2.x + Hugging Face Transformers
- 前沿:Octo / OpenVLA 具身基础模型 + Isaac Sim
8. 一句话总结
2017 年是 ROS Kinetic + StdPeriph + Caffe + 传统 PID 的时代; 2024 年是 ROS 2 Jazzy + HAL/LL + PyTorch + 具身基础模型 + 国产硬件白菜价 的时代。
入门门槛没变(数学 + 编程 + 动手),但工具栈完全换代了。
下一步
- 机器人核心技术与学习路径,看 2015-11-15《机器人核心技术与学习路径》
- 嵌入式开发,看对应 STM32 HAL / FreeRTOS 教程(注意:已从 StdPeriph 升级到 HAL/LL)
- ROS 2 实战,看 ROS 2 Humble 官方教程
参考资料
- ROS 官方:https://www.ros.org/
- ROS 2 Jazzy 官方:https://docs.ros.org/en/jazzy/
- STM32 HAL 文档:https://www.st.com/en/embedded-software/stm32cube-mcu-mpu-packages.html
- FreeRTOS 官方:https://www.freertos.org/
- Zephyr 官方:https://zephyrproject.org/
- RT-Thread 官方:https://www.rt-thread.org/
- NumPy 官方:https://numpy.org/
- OpenCV 官方:https://opencv.org/
- PyTorch 官方:https://pytorch.org/
- Awesome Robotics:https://github.com/jslee02/awesome-robotics
