Week 1: Introduction
March 8, 2024
Hi Everyone, and Welcome to my Senior Project! During these next few months, I will be writing and implementing a path-finding algorithm for an autonomous robot to find the most optimal path from a certain starting point (source location) to a destination location. In this post, I will talk about my motivation behind this project, some background, and what I hope to achieve by the end of my project.
Most of you are probably familiar with self-driving cars. These self-driving vehicles are also known as autonomous cars, which are driverless vehicles that use a system of sensors, cameras, and other remote sensing devices like Light Detection and Ranging Sensor (LIDAR) to construct a map of the surrounding environment that facilitates the ability of the vehicle to navigate effectively and efficiently while avoiding both static and dynamic obstacles. These vehicles will drive from a starting location to some final destination with the assistance of Global Positioning System (GPS) signaling to find the location of the vehicle. Almost all autonomous vehicles currently require GPS beginning or RF signaling to operate.
This brings me to my next point of contention. Will GPS signaling always be available? What if humans want to enter, move through, and investigate environments in which it is actually difficult for them to operate? This is where autonomous vehicles, or rather more specifically, autonomous robots, become incredibly useful. Delving further into this idea of autonomous robots, what if these robots are placed in environments where GPS and Radio Frequency (RF) signaling are not available? Considering these arising problems, in my project, I want to explore how to write and execute an algorithm that an autonomous robot can use to navigate through an environment in which humans cannot operate or where GPS/RF signaling is not reliably available and go from a source location to a destination location with the most optimal path.
In implementing this algorithm, I will be striving for maximal efficiency for the robot to find the most optimal path from source to destination while reacting to static obstacles in real time. This means that immediately after the obstacle is found, the robot should change its path as opposed to facing a delay after meeting the obstacle. Making a hardware efficient algorithm would allow for a robot to achieve this efficiency in avoiding obstacles and finding the optimal path much better than would the pure software implementation of this algorithm. Therefore, I will be implementing this algorithm in hardware since it has lower latency compared to software.
Now, I’ll dive a little bit into what “hardware implementation” means. This means that I will not be using the traditional software encoded languages like Java and Python to write this algorithm. Instead, I will be using a hardware description language (HDL) called Verilog to write the code for the algorithm and implement it by using a Field Programmable Gate Array (FPGA), which is an integrated circuit. This integrated circuit has logic components like logic gates, memory elements(flip-flops), digital signal processors, and clock infrastructure that are all internal to the physical FPGA chip and that can be programmed by the user. I will code the hardware logic in Verilog to configure the FPGA. The synthesis tool will convert code into the logic components within FPGA, which will allow me to implement my Verilog algorithm in hardware. That was a lot of technical background knowledge! But it is very good to have some understanding of it before venturing into the rest of my project.
Through my research and writing of this algorithm, I hope to answer a few main questions. Does implementation of this algorithm in FPGA truly improve the efficiency of the robot’s path-finding abilities? Is the robot able to find the most optimal path from a starting point to a final point while avoiding the obstacles? How would this algorithm be physically helpful in real life applications for autonomous robots in industry?
As I begin to engage more deeply with the technical problem-solving and details behind this path-finding algorithm and the technical complexities of the FPGA, Verilog code, and software simulation tool set, I hope to find that the FPGA did improve the efficiency of the path-finding algorithm, and that this robot, which will be able to find the most optimal path, will also be especially beneficial in applications like war zones. As I mentioned before, most autonomous vehicles require these type of sensor systems to go from go from a source to destination. Hence, by the end of this project, I certainly aspire to have created a relatively unique and applicable tool for autonomous robots to use in environments where GPS and RF signaling are not available. Come back next week to learn about my initial steps of the project!
Leave a Reply
You must be logged in to post a comment.