← Back to portfolio

Robotics Project

Autonomous “Shopping” Robot

An autonomous mobile robot developed on the PenguinPi platform capable of mapping an environment, avoiding ArUco markers, and retrieving fruit objects from a predefined shopping list using computer vision and path planning.

Robotics Python ROS2 Gazebo SLAM Computer Vision Path Planning
PenguinPi robot

Overview

The objective of this project was to develop an autonomous mobile robot capable of navigating a structured environment, avoiding ArUco markers, and retrieving fruit items from a predefined shopping list. The project was built using the PenguinPi robotics platform.

The base PenguinPi system initially supported only low-level motion commands such as forward, left, and right movement. All higher-level autonomous behaviour, including perception, mapping, and navigation, was developed by our team.

SLAM was implemented to enable simultaneous localisation and mapping, allowing the robot to construct and navigate a representation of its environment. Classical computer vision techniques were used for ArUco marker detection and pose estimation, while a machine learning classifier was developed to identify and differentiate fruit objects within the environment.

I contributed to modelling the robot’s kinematics to support control integration and implemented A* path planning for global obstacle-aware navigation. The system was validated through both simulation and real-world testing using ROS2 and Gazebo, successfully demonstrating autonomous navigation, mapping, and targeted object retrieval.

Gallery

Key Aspects of the Project

SLAM Mapping

Implemented SLAM to enable simultaneous mapping and localisation, allowing the robot to construct and navigate a representation of the environment.

Computer Vision

Classical computer vision techniques were used to detect ArUco markers for localisation and environmental perception.

Fruit Recognition

A machine learning classifier was developed to identify and distinguish fruit objects required by the robot’s shopping list task.

Path Planning

Implemented A* path planning to compute global navigation routes while avoiding obstacles and ArUco markers within the mapped environment.

Technical Skills

Python Robotics Development SLAM Autonomous Navigation A* Path Planning Computer Vision ArUco Detection Machine Learning Classification Robot Kinematics ROS2 Gazebo Simulation