Introduction

Introduction

Welcome to DevMello's Voyager documentation. It is a work-in-progress project that aims to create a system that can autonomously navigate a vehicle through a series of waypoints. Voyager was initially created under the name Pathfinder2 (opens in a new tab) by Colin Robertson. The original author has stopped development of the library and I have decided to continue development under the name Voyager.

What is Voyager?

Voyager

Voyager is a heavily abstracted and modular pathfinding library that aims to provide a simple and efficient way to navigate a vehicle through a series of waypoints. It is designed to be flexible, allowing users to easily integrate it into their projects and customize it to suit their needs.

Key Features

  • Trajectories: Easily generate smooth and efficient trajectories between waypoints including splines, arcs, lines, and even your own equations!
  • Listeners: Implement listeners to receive updates on the vehicle's position, velocity, and more. Allows you to easily integrate Voyager with your existing systems. (unchanged from Pathfinder2)
  • Pathfinder: Has a built in A* pathfinder to dynamically generate paths between waypoints.
  • Logger: Has a robust logging system that allows you to easily log data to a file or console.
  • Zone: A custom zone processor that allows you to easily create zones that can be used to trigger events or change the vehicle's behavior.
  • Recording: Record points along your path which can then be used to replay the path at a later time. (unchanged from Pathfinder2)
  • Customizable: Voyager is designed to be easily customizable and extendable. You can easily add your own custom behaviors and features.
  • Plugin Manager: Voyager has a built in plugin manager that allows you to easily add and remove plugins on the fly. (unchanged from Pathfinder2)
  • Open Source: Voyager is open source and free to use under the GNU GPL V3 License.

Implementation

If your odometry and localization is already setup, you can easily integrate Voyager with a simple:

pathfinder.goto(new PointXYZ(10,0,Angle.fromDeg(90)));