package Ġorg . us first . f rc . team 1 4 5 8 . robot . extra Ċ Ċ import Ġj aci . path finder . Trajectory Ċ import Ġkotlinx . coroutines . experimental . Job Ċ import Ġorg . us first . f rc . team 1 4 5 8 . lib . drive . Tank Drive Ċ import Ġorg . us first . f rc . team 1 4 5 8 . lib . sensor . interfaces . Angle Sensor Ċ import Ġorg . us first . f rc . team 1 4 5 8 . lib . util . math s . kin em atics . Translation 2 D Ċ import Ġj aci . path finder . Path finder Ċ import Ġj aci . path finder . Waypoint Ċ import Ġj aci . path finder . modifiers . Tank Modifier Ċ import Ġorg . us first . f rc . team 1 4 5 8 . lib . path finding . Spline Follower Ċ import Ġorg . us first . f rc . team 1 4 5 8 . lib . util . flow . go ĊĊ Ċ class ĠDrive To Exchange ( val Ġtrajectory Config : ĠTra jectory . Config , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwheel base Width : ĠDouble , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdrive train : ĠT ank Drive , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgyro : ĠAngle Sensor ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgyro _ k P : ĠDouble ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġz ed Offset : ĠTranslation 2 D , Ġ// ĠOffset Ġof ĠZ ED Ġfrom Ġcenter Ġof Ġrobot ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcube Distance : ĠDouble Ġ// ĠDistance Ġfrom Ġcenter Ġof Ġrobot Ġto Ġfront Ġof Ġcube ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĊĠĠĠ Ġval Ġcoroutine Ġ: ĠJob ? Ġ= Ġnull ĊĊĠĠĠ Ġfun Ġdrive To Exchange ( target Center Coordinates : ĠTranslation 2 D ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrelative Position Ġ= Ġtarget Center Coordinates Ġ+ Ġz ed Offset ĊĠĠĠĠĠĠĠ Ġval Ġrelative Rotation Ġ= Ġrelative Position . direction ĊĊĠĠĠĠĠĠĠ Ġval Ġpoints Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWay point ( 0 . 0 , Ġ 0 . 0 , Ġ 0 . 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWay point ( relative Position . x , Ġrelative Position . y , Ġrelative Rotation . radians ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġtrajectory Ġ= ĠPath finder . generate ( points , Ġtrajectory Config ) ĊĠĠĠĠĠĠĠ Ġval Ġtank Modifier Ġ= ĠT ank Modifier ( trajectory ). modify ( wheel base Width ) ĊĊĠĠĠĠĠĠĠ Ġval Ġleft Ġ= Ġtank Modifier . left Trajectory ĊĠĠĠĠĠĠĠ Ġval Ġright Ġ= Ġtank Modifier . right Trajectory ĊĊĠĠĠĠĠĠĠ Ġval Ġspline Follower Ġ= ĠSpl ine Follower ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġleft Ġ= Ġleft , Ġright Ġ= Ġright , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrive train Ġ= Ġdrive train , Ġgyro Ġ= Ġgyro , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgyro _ k P Ġ= Ġgyro _ k P , Ġname Ġ= Ġ"") ĊĊĠĠĠĠĠĠĠ Ġgo Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }