This repository documents our final project for the Fundamentals of Robotics (Spring 2025) course at Olin College. We developed a vision-guided trajectory planner for a boxing robot using a HiWonder 5-DOF arm. The system detects an ARUCO marker using a webcam, estimates its 5-DOF pose, transforms this into the robot's base frame, generates task-space waypoints around the marker, and uses inverse kinematics to execute a basic boxing motion.
🎥 Click to view the demo video
This repository contains:
- All Python code used to run our vision and motion pipeline on a Raspberry Pi 4B
- Instructions to connect and deploy code on the HiWonder robot platform
- Our technical report documenting system architecture, implementation, and insights
- Raspberry Pi 4B with RasAdapter V3.6
- SSH access to the Pi (use
ssh funrobot@funrobot#.local) - A connected camera module on
/dev/video0 - ARUCO marker placed in view
ssh funrobot@funrobot#.local
# Default password is: FunR0b0!python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txtsudo pigpiodsudo venv/bin/python main.pyMake sure the
main.pyscript points to the correct path for your Python virtual environment.
The system is composed of:
- Vision Module: Captures one frame, detects a 36h11 ARUCO marker, and computes the 5-DOF pose using camera intrinsics and distortion correction. Pose is transformed to robot base frame.
- Trajectory Planning: Generates task-space waypoints around the marker pose.
- Execution Loop: Uses an inverse kinematics solver to sequentially move the end-effector to each waypoint.
If you encounter errors accessing the camera, kill ROS processes:
rosnode kill -a
pkill -f roscore
pkill -f roslaunch
pkill -f rosmaster
pkill -f rosout

