This repository contains all of the code that was used in the creation of the first iteration of my custom ROS-interfaced, surveillance robot coined the 'DevBot'. A presentation that highlights all capabilites of the DevBot in detail can be found in this presentation. Please read below for details on the code, robot design, and more.
The code used in this project is split into two separate workspaces where 'devbot_ws' contains code that was ran directly on the robot and 'remote_ws' contains code that was ran on the remote computer that the robot was interfacing with. This framework was utilized to reduce the computational load that the robot must endure in order to operate properly. Please note that both the DevBot and the remote computer utilized ROS Noetic for operation.
The DevBot 1.0 is equipped with the following:
- Raspberry Pi 4 Model B
- Two Arduino Mega Microcontrollers
- Intel Realsense D435 RGBD Camera Sensor
- LD14 360 deg. LIDAR
- L298N H-Bridge Motor Controller
- Adafruit BNO055 IMU
- IR Wheel Encoders
- 1602 Liquid-Crystal-Display (for debugging purposes only)
As stated previously, the DevBot is ROS-interfaced to allow for ease of communication between the robot's several subsystems (i.e. motion estimator, occupancy grid generator, path planner, etc.). The specific capabilites of the robot can be listed as:
- Position/Motion Estimation using the Extended Kalman Filter through ekf_localization_node in the robot_localization package.
- Simultaneous Localization & Mapping (SLAM) through the use of a V-SLAM (visual) algorithm known as Real-Time Appearance-Based Mapping (or RTAB-Map)
- 2D Pose Estimation on an occupancy grid through the use of the Adaptive Monte Carlo Localization (AMCL) algorithm
- Autonomous Navigation through use of the move_base node
In the current operation framework, the following external ROS packages are required to be installed (Note: '+' = install on robot and '-' = install on remote computer):
- rtabmap (+-)
- rtabmap_ros (+-)
- robot_localization (-)
- realsense2_camera (+)
- ldlidar_sl_ros (+)
- ddynamic_reconfigure (+-)
One can easily install ddynamic_reconfigure via APT using the following terminal commands:
$ sudo apt-get update
$ sudo apt-get install ros-*-ddynamic-reconfigure