Linas Kondrackis
  • Portfolio

Click on the images to enlarge.

Strategically navigating a fixed arena with a Khepera II

Robotics • Localization • Python • Numpy

For this task, we were given a Khepera II robot, that uses infrared proximity sensors to sense the environment. We were tasked with developing various algorithms for the robot, so that it could perform desired actions within an arena:

  • Task 1: The robot must navigate the arena without collisions, follow long walls and not get stuck in corners or dead ends.
  • Task 2: Implement odometry for the robot so it could return to the starting location after navigating the enclosure.
  • Task 3: Implement a navigation algorithm to look for “food pellets” in the arena and bring them to the starting location. The goal is to gather as many as possible in 5 minutes. Food pellets respawn in their source locations when dropped in the robot’s nest.

During the course of this course we have developed, tested and re-developed a large range of solutions.

  • We turned the regression problem of finding distances from raw sensor values into a classification problem by developing an auto-calibration method that robot performs before the run.
  • A subsumptive architecture with exploration, obstacle avoidance and control layers allowed the robot to successfully function in a stochastic, partially observable environment.
  • Particle Filter localization was attempted to be used, yet due to noisy sensor input and sensor value discretization, the system did not provide accurate results. The accuracy could have been improved given more processing power, as even with the fully vectorized solution, the computation time with many particles was prohibitively expensive.
  • Odometry was implemented and calibrated such that the drift remained low if no collisions were made.
  • Obstacle mapping and A*-based navigation was tested. Due to sensor noise a reliable map could not be built.
  • Ultimately, Bug 0 algorithm was chosen for navigation, by which the robot attempts to reach a given location while going around objects if any are encountered.

In the end it was the simplicity of reactive approach to navigation that let us achieve the most consistent and reliable results.

Reports for all 3 tasks: Google Drive

Code repository: GitLab



  • Category: Projects
  • Date: September 2016 - November 2016
  • Collaborators: Ramsey El-Naggar

Final map of the arena, used for Task 3. Nest is the official starting locations of the robot that it starts from (any orientation) and points are locations with 'food'. Robot needed to find food locations and bring the pellet to the nest. Pickup and dropping of the pellets were signaled by the arbiter with the press of the space bar.

The Khepera II robot from up close. The black patches on the front and sides are the IR sensors.

Sketch of IR sensors placement on the Khepera II robot.

Flowchart depicting different components of our system for controlling the robot.

Snapshot of Khepera navigating the arena.

Experiments of particle filter-based navigation. As soon as the map layout was fixed (Task 3), we created a map of the arena, so the particle filter localization could be used.