Skip to content

Objectives

shic15 edited this page Jun 3, 2021 · 1 revision

OBJECTIVES

To develop and build a low-cost autonomous robot that can replicate a recorded path, avoid obstacles and autonomously traverse back to the charging station when instructed. A web server HTML-based interface that allows users to access all the features and functions of the bot.

Simulation

The primary goal of doing simulation is to evaluate the algorithm performance under various scenarios. The robot is to be modeled and simulated in a Coppelia sim environment. It must be simulated to navigate autonomously through a series of coordinates avoiding any/all obstacles that will be present in its path. To test the path traversal algorithm some other parts of the bot need to be set up to complete the simulation, like differential drive dynamics, velocity control loop, encoder feedback. The placement of the sensors is to be made in such a way the sensors cover the front part of the robot and thereby minimize the blind spot area. The algorithm uses PID-based navigation for controlling the motor speed in case of both angular and linear velocity.

Web Server

The whole embedded code is divided into two sub-modules one of which handles the HTML server which acts as an interface between the robot and user. The webserver must contain different options to use ESP32 in different modes such as ESP32 as an access point and ESP32 as SoftAP mode. In ESP32 as an access point, the microcontroller switches on the hotspot, and the user has to connect to the ESP32 wifi network for controlling the robot. In SoftAP mode ESP32 will be connected to the local area network and the user must connect to the same network to control the robot. The Web Server should also have provision to change the network credentials, manual control of the bot, recording of the path, and execution of the path. It should also contain various other features to stop the robot in auto mode, a docking button to make the robot get back to the charging station, storing and displaying the wifi and path names for better understanding what the user wants to select. The user must move the robot manually to record the path, save it in the ROM of the microcontroller and retrieve it when called for.

Hardware selection

Selection of components such as motors, sensors, motor driver, battery pack with embedded BMS, microcontroller, and other basic components required for building the robot. The microcontroller is the brain of the robot, It is selected based on the functionality needed such as Wi-Fi, ROM for storage, 32-bit processor, and FreeRTOS support for scheduling multiple tasks. Selection of motors with encoder feedback and drivers. Motor with embedded encoders is preferred as it eliminates the use of extra mechanical fittings. A comparative study is to be made among different kinds of motors such as DC motors, BLDC motors, and Stepper motors. Other parameters such as power ratings, torque ratings, and the current drawn are referred to from the charts provided by the motor companies. The motor driver must be selected which can work at 3.3v logic level as ESP32 uses a 3.3V logic level, unlike Arduino. For obstacle avoidance, ultrasonic sensors have been chosen. The battery pack must be chosen based on the working time of the robot and the capacity is calculated based on the combined power consumption of all the components.

Testing

The final objective is testing all the systems independently(unit testing) under different test cases and seeing the system response. Integrating all the systems such as auto mode algorithm, web server, and motors and do necessary tuning for the precise motion to replicate the pre-recorded points. Implementation of hardware is to be done on an MVP which uses the lower quality of components as compared to originally selected hardware, to validate the code and its functionality.