Mission Planner
Mission Planner is the module where you can create and edit jobs. The jobs can be transferred to and from the robot. jobs that are loaded on the robot can be conveniently started from Mission Planner.
Some concepts to get you started
The first time working with Mission Planner introduces a few concepts that are required to fully exploit its capabilities.
While working with Mission Planner, you will work with Resources: pieces of information that a Robot can use while executing autonomous missions. There are multiple kinds of resources:
- Local Maps: a map of an area, most likely of the inside of a building. Such a map is generally created by a robot
- Waypoints: a location and direction
- Paths: a string of locations, forming a line
- Polygons: a string of locations, forming a closed shape
- Jobs: a list of Tasks that a robot can execute
- Schedules: specifies that a Job should be executed on a Robot at a certain time
Resources can be stored on your computer, and on a Robot. They can also be transferred between the two. Most Resources can be managed using Mission Planner. This means that you can add, edit, or remove Resources on both your computer and on a connected Robot. While working with Resources in Mission Planner, you work at a certain Location. A Location represents the physical location in the world where a Robot can operate. A Location can have a Global Map, a Local Map Resource, or both. A Global Map (also referred to as Outdoor Map) is a square area in the world, which has a fixed width and height around a defined center coordinate.
Some more information about Job Resources:
- A robot can execute a Job
- A Job is a sequence of Tasks
- A Task is some action that a Robot can perform
- There are different types of Tasks, each type with its own Properties
- Some Task Properties refer to Resources
The diagram below depicts these relationships.
flowchart TB
subgraph Resources
L(Local Map) -->|is a| R(Resource)
W(Waypoint) -->|is a| R
Pa(Path) -->|is a| R
Po(Polygon) -->|is a| R
S(Schedule) -->|is a| R
J(Job) -->|is a| R
R -->|can be stored on| Ro(Robot)
R -->|can be stored on| C(Computer)
S -->|schedules| J
end
subgraph Jobs
J -->|has sequence of| T(Task)
T -->|has| Pr(Properties)
Pr -->|can refer to| R
Ro -->|can execute| J
end
subgraph Locations
Lo(Location) -->|can have| L
Lo -->|can have| G(Global map)
end
These concepts become increasingly more familiar as you start planning missions for your robot.
Location management
When you open Mission Planner, you are greeted by the Location selection screen. On the Location selection screen, you can select a Location in which you want to start planning jobs and paths. You can also create new Locations by specifying a Global Map and a Local Map. You can open a Location by selecting it in the list, and then pressing the Open location
button.
Note
Opening Mission Planner can take up to a minute based on the Internet connection speed. This is a known issue and we are working to make it better 😉
Create a Location
You can start creating a new Location by pressing the Add location
button in the Location selection screen. This opens a new screen, in which you can provide a name for the new Location, as well as define a Global Map and a Local Map:
A Location should have at least one of the map types or both. You can start defining a map type by enabling it in the dialog.
Define a Global Map
A Global Map is defined by a global coordinate. The coordinate should be provided as latitude, longitude
, filling in the latitude and the longitude of the global coordinate as decimal numbers. The coordinate input field provides a link to Google Maps, which can be used to easily obtain these values for any location in the world.
Define a Local Map
A Local Map is defined by simply selecting an Local Map resource from the list of available Indoor Map resources. The list contains all the maps that are available on the robot that you are currently connected to, as well as Indoor Map resources that you have used before. You can also remove Indoor Map resources that you do not want to use anymore from your computer, or from the robot you are currently connected to.
Info
At the moment, it is not possible to create Indoor Map resources without a robot. It is also not possible to rename Indoor Map resources.
Note
A Location is different from a Local Map! This means that the list of locations will not be the same as the list of local maps. Additionally, in order to plan missions on a local map, you first have to create a location that uses this local map.
Map view
When you have selected a location, the indoor- and/or outdoor map will be displayed. You may see the world map if you have an outdoor location, or the indoor map if you have an indoor location.
The following table summarizes the available map interactions.
Control | Effect |
---|---|
Drag-and-drop with left mouse button | Move the map around |
Mouse scroll wheel | Zoom in and out of map |
Additionally, you can use the Map View Controls to change the location or re-center the camera on the map.
Robot position indicator
When you are connected to a robot, an indicator will be shown on the map, indicating the position and direction of the robot in the Location you are currently working in.
Robot connection
Mission Planner lets you create and edit jobs and other resources on the map. This can be done without having a connection to a robot.
When you want a robot to execute a job, you need to transfer it to that robot and instruct it to execute that job. A connection to a robot is required for this purpose. You can connect to a robot via the connection bar as described in Connecting to a robot. The toolbar in the mission planner shows the status of the connected robot. It contains two indicators that show the robot's position accuracy and the robot's status.
Resource Management
resources are an important part of interacting with a robot. They tell the robot about its environment, what actions to perform in that environment, and how to perform these actions. You can manage your resources using the resource library. After selecting a location the resource library will automatically open. Alternatively, you can access the resource library via the Open library button in the toolbar.
Resource Library
With the resource library, you can manage all of the resource available on your computer, and on any connected robot. You can create new resources, edit them, move them between your computer and connected robots, and remove them once you don't need them anymore.
The resource library show you where each resource is stored. There are three possible location indications:
- loaded: the resource is available in the current session of Cerebra Studio. Once you close Cerebra Studio, the resource will be lost! Cerebra Studio will load a resource (and all resources it depends on) when you start editing it.
- local: the resource is saved to the harddisk of your computer. It will stay available until you delete it, even when you restart Cerebra Studio
- robot/...: the resource is saved on a robot that is currently connected to Cerebra Studio. The serial number of the robot can be found after "robot/", if available.
The resources in the resource library are organized by type. You can switch between the different types using the tabs at the top of the resource library. The following resource types are available:
- Jobs are a sequence of tasks that can be executed by a robot
- Paths are a sequence of positions that form a line
- Waypoints are a combination of a position and an orientation
- Polygons are a closed sequence of points that enclose an area
Create a Resource
To create a new resource, follow these steps:
- Open the resource library.
- Switch to the tab of the type of resource you want to create
- Select the Create new ... button.
- Type a name for your new resource.
- Select Create.
- The resource you just created is opened for editing.
Edit a Resource on the Map view
Once you create a resource, you can immediately start editing it on the Map view. You can also edit an existing resource by selecting the Edit button of the resource in the resource library. The resource is then displayed on the Map view, ready to be edited. When you want to save the changes you made to the resource, you can press the Save to Computer button at the top of the Map view.
Tip
Remember to frequently save your progress as you work. There is no auto-save available!
Info
When you save a resource to your computer, it is not yet available on a robot! You also need to manually upload the resource to your robot if you want the robot to actually use the resource. More details on uploading and downloading resources can be found in the Upload and download resources section.
Each resource type is shown in a different way on the Map view, and can be edited in different ways as well. While editing a resource, it is possible to make the resource invalid. When a resource is invalid, it cannot be saved or uploaded to a robot. Each resource type has different requirements that need to be met for it to be valid.
Edit Paths and Polygons
paths and polygons are very similar to each other when it comes to editing them. They are both defined as a sequence of points, which you can manage on the Map view. You can add points, remove points, and move points around. This can be done with the following actions:
Action | Effect |
---|---|
Left click on map | Append point to path |
Right click on point | Remove point from path |
Drag-and-drop point with left mouse button | Move point in map |
Selecting an existing point in the path allows you to delete that point using the Delete button, or add a point before or after the selected point using the Add buttons.
paths and polygons should have at least 1 point in order to be valid. Invalid paths and polygons are shown in red, while valid paths and polygons are shown in yellow. polygons have additional requirements on being valid:
- A polygon should have at least 3 points
- A polygon should not have self-intersections in its border
Edit Waypoints
A waypoint is a single position with an orientation. While editing, the position of the waypoint can be changed, and the waypoint can be rotated. This can be done with the following actions:
Action | Effect |
---|---|
Left click on map | Move the position of the waypoint to the clicked position |
Drag-and-drop waypoint with the left mouse button | Move the position of the waypoint |
Drag rotation handle with the left mouse button | Rotate the waypoint |
When you create a waypoint, it does not have a position yet. At that point, the waypoint is invalid until you give it a position by clicking anywhere on the map.
Edit Jobs
Editing a job is mainly done through the job editing menu on the right of the Map view.
The job editing menu shows the name of the job being edited and lets you Add tasks, Edit task properties, Reorder tasks, Remove tasks, or Clear all tasks from the job entirely. When you add or edit a task, you are presented with the task editing dialog. In the task editing dialog you can set the type of the task, and provide values for all task properties for that type. Some task properties refer to other resources. You can select an existing resource, or create a new one.
A job is valid if all the resources it (indirectly) refers to are valid. A task that is invalid will be marked in orange with a warning sign. Hovering over the task with your cursor will reveal more information on why exactly the task is invalid.
When Cerebra Studio is connected to a robot, you can also choose to execute a job on that robot immediately. This can be done by pressing the Start job button in the job editing menu. You can also stop any job currently executing on the connected robot by pressing the Stop after current task button in the toolbar.
Danger
When you press the Stop after current task button, the robot will still finish its current task before stopping entirely. This button can therefore not be used as an emergency stop!
Upload and download Resources
Info
Transferring resources to/from the robot requires an active connection to a robot.
Info
resources are not automatically synced between computer and robot. Any local changes must be re-uploaded to the robot.
Once the resource is ready and all changes saved, you can transfer it to a robot.
To upload a resource to the robot, Press the Upload button of the resource in the resource library. Once the resource is successfully uploaded, the resource's location is updated with the serial number of the robot that the resource has been uploaded to.
A similar approach is followed to download resource from the robot (using the Download button instead). The main difference is that the resource exists first on the robot, and a local copy is created.
When you transfer a resource that refers to other resources, these other resources are also automatically transferred.
Remove a Resource
resources can be deleted using the Delete button of the resource in the resource library. You can then select from which locations you want to delete it from. There will be two available options:
- "Delete from computer": will delete the resource from both the "loaded" and "local" locations. If you are currently editing the resource that will be deleted, the resource will be closed.
- "Delete from connected robot(s)": will delete the resource from all connected robots (locations "robot/...").
Rename a Resource
Each resource has a name, which can be changed in the resource library. You can type directly in the resource's Name field, and save the resource to apply the name change.
Duplicate a Resource
resources can be duplicated using the Copy button of the resource in the resource library. This will create a copy of the original resource with (copy) appended to its name. The copy will only be "loaded", so you need to save it to make sure it is not lost!
Record a Path
Info
Recording a path requires an active connection to a robot.
Instead of creating a path by manually adding points to the map, a robot is used to create a path. During the recording session, the robot transmits its location to Cerebra Studio, and you can interactively see the path along which the robot is moving.
It is OK if the path that the robot follows is not perfect. Once a path is recorded on the robot, it can be downloaded and fine-tuned by hand. Note that it is not possible to tweak the path as it is being recorded.
We strongly recommend recording only when the robot position has sufficient accuracy; this check is encouraged but not enforced. You can monitor the robot position accuracy on the toolbar. The toolbar also provides the controls to start and stop recording, as well as to cancel the recording session.
To record a path, follow these steps:
- Open the paths overview at the resource library.
- Select Record new path.
- Provide a name for the recorded path. This will take you to the map view.
- Select Start recording from the toolbar.
While the recording is going, you can stop it in multiple ways:
- Select Finish recording from the toolbar to stop recording and save the path
- Select Cancel recording from the toolbar to stop recording while not save the path recorded so far
Schedule a job
Cerebra Studio supports the scheduling of jobs. You can schedule a job to be executed at a specific time in the future.
Info
Currently we only support scheduling a specific job only once. This means that if a job is used in a schedule, it cannot be used in another schedule.
Danger
The robot will always attempt to start a mission on the scheduled time and might not check if it is actually able to do so! So make sure that the robot is ready to start a scheduled mission at the time the mission is scheduled, e.g. make sure the robot is not connected to a charger.
The execution screen shows two main sections. On the left you have a list of schedules that are on the robot, or that you are actively changing. On the right, you have the selected schedule details. You can modify the selected schedule here. You can scroll or drag the schedule editor to see more options.
Create a new Schedule
To create a new schedule, press the Add schedule button. This will create a new schedule with the name New schedule. Select a date and time for the job to start executing. You must pick a job that you want to execute from the list of available jobs. Press the Upload schedules to robot button to upload the schedules. The robot will now execute the job at the specified time.