# Log

## 2026.2.5

- pcc_kinematics.py 中的数学公式用 PyTorch 张量重写，确保梯度可以从 Cartesian 坐标反向传播回 Joint 角度；
`src/soft_arm_sim/soft_arm_sim/deeplearning/differentiable_pcc.py`

## 解决 deeplearning 文件夹混乱的问题，按照功能模块进行拆分

```bash
src/soft_arm_sim/soft_arm_sim/deeplearning/
├── __init__.py
├── checkpoints/                # [存储] 存放训练好的 .pth 模型权重
│   └── .gitkeep
├── data/                       # [数据] 数据生成器 (PINN 主要是随机采样，但也可能需要验证集)
│   ├── __init__.py
│   └── workspace_sampler.py    # 用于在机械臂工作空间内随机采样目标点
├── layers/                     # [物理层] 这里存放可微的运动学公式 (PINN的核心)
│   ├── __init__.py
│   └── differentiable_pcc.py   # == 核心：PyTorch 版的 PCC 正运动学 ==
├── models/                     # [网络] 神经网络架构定义
│   ├── __init__.py
│   └── mlp_network.py          # 简单的全连接网络
├── training/                   # [训练] 训练脚本
│   ├── __init__.py
│   └── train_pinn_basic.py     # PINN 训练主脚本
└── inference/                  # [推理] ROS 接口相关
    ├── __init__.py
    └── inference_node.py       # 加载模型并控制机器人的 ROS 节点
```

```bash
# 运行PINN训练文件
cd src/soft_arm_sim/soft_arm_sim/deeplearning/training
export PYTHONPATH=$PYTHONPATH:$(pwd)/src/soft_arm_sim
python3 -m soft_arm_sim.deeplearning.training.train_pinn_basic
```
