User Tools

Site Tools


nxt_pf_nav_ar_toolkit

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
nxt_pf_nav_ar_toolkit [2016/10/22 21:49] alvaropintadonxt_pf_nav_ar_toolkit [2017/02/09 13:45] (current) dwallace
Line 3: Line 3:
 **Authors:** Dylan Wallace Email: <wallad3@unlv.nevada.edu>, Alvaro Pintado **Authors:** Dylan Wallace Email: <wallad3@unlv.nevada.edu>, Alvaro Pintado
 \\ \\
 +**Keywords:​** Potential Fields, PFNav, ARToolkit, Computer Vision, Navigation, NXT, Cpp, C, Path Planning  
 +\\ 
 **Date:** Last modified on 09/13/16 **Date:** Last modified on 09/13/16
 \\ \\
  
-=====Introduction=====+===== Introduction =====
  
 Potential Fields is a concept that comes from the fundamentals of electricity and magnetism. A charge with high potential (positive) will repel the electric field away from it, while a charge with low potential (negative) will attract the electric field. With many of these attractive or repulsive points present in the electric field, a field of vectors is created representing all of the forces at each point in the field. This vector field can be navigated by following each vector at each present location, leading towards the point of lowest potential in the field (global minimum). Potential Fields is a concept that comes from the fundamentals of electricity and magnetism. A charge with high potential (positive) will repel the electric field away from it, while a charge with low potential (negative) will attract the electric field. With many of these attractive or repulsive points present in the electric field, a field of vectors is created representing all of the forces at each point in the field. This vector field can be navigated by following each vector at each present location, leading towards the point of lowest potential in the field (global minimum).
Line 19: Line 21:
 \\  \\ 
  
-If you just want to try out the program yourself, here is an [[http://s000.tinyupload.com/download.php?file_id=75677626423566014033&t=7567762642356601403346737|executable]] that you can place into the bin directory of ARToolkit.+If you just want to try out the program yourself, here is an [[https://github.com/D-Wazzle/Potential-Fields-Navigation/blob/master/PFNav%20ARToolkit.exe|executable]] that you can place into the bin directory of ARToolkit.
  
-If you want to view the source code directly, here is the [[http://s000.tinyupload.com/download.php?file_id=66473109907592855312&t=6647310990759285531274632|C++ file]] for the program.+If you want to view the source code directly, here is the [[https://github.com/D-Wazzle/Potential-Fields-Navigation/blob/master/ARToolkitPFNav.cpp|C++ file]] for the program.
 ===== Motivation and Audience ===== ===== Motivation and Audience =====
  
Line 32: Line 34:
 \\ \\
 The rest of this tutorial is presented as follows: The rest of this tutorial is presented as follows:
-  * [[|Integrating Potential Fields]] +  * Integrating Potential Fields 
-  * [[|Integrating Bluetooth]]+  * Integrating Bluetooth
   * Final Words   * Final Words
  
Line 40: Line 42:
 We will start by editing the file that we used for the ARToolkit Coordinate Tracking. This file provides the necessary base for our ARToolkit program to run. We will start by editing the file that we used for the ARToolkit Coordinate Tracking. This file provides the necessary base for our ARToolkit program to run.
  
-The first thing that we will want to define in our program is a new struct used to track the robot. This struct will be delcared as follows:+The first thing that we will want to define in our program is a new struct used to track the robot. This struct will be declared as follows:
  
 <code c++> <code c++>
Line 153: Line 155:
  }  }
  
- }+}
  
 sprintf(ur1, "Ux(1): %.1f; Uy(1): %.1f", ur_x[1], ur_y[1]); sprintf(ur1, "Ux(1): %.1f; Uy(1): %.1f", ur_x[1], ur_y[1]);
Line 186: Line 188:
   - Writes the component velocities to the NXT to then control the motor power on the Bot   - Writes the component velocities to the NXT to then control the motor power on the Bot
  
-<code>+<code c++ diffSteer.cpp>
 static void diffSteer(Mobile &mobile, float xVel, float yVel) static void diffSteer(Mobile &mobile, float xVel, float yVel)
 { {
Line 245: Line 247:
 ==== Final Words ==== ==== Final Words ====
  
-This tutorial's objective was to implement potential fields with robotic navigation and computer vision.+This tutorial's objective was to show how a robot can be programmed to perform real-time navigation, using ARToolkit and Potential Fields. Once the concepts were conveyed the reader could create their own program for real-time navigation using the ARToolkit SDK & Potential Fields with an NXT robot.
 \\ \\
 \\ \\
 For questions, clarifications, etc, Email: <wallad3@unlv.nevada.edu> For questions, clarifications, etc, Email: <wallad3@unlv.nevada.edu>
nxt_pf_nav_ar_toolkit.1477198178.txt.gz · Last modified: by alvaropintado