Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Project Lead

All

Team Members

Tim Kang, Jeff Mak

Objective

Generate an optimized velocity profile that minimizes energy usage within given constraints

Due dateKey outcomes

10/28/2023

Status

Status
colourYellow
titlein progress

\uD83E\uDD14 Problem Statement

Research Optimization Legacy Code

Code Breakdown

Function: “load_course_map“

  • Parameters: The name of the course we’re trying to load in (course_name)

  • Returns: The map of elevations on said course (elev_profile).

  • The map of elevations has dimensions num_points x 2, with column 1 (Index 0) representing the y-coordinates and column 2 (Index 1) representing the x-coordinates.

Function: “generate_initial_profile“

  • Parameters: The maximum allowable time to cover a distance in seconds (time), the distance to be covered in meters (distance), the list of pitches map of elevations that the car must travel (e_profile), the minimum allowable velocity (min_velocity), and the list of indices where the car must stop (stop_profile)

  • Returns: A map of the same dimensions as the map of elevations with each element representing the average velocity required for the car to move at each point on the map of elevations (initial_profile).

  • Ex. initial_profile[2] = 10 means that according to the initial profile, the car should be moving 10 m/s at point 3 (Index 2) on the map of elevations.

  • This function basically generates the naive/initial solution that will be improved upon through the optimization function later in the program.

What does it accomplish?

Inputs/Outputs

Dependencies

Processing Outputs (how do we gain strategical advantage using the output)

🎯 Scope

...

Must have:

...

Nice to have:

...

Not in scope:

\uD83D\uDDD3 Timeline

...

\uD83D\uDEA9 Milestones and deadlines

...

Milestone

...

Owner

...

Deadline

...

Status

...

Inputs/Outputs

View the Optimizer breakdown in dropdown for detailed a look.

INPUT

  • Elevation text file:

    • First row states how many points/sections in a route

    • Each row after the first represents a section of a course. For each row:

      • The index of row

      • change of elevation (starting point of section → end point of section)

      • length of section

      • If there is a turn after this section: Indication of turn

These values are separated by comma.

  • User input using parser:

    • distance: (float) Distance to travel (m)

      dist_step: (float) Distance between elevation profile measurements (m)

      time: (float) Maximum allowable to travel the distance (m/s)

      min_velocity: (float) Minimum allowable velocity (m/s)

      max_stop_velocity: (float) Maximum velocity for stops/turns (m/s)

OUTPUT

  • Optimized velocity profile: (list) each element represents the average velocity (m/s) for the car to move at each section/point in a route.