A* VI
- Updated2023-02-21
- 3 minute(s) read
A* VI
Owning Palette: Path Planning VIs
Requires: Robotics Module
Plans a least-cost path through a static map to a goal reference within a map. Use this VI to return a single, optimal path.
This VI uses a best-first algorithm to search paths that are most likely to lead to the goal while minimizing the cost of traversing the path.

![]() |
map reference in is a reference to the map that represents the robot environment. You can use the Create Directed Graph Map VI or Create Occupancy Grid Map VI to generate this LabVIEW class object. |
![]() |
start reference specifies the current position of the robot within the map. If this VI operates on a directed graph map or occupancy grid map, you can use the Get Node Reference VI or Get Cell Reference VI, respectively, to generate this LabVIEW class object. |
![]() |
goal reference specifies the position to which the robot should navigate within the map. If this VI operates on a directed graph map or occupancy grid map, you can use the Get Node Reference VI or Get Cell Reference VI, respectively, to generate this LabVIEW class object. |
![]() |
error in describes error conditions that occur before this node runs. This input provides standard error in functionality. |
![]() |
path references is an array of references to points on the map along the path this VI calculates. If no valid path exists is TRUE, LabVIEW returns a partial path. Otherwise, path references contains a complete path to the goal node. You can use a partial path to direct a mobile robot to a point in the map that is nearer to the goal than the current position of the robot. |
![]() |
no valid path exists is TRUE if the path references do not end at the goal node. |
![]() |
error out contains error information. This output provides standard error out functionality. |
![]() |
path cost is the cost of traversing the path references. path cost returns Inf if no possible path exists or the map changes significantly. |
A* Details
This VI uses an A* algorithm to plan an optimal path through a static map, which is a time-intensive operation. Use the AD* VI to plan a less-optimal path through a dynamic map more quickly and to replan the path as the map changes.
LabVIEW locks maps while this VI plans paths through them. While a map is locked, LabVIEW queues any updates to the map and applies them when this VI finishes planning a path.
Example
Refer to the Astar on Voronoi.lvproj in the labview\examples\robotics\Path Planning\Astar\Astar on Voronoi Graph directory for an example of using the A* VI.





