This repository implements a learning framework for planar reaching movements using Difference Target Propagation (DTP). The implementation includes both forward kinematics for a 2-joint planar arm and a DTP network for learning reaching movements.
The project consists of two main components:
-
Planar Arm Kinematics: A 2-joint robotic arm model with:
- Forward kinematics for end-effector positioning
- Inverse kinematics for joint angle calculation
- Workspace constraints and joint limits
-
Difference Target Propagation Network: A neural network that learns to generate reaching movements with:
- Direct DTP
- Feedback weight learning through local target computation
- Feedforward weight through DRL
esyniawa-dtp-planar_reaching/
├── LICENSE # MIT License
├── environment.py # Environment setup and data handling
├── main.py # Training script and network creation (example)
├── kinematics/
│ ├── planar_arms.py # Planar arm implementation
│ └── utils.py # Kinematics utilities
└── network/
├── dtp_networks.py # DDTP networks implementation
└── layers.py # Feedforward and feedback layer definitions
- Two-joint arm with shoulder and elbow
- Configurable link lengths and joint limits
- Support for both left and right arm configurations
- Customizable layer architecture
- Forward and feedback weight optimization
- Local target computation for each layer
- MSE-based reconstruction loss
- Built-in support for batch processing
- PyTorch
- Matplotlib
- tqdm
- pandas
This project is licensed under the MIT License - see the LICENSE file for details.
Based on research in target propagation and biological learning mechanisms, particularly:
- Lee et al. (2015) "Difference Target Propagation"
- Meulemans et al. (2020) "A Theoretical Framework for Target Propagation"