Traditional IBVS controllers rely purely on visual feature errors to compute velocity commands. While effective in ideal conditions, they are sensitive to camera calibration errors, kinematic singularities, and scene clutter. This project augments the classical pipeline with a residual RL agent (PPO) that learns a multiplicative correction to IBVS commands purely from interaction, without replacing the interpretable baseline controller.
An eye-in-hand camera detects visual feature points. The controller computes a Jacobian-based velocity command to minimize pixel-space error between current and target feature positions.
A PPO agent observes a 23-dimensional state (visual error, depth, joint state, IBVS command) and outputs a 6-dim residual coefficient. The final command blends both signals.
The reward encourages accurate tracking while penalizing energy waste and target loss, pushing the residual agent to complement โ not override โ the classical controller.
Averaged over 100 episodes in PyBullet simulation.
| Parameter | Value | Description |
|---|---|---|
CAMERA_WIDTH/HEIGHT | 512 px | Image resolution |
CAMERA_FOV | 120ยฐ | Camera field of view |
NUM_TARGETS | 5 | Random targets per episode |
MAX_ITERATIONS | 100 | Max steps per episode |
CONVERGENCE_THRESHOLD | 3 px | Success threshold |
OBS_DIM | 23 | Observation space dimension |
ACT_DIM | 6 | Action space dimension |