Soca

An autonomous ultraviolet-C germicidal irradiation robot. Built in simulated environment using ROS and Gazebo.

Date: Sep 2020 - Jul 2021
Role: Everything
Keywords: Autonomous, Mobile Robotics, Ultraviolet-C Germicidal Irradiation

  • Programming Languages: C++
  • Tools and Frameworks: ROS, Gazebo, Qt
  • Algorithms: AMCL, Google Cartographer, Octomap, RRT* Planner, Spanning Tree Coverage, Madgwick Filter, Pure Pursuit Controller

Surface irradiation simulation.

Soca is my undergraduate thesis, a solo project to develop an autonomy software for ultraviolet-C germicidal irradiation surface disinfection robots. Soca is designed to be modular and hardware agnostic. However, we use a simulated custom-built robot based on the TurtleBot3 platform that carries a 2D Lidar and a Magnetic, Angular Rate, and Gravity (MARG) sensor as our testing platform. To use this robot, the user can simply request the robot to disinfect a room by passing the room name to the robot.

To reduce the computation load, Soca does not perform SLAM, and instead uses a fixed map for its localization and navigation needs. The map is built beforehand using Google Cartographer. Soca uses the Augmented Monte Carlo Localization (AMCL) algorithm to localize itself with respect to the map. For its navigation needs, Soca uses the Rapidly Exploring Random Tree* (RRT*) algorithm as its path planner and the Spanning Tree Coverage (STC) algorithm as its coverage path planner.

The RRT* algorithm in action.

To reduce unnecessary complexities, we wrote our own C++ implementation of the localization and navigation stack, which includes the AMCL, RRT*, and STC algorithms. We wrote the program using the Robot Operating System (ROS) framework. To accompany the robot, we also wrote a graphical user interface for the user to give the robot commands using Qt.

Finally, we tested and evaluated Soca in a simulated environment. As ultraviolet surface irradiation is not traditionally supported in Gazebo, we developed our own method to simulate it, which is described in greater depth in this paper. We open-sourced our implementation of the simulation method, which you can access in this GitHub repository. The design process, implementation details, and disinfection performance evaluation are discussed in more detail in the paper of this project.

Soca autonomously disinfecting hospital rooms.