soft-robot/README.md
2026-01-14 15:42:35 +08:00

43 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Soft Arm Sim - ROS 2 柔性机械臂仿真平台
这是一个基于 ROS 2 (Humble) 开发的柔性机械臂Soft Manipulator仿真系统。
项目实现了基于 **常曲率PCC** 假设的运动学模型,并解决了软体机器人在 Rviz 中常见的 **视觉同步延迟问题**,实现了高帧率、无滞后的动态仿真。
## 🤖 项目概况
- **机器人构型**3 段 PCC 串联结构。
- **物理参数**:总长 720mm (3段 x 240mm),每段包含 3 个圆盘Disk直径 80mm。
- **核心特性**
- **解耦架构**:数学模型 (Model)、可视化 (Base)、控制 (Control) 完全分离。
- **零延迟可视化**:采用 `MarkerArray` 技术同时渲染骨架与圆盘,彻底消除 TF 插值导致的时序不同步。
- **扩展性**预留了深度学习RL与硬件电机控制接口。
## 📂 文件结构说明
```text
src/
├── soft_arm_sim/
│ ├── config/ # [预留] 存放 .yaml 配置文件 (如机械臂尺寸参数)
│ ├── launch/
│ │ └── simulate.launch.py # [启动] 一键启动脚本,同时加载 Rviz、仿真节点和状态发布器
│ ├── resource/ # ROS 资源索引文件
│ ├── urdf/
│ │ └── soft_arm.urdf.xacro # [模型] 机器人的物理描述文件 (主要用于定义 base_link 关系)
│ ├── soft_arm_sim/ # === Python 核心源码包 ===
│ │ ├── __init__.py
│ │ ├── base/ # [可视化层]
│ │ │ ├── __init__.py
│ │ │ └── simulation_node.py # [核心节点] 负责:
│ │ │ # 1. 调用 Model 计算运动学
│ │ │ # 2. 发布 TF (用于后台坐标系维护)
│ │ │ # 3. 发布 MarkerArray (用于 Rviz 零延迟显示 Disk 和 轴线)
│ │ ├── control/ # [控制层]
│ │ │ ├── __init__.py
│ │ │ └── test_controller.py # [示例] 发送正弦波信号,测试机械臂蠕动效果
│ │ ├── deeplearning/ # [学习层] 预留给 Gym 环境或强化学习训练脚本
│ │ ├── model/ # [数学层]
│ │ │ ├── __init__.py
│ │ │ └── pcc_kinematics.py # [算法] 纯数学 PCC 正运动学解算,生成 Disk 变换矩阵和贝塞尔曲线点
│ ├── package.xml # ROS 包依赖描述
│ ├── setup.cfg # Python 脚本安装路径配置 (解决 libexec 报错)
│ └── setup.py # Python 包构建配置
└── startbash # [工具] 自定义启动脚本 (如果包含相关指令)