Skip to content

Latest commit

 

History

History
37 lines (28 loc) · 2.21 KB

OLD_README.md

File metadata and controls

37 lines (28 loc) · 2.21 KB

ROS Autonomous Mobile Robot Project

A research project for developing an autonomous differential drive mobile robot using ROS and the ROS navigation stack. See the research folder for notes about the project as I am researching and learning differential drive robots.

Version 2 Goals [In Progress]

  • Design a CAD model for a differential drive AGV with a 3D printed chassis
  • Install Ubuntu and ROS Noetic on a SBC (Orange Pi 5)
  • Create a ROS Package for the AGV
  • Create URDF (Unified Robot Description Format) and xacro files
  • Setup Simulation Environment with Gazebo
  • Create Program for Embedded Microcontroller for Motor Control
  • Publish Measured Wheel Velocities to ROS from Microcontroller
  • Setup ROS Control
  • Setup Hardware Interface to handle communication between microcontroller and ROS (using ROSSerial)
  • Setup and Test diff_drive_controller. Tune PID values for wheel velocity control
  • Create a teleop package for manual control of the robot using keyboard or joystick
  • Setup RPLidar A1M8 Sensor Interface
  • Create package for SLAM (Simultaneous Localization and Mapping) with slam_toolbox
  • Generate a map of the environment using SLAM
  • Integrate Robot Localization Package with IMU and Odometry
  • Setup Navigation Stack with AMCL (Adaptive Monte Carlo Localization) and move_base
  • Create Flask app to remotely control and monitor the robot

Latest Progress 7/25/23

Generated a SLAM map of my basement using the graph-based SLAM algorithm from the slam_toolbox package. The map was generated using the RPLidar A1M8 sensor with a resolution of 0.3. Had some troubles getting asynchronous online SLAM to generate the map properly over my local network. As a result, I switched to Synchronous online SLAM and that seemed to resolve the issue.

Here is a Video demo of using slam_toolbox to generate a map of my basement with Synchronous Online SLAM.

Future Endevaours

  • OpenCV Object Recognition with YOLOv7 (You Only Look Once) Model
  • Flask Webserver for Teleoperation and Configuration of Robot