Week 3: Exploring the Simulation Environment
March 19, 2024
Welcome back, everyone! After the extensive research that I discussed in last week’s blog post, this week, I started looking into a particular software that I can use to display the results of the pathfinding algorithm. This will make more sense after I talk about the output I actually want to see from the algorithm.
The pathfinding algorithm is intended find the optimal path on a given grid map. I will define certain locations in the grid with obstacles that the robot would not be able to enter in its path. I will also define a starting location and a final destination location on the grid. The robot would have to navigate through this landmark map from that given starting location to that given destination location while avoiding obstacles in certain grid locations. The final optimal path with the least cost (shortest possible path) that is found by the algorithm will be made up of different grid locations. When I implement the algorithm in Verilog, I want it to output a list of all the grid locations as x and y coordinates (format: (x,y) = (row # of the grid, column # of the grid)) that make up the optimal path, including the starting and final grid locations and the path’s cost. But, this output of the robot’s optimal path is not very communicative to users, so I realized that a true visual display of a robot executing the algorithm on a grid would be far more appealing and communicative to users. So, here comes the use for the simulation environment!
The simulation software I have decided to use to visually display the algorithm’s output as a robot moving along the optimal path through the landmark map is called Webot. Webot is a free open-source software that simulates the movement of robots. This week, I enjoyed exploring Webot in depth, understanding all of the features it offers, experimenting with different settings, robots, motors, and robotic movements, and determining how I could use it specifically for the purpose of my project’s output. After downloading Webot, I first imported the 69 environments available in the software. Each environment had a unique robot and surrounding, including an uneven desert terrain, a checkerboard, a house, and a city where an autonomous car drives itself. Each simulation environment is paired with C code that contains specific commands that control the movement of the robot or vehicle. I experimented with some of the sample code, changing values and changing the order of certain commands to see how it would affect the robot in the simulation. I also found out that different physical items can be imported into any chosen environment, like cardboard boxes and oil barrels. I could use these items to simulate an obstacle in the grid map in the simulation environment that must be avoided by the robot. In fact, there is also a feature that allows you to import motors and different actuators to customize a robot. In the corresponding code, the acceleration of a motor, energy efficiency of a motor, and several other functions can be altered, giving the robot more flexibility to move in the given environment the way I would want it too. After exploring Webot, my future goal is to find out how to use this software to create a 6 by 6 grid, place obstacles at certain coordinates, set starting and destination coordinates on the grid, and make a robot move from one square to the next specified square based on the Verilog output from the pathfinding algorithm. Since I cannot directly connect the Verilog output to Webot, I plan to separately configure the simulation in Webot, and I will manually input the Verilog output into the Webot code.
Stay tuned for next week’s blog post where I’ll discuss my work on the algorithm in more detail!
Leave a Reply
You must be logged in to post a comment.