User Tools

Site Tools


bfs_and_dfs_implementation_v2

This is an old revision of the document!


BFS & DFS Implementation V2 (IN-PROGRSS)

Author: Francis Palustre Email: palusf1@unlv.nevada.edu
Date: Last modified on <11/09/23>
Keywords: Navigation, BFS, DFS, Robotino, C++,


The photo above depicts <fill in the blank> which allows you to <fill in the blank>. The big picture problem is <fill in the blank>. Solving this partially or completely is important because <fill in the blank>. This tutorial shows you how to <fill in the blank> and takes approximately <fill in the blank> hours to complete.

Motivation and Audience

This tutorial's motivation is to find ways for robots to autonomously navigate their environments. Readers of this tutorial assumes the reader has the following background and interests:

* Know how to code in CPlusPlus and are familiar with function handling
* Know how Breadth-First and Depth-First Search algorithms work
* Know how to navigate within the terminal in Linux
* This tutorial may also attract readers who are interesting in implementing algorithms in their own projects


The rest of this tutorial is presented as follows:

Setup and Understanding

To setup Robotino, please take a look at the following wikis:
How to Setup Robotino for Programming and Navigation
Robotino API2 Setup
Hello World on the Robotino

To understand how Breadth-First Search and Depth-First Search work, please take a look at the following wikis and links:
Breadth-First Search and Depth-First Search

Breadth-First Search (GeeksForGeeks)
Breadth-First Search (Programiz)

Depth-First Search (GeeksForGeeks)
Depth-First Search (Programiz)

General Functions

General functions are functions that are found in both files of BFS and DFS

  • getCurrentTime() gets the current time in UTC in seconds. It is used to provide the time needed for a movement for Robotino.
  double getCurrentTime() {
       struct timeval tv; //timeval struct to store time values
       gettimeofday(&tv, NULL); //get current time and store in timeval
       return (tv.tv_sec) + tv.tv_usec / 1000000.0; //convert time to seconds and add microseconds for precision
  }

Robotino Functions

Robotino functions are functions that used for Robotino's movement

Algorithm for BFS

Algorithm for DFS

Final Words

This tutorial's objective was to implement the BFS and DFS algorithm into Robotino using an alternative method when compared to the first version. Complete source code for the algorithms can be found at the beginning of the tutorial. Once the concepts were conveyed the reader could try to implement BFS and DFS and other path planning algorithms into their own projects.

Speculating future work derived from this tutorial, includes <fill in the blank>. In the big picture, the problem of <fill in the blank> can be solved with this tutorial.

For questions, clarifications, etc, Email: palusf1@unlv.nevada.edu

bfs_and_dfs_implementation_v2.1699580361.txt.gz · Last modified: by fpalustre