Image-based visual servoing using circular markers as visual features.
This project implements Image-Based Visual Servoing (IBVS) using color-based circular markers as visual features. The system controls a camera's motion to align current visual features with desired target positions, enabling automated visual positioning and tracking.
- Open the scene
scenes/ibvs.tttin the CoppeliaSim simulator. - Install python dependencies:
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt- Run the simulation:
python src/main.pyThe system supports various feature transformations and control parameters:
--rotateor-r: Rotation angle in degrees (default: 0)--translate_uor-tu: Horizontal translation in pixels (default: 0)--translate_vor-tv: Vertical translation in pixels (default: 0)--scaleor-s: Scale factor for features (default: 1.0)--gainor-g: Control gain for IBVS (default: 0.1)--depthor-d: Depth of the features (default: 1.0)
Example:
python src/main.py --rotate 45 --scale 1.2 --gain 0.15The project includes a Makefile with several predefined transformations:
# Apply 45 degree rotation
make rotation
# Scale features by 1.5x
make scale
# Translate features horizontally and vertically
make translation
# Apply all transformations together
make allWhile the simulation is running:
- Press 'q' to exit the simulation
- The camera window shows both target (green) and current (red) features
