# Distance-based Motion Profiling

I am using a Pure Pursuit control system which can be seen here (we are 2502)
https://youtu.be/YaajgxuHJSU?t=5s
The code for our implementation of Pure Pursuit is here: (along with several other scattered classes) https://github.com/Team-2502/RobotCode2018/blob/master/src/com/team2502/robot2018/trajectory/PurePursuitMovementStrategy.java

Speeds for given waypoints are set by the user. Then, the control system tells the robot to have

• Time-based motion profiling for accelerating i.e. v = a *t (where a is constant)
• Distance-based motion profiling for decelerating i.e. v = sqrt(vf^2 - 2ax)

We are planning on using a higher-degree equation with continuous jerk in the future.

The problem is I am not a big fan of time-based acceleration (I believed 254 was distance-based for acceleration and deceleration in 2017). If there is an obstacle, the robot might become confused if acceleration is time-based.

However, if I use distance-based acceleration and have a waypoint where v = 0 for d = 0, I will always be stuck at d = 0 (where v is velocity and d is distance). Is there any better way to do this?