astar-path is a Javascript library that computes a ballistic flight path between a start and goal nodes. The trajectory computed is subject to position, velocity, and acceleration constraints as well as optional user defined node constraints.
Trajectories are defined by a PathNode array. Each PathNode has position, velocity and acceleration vectors (i.e., s,v,a).
Here we define start and goal nodes of a desired trajectory. Both start and goal nodes have zero velocity and acceleration:
varstart=newPathNode([200,-299,0]);// x,y,z positionvargoal=newPathNode([-200,299,0]);// x,y,z positionTrajectories are created by a PathFactory.
Here we create a three dimensional PathFactory that forbids x or y axis
movement below a zcruise height
of 15 and also forbids z-movement below zero:
varzcruise=15;varpf=newPathFactory({dimensions: 3,maxVelocity: [25,25,4],// x,y,z velocitymaxAcceleration: [5,5,1],// x,y,z accelerationmaxIterations: 5000,isConstrained: (node)=>node.s[2]<zcruise,constrain: (n)=>{if(n.s[2]<0){returnnull;// only paths above bed}if(n.s[2]<zcruise){if(n.v[0]||n.v[1]||n.a[0]||n.a[1]){returnnull;// no xy movement below zcruise;}}returnn;},});Given a start and goal PathNode, you can quickly create a trajectory by calling the findPath method:
varresult=pf.findPath(start,goal);Here is a typical trajectory computed by findPath in under 20ms:


npm install astar-path