SoonerRobotics / robomagellan-2019

Sooner Competitive Robotics code base for the 2019 Robogames RoboMagellan competition
http://ou.edu/scr/
4 stars 0 forks source link

Trajectory: Compute full trajectory build #40

Open jkleiber opened 5 years ago

jkleiber commented 5 years ago

Description Given a list of waypoints, we need to create a list of trajectory points. Currently, the program only builds trajectory points at the given waypoints. Ideally, we will have intermediate points to make the robot follow a smooth path. This will help with building turns (#33). Trajectory points are different than waypoints because they contain additional motion information

Action to Take Add intermediate points between each waypoint after adding all the points in the initialization code. Create a build() function of sorts that can be used to add trajectory points given a list of waypoints. This will be used in the trajectory update phase of the code (#36)

Possible Solution In the trajectory class, make a list for holding waypoints and trajectory points. Initialize the waypoint list with the given waypoints at the start of the program. Implement a build function that clears the trajectory point list first, adds the waypoints, converts them to trajectory points, and calculates the required velocity and heading information and then between each waypoint adds appropriate trajectory points. These trajectory points initially should be a linear interpolation of the required data at each waypoint. Eventually we can use physics to build in turns or find the maximum speed we can go.

We will need to make types for each point (a class already made in the trajectory folder). Some types include: waypoint, turn, cone, finish