Material Handler Robot

The final build of the Material Handler Robot

Project Summary

I led a team to create the Material Handler Robot, a Senior Design Project sponsored by FPL. The goal of this project was to create an autonomous inventory-tracking warehouse robot.

Project Videos

I recorded, edited, and narrated over the following videos that demonstrate the key features of the Material Handler Robot. The robot looks different than the final build because these videos were taken as the project was being developed.

Creating a Map in Unknown Environment

Navigation with Path Planning and Obstacle Avoidance

BLE Beacon Scanning and Detection

Shelf Scanning for Inventory Tracking and Database Logging

The following videos were taken during the early stages of the project. Before attempting to implement ROS on the robot chassis with mecanum wheels, I created a smaller robot to test the ROS functionality. I did this to first become familiar with ROS before moving onto the bigger robot.

My Contribution to the Project

Team Leader

Since the beginning of the project, I felt it was necessary to research the subject of autonomous robots to get a better idea of how to create one. Because the team had not built an autonomous robot in the past, more information was needed on the subject. I had some prior experience on robotics and was able to steer the team into the right direction. My team leader accomplishments are:

  • Delivered periodic project reports to FPL representative via video conference to inform them of the latest accomplishments. I would prepare PowerPoint and edited videos to clearly explain what was accomplished.

  • From an early stage of the project, made decisions over long-term factors of the project such as developing of the Arduino platform, using ROS, and selecting the necessary sensors based on their well-detailed documentation.

  • Hosted workshops to bring the team up to speed with the necessary programming architecture needed to work on the robot.

  • Researched and developed a list of materials for the project while staying well under the budget limits.

Software Development

Through my research, it was my decision to select ROS as the programming environment for the robot. This was due to the large community backing and open source nature of ROS. As head of the software development portion of the project, my accomplishments were:

  • Deploying ROS navigation stack onto the Material Handler Robot to being to perform simultaneous localization and mapping as well as navigation.

  • Wrote computer vision Python scripts to detect Aruco markers via a webcam video stream and send that information to other ROS nodes. Wrote Python Bluetooth Low Energy scanning scripts to detect nearby BLE beacons hidden within packages.

  • Programmed the Arduino Mega microcontroller to accept motor commands from the Jetson Xavier computer and delegate commands to the Roboclaw motor drivers.
  • Wrote scripts using SMACH, a task-level architecture ROS package, that allowed the Material Handler Robot to perform a series of tasks.

Hardware Development

Making all the necessary connections and ensuring the circuitry was correct was an important part of the project. I handled the all the development for the robot’s circuitry to ensure the robot was able to performs its tasks efficiently. My hardware accomplishments for the robot are:

  • Testing and debugging wiring connections during the software development process to ensure that any potential issues were eliminated.

  • Selecting and implementing the appropriate voltage converter to receive power from the rechargeable batteries and supplying the Jetson Xavier with a voltage that it was able to handle.

  • Cut, spliced, crimped, and soldered wires to make secure and reliable connections between the Arduino Mega microcontroller and the Roboclaw motor driver pins.

  • Implemented fuses between batteries and sensitive components to ensure the safety of the hardware.

  • 3D printed and designed some parts to be used during the prototyping stages and in the final build.