Inventory Management-Automated Guided Vehicle(AGV)

Project information

  • Project Title: Manfred AGV
  • Skills: Robotics Software and Control, AI/ML
  • Colloborations: Sairam Polina, Sanchit Ahuja
  • Project URL: [GITHUB]

Project Description

In this project, I developed an Automated Guided Vehicle (AGV) system for inventory management in a warehouse environment. The AGV, named Manfred, moved objects from one location to another after the user inputted the pickup and drop location. Manfred was equipped with a manipulator arm that picked up and dropped off packages using computer vision and SVM techniques. Manfred also navigated in a dynamic environment using SLAM techniques, Movelt motion planning, and Google Cartographer mapping.

The main goal of this project was to reduce the human hours required for logistics in the warehouse and to facilitate the development of future products by using modular and reusable components. The project followed an Agile Iterative Development Process and Test-Driven Development using various tools and technologies such as ROS2, Gazebo, Rviz, CMake, OpenCV, GitHubCI, Codecov, Makefile, CMake, cpplint, cppcheck, clangd, Valgrind, GTest, VScode.

The project consisted of four modules that were responsible for different aspects of the product: Communication Module, Navigation Module, Perception Module, and Manipulator Planning and Control Module. Each module had its own requirements, design decisions, implementation details, test cases, and challenges.

The project team consisted of three graduate students at The University of Maryland, College Park. The team members each had a bachelor’s degree in Mechanical Engineering from prestigious universities in India and were pursuing a career in Robotics with different specializations.

The project timeline was estimated to be 12 weeks, with three phases of four weeks each. Each phase had its own deliverables such as UML diagrams, Github repository with README, Testing Suites, GithubCI setup with code coverage using Codecov, Doxygen Documentation, Quad Chart, Developer-level documentation.

This project demonstrates my skills in:

  • Robotics: Designing, developing, testing, and debugging robot software applications using ROS2, Gazebo, Rviz, SLAM, Movelt, Google Cartographer, and a manipulator arm.
  • Computer vision: Applying computer vision techniques such as image processing, feature extraction, object detection, classification, and localization using OpenCV and SVM.
  • Motion planning: Implementing motion planning algorithms for path planning, collision avoidance, trajectory generation, and motion control using Movelt and ROS2.
  • GUI development: Creating user-friendly graphical user interfaces for specifying inputs and displaying outputs using Qt Creator and ROS2.
  • Software engineering: Applying software engineering principles such as Agile Iterative Process, Test Driven Development, OOP, Git Version Control Workflow, GithubCI, Codecov, Doxygen Documentation, and UML diagrams to ensure robust software development and code delivery automation.