Skip to content

Latest commit

 

History

History
127 lines (107 loc) · 6.07 KB

MAIN.md

File metadata and controls

127 lines (107 loc) · 6.07 KB

← Back

Peninsula Planner

A path planning software which provides a visual way to edit and create paths

Capabilities

  • Secure project creation and management system
  • Visual editing process
    • Sleek and streamline editing process of objects
    • Dynamic multi-path creation system with repeat-node support
  • Playback feature for trajectory generation

Navigation

Title Page

Click on Create to create a new project, or click on Projects to open the list of projects.

Note

To return to the title page at any point while this application is open, simply click on the logo in the top left corner.

Projects Page

Click on Create to create a new project. Additionally, you can select a template to create a project from. Double-clicking a project opens that project. Single clicking a project selects or unselects it. Right-clicking anywhere to open the context menu allows for editing of the selected projects. To switch between list display and grid display, simply click the list or grid icon next to the search bar. Use the search bar to filter out projects by name if needed.

Note

To return to the projects page at any point while this application is open, simply click on the folder icon in the top right corner. To quickly create a project, simply click the + icon in the top right corner.

Project Page

Title Bar Navigation

Clicking on the File, Edit, and View menus will open up a menu similar to the native system's file, edit, and view menus. Feel free to look at the options provided. Clicking on the project name provides more information about the project, including its name, source type, and actions relating to that source. Options listed are as follows:

  • Project name input
  • Save / Copy / Delete project actions

Clicking on the Save button will save the current project. The button will also display the current save status of the project as Saved, Saving, or Save (to manually save).

Main Display

Displays the active field that this project uses as a template. You can drag, move, and edit nodes from this field. Additionally, the playback menu, similar to YouTube, will also appear here, so you can navigate the generated path your script created. Clicking the fullscreen button in the top-right corner will close the Side Menu, and clicking it again will return the display to the unmaximized state.

Side Menu

Objects Panel

Allows you to edit selected objects or drag in new ones. Options include:

  • Position — The position of the object (or center of objects if multiple are selected).

  • Robot Heading Nodes only — The wanted heading of the robot, toggleable.

  • Robot Velocity Nodes only — The wanted velocity of the robot, toggleable.

  • Robot Rotational Velocity Nodes only — The wanted rotational velocity, toggleable.

  • Options Nodes only — The custom properties of the selected node. This feature only works when you have selected one node only.

  • Display Type Nodes only — The display type of the selected node. Available types include:

    • Default
    • Node
    • Box
    • Arrow (Centered)
    • Arrow (Head centered)
    • Arrow (Tail centered)

    There are also year-specific game piece types.

  • Display Color Nodes only — The color of the displayed node.

  • Display Ghost Nodes only — Whether or not the node is semi-transparent.

  • Radius Obstacles only — The size of the circular obstacle.

  • Enabled Obstacles only — Disabling an obstacle will result in it not showing up within the input file of your Python script.

Paths Panel

Click on + to create a new path. Click on the pencil icon next to each path to edit that path. Click on the waypoints to add them. Hold shift while clicking on nodes within the path to remove them. Click on x to remove that path. Click on Generate to run the Python generator script on the currently selected path.

Options Panel

Changing of project settings. Options include:

  • Template — current project template. Changing the dropdown menu's selection will change the background and map size, but will not change robot size and mass. To fully apply those settings, simply click Apply Template
  • Map Size No template only — size of the map.
  • Robot Size — size of robot (assuming square).
  • Robot Mass — mass of robot
  • Script Options — additional script options.
  • Generator Script — if not using the default generator, this python script will be executed.
  • Script Python — the Python command used.
  • Default Generator — toggles the default generator script.

Development Notes

If you are writing your own Python script to generate the path, expect a file as input, generated in the same directory as your python script.

data.in

{
   "config": {
       "map_w": 0, "map_h": 0,
       "side_length": 0,
       "mass": 0
       // any additional options as provided in Script Options will be inserted here
   },
   "nodes": [
       {
           "x": 0, "y": 0,
           "vx": 0, "vy": 0,
           "vt": 0,
           "theta": 0
           // any additional options as provided by Node Options will be inserted here
       }
       // ...
   ],
   "obstacles": [
       {
           "x": 0, "y": 0,
           "radius": 0
       }
       // ...
   ]
}

Important

Remember, that if you disabled Robot Heading, theta will be null. If you disabled Robot Velocity, vx, vy, and vt will all be null. In Python, that translates to None.

For our code to properly process and generate a visual, your output path must match this schema. It must be created with the name data.out and in the same directory as your script.

data.out

{
   "dt": 0,
   "state": [
       {
           "x": 0, "y": 0,
           "vx": 0, "vy": 0,
           "theta": 0
       }
       // ...
   ]
}