/*---------------------------------------------------------------- ------------ */ Ċ /* ĠCopyright Ġ( c ) Ġ 2 0 1 8 ĠFIRST . ĠAll ĠRights ĠReserved . ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ Ċ /* ĠOpen ĠSource ĠSoftware Ġ- Ġmay Ġbe Ġmodified Ġand Ġshared Ġby ĠF RC Ġteams . ĠThe Ġcode ĠĠ Ġ*/ Ċ /* Ġmust Ġbe Ġaccomp an ied Ġby Ġthe ĠFIRST ĠBSD Ġlicense Ġfile Ġin Ġthe Ġroot Ġdirectory Ġof Ġ*/ Ċ /* Ġthe Ġproject . ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ Ċ /*---------------------------------------------------------------- ------------ */ Ċ Ċ package Ġf rc . robot . commands Ċ Ċ import Ġedu . wpi . first . wp ilib j . command . Command Group Ċ import Ġj aci . path finder . Waypoint Ċ Ċ import Ġf rc . robot . Robot Ċ import Ġf rc . robot . path finder . commands . Trigger Motion Execution Ċ import Ġf rc . robot . path finder . util . Motion Executor Ċ Ċ class ĠTEST Drive Switch Using Path finder () Ġ: ĠCommand Group () Ġ{ ĊĠ Ġ/** ĊĠĠ Ġ* ĠAdd Ġyour Ġdocs Ġhere . ĊĠĠ Ġ*/ ĊĠ Ġinit Ġ{ ĊĠĠĠ Ġvar Ġway points Ġ= ĠarrayOf ( ĊĠĠĠĠĠ ĠWay point ( 1 . 0 , Ġ 1 3 . 0 , Ġ 0 . 0 ), ĊĠĠĠĠĠ ĠWay point ( 6 . 0 , Ġ 1 8 . 0 , Ġ 0 . 0 ) ĊĠĠĠ Ġ) ĊĠĠĠ Ġ// ĠThe Ġgenerate Tank Motion Profile Ġmethod Ġreturns Ġa ĠT ank Trajectory Container Ġwhich Ġholds Ġthe Ġleft Ġand Ġright ĊĠĠĠ Ġ// Ġtra ject ories Ġso Ġthat Ġthey Ġcan Ġbe Ġpassed Ġeasily . ĠIt Ġis Ġpossible Ġto Ġread Ġpre - generated Ġtra ject ories Ġby ĠĊĠĠĠ Ġ// Ġdoing Ġthe Ġfollowing : ĊĠĠĠ Ġ// Ġ ĠBinary Ġfile : ĊĠĠĠ Ġ// ĠĠĠ Ġvar Ġleft File : ĠFile Ġ= ĠFile ("/ home / lv user / deploy / my File Left . traj ") ĊĠĠĠ Ġ// ĠĠĠ Ġvar Ġright File : ĠFile Ġ= ĠFile ("/ home / lv user / deploy / my File Right . traj ") ĊĠĠĠ Ġ// ĠĠĠ Ġvar Ġleft Trajectory : ĠTra jectory Ġ= ĠPath finder . read FromFile ( left File ) ĊĠĠĠ Ġ// ĠĠĠ Ġvar Ġright Trajectory : ĠTra jectory Ġ= ĠPath finder . read FromFile ( right File ) ĊĠĠĠ Ġ// ĠĠĠ Ġval Ġcontainer : ĠT ank Trajectory Container Ġ= ĠT ank Trajectory Container ( left Trajectory , Ġright Trajectory ) ĊĠĠĠ Ġ// ĊĠĠĠ Ġ// Ġ ĠCSV Ġfile : ĊĠĠĠ Ġ// ĠĠĠ Ġvar Ġleft File : ĠFile Ġ= ĠFile ("/ home / lv user / deploy / my File Left . csv ") ĊĠĠĠ Ġ// ĠĠĠ Ġvar Ġright File : ĠFile Ġ= ĠFile ("/ home / lv user / deploy / my File Right . csv ") ĊĠĠĠ Ġ// ĠĠĠ Ġvar Ġleft Trajectory : ĠTra jectory Ġ= ĠPath finder . read From CSV ( left File ) ĊĠĠĠ Ġ// ĠĠĠ Ġvar Ġright Trajectory : ĠTra jectory Ġ= ĠPath finder . read From CSV ( right File ) ĊĠĠĠ Ġ// ĠĠĠ Ġval Ġcontainer : ĠT ank Trajectory Container Ġ= ĠT ank Trajectory Container ( left Trajectory , Ġright Trajectory ) ĊĠĠĠ Ġ// ĊĠĠĠ Ġ// ĠThe Ġcontainer Ġcan Ġthen Ġbe Ġpassed Ġto Ġthe ĠMotion Executor ĊĠĠĠ Ġval Ġmotion Executor Ġ= ĠMotion Executor ( Robot . m _ motion Profiler . generate Tank Motion Profile ( way points )) ĊĠĠĠ Ġadd Sequential ( Trigger Motion Execution ( motion Executor )) ĊĠ Ġ} Ċ } Ċ