Skip to content

Commit

Permalink
Astrobee Control Station release 0.0.1
Browse files Browse the repository at this point in the history
  • Loading branch information
ddwheele committed Jul 5, 2019
1 parent 4fe1d5f commit 9931313
Show file tree
Hide file tree
Showing 29 changed files with 1,154 additions and 206 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,6 @@ a graphical interface to create a Plan for one Astrobee. The **Advanced Guest Sc
of repetitive plans with known coordinates. The **Debugging** tab displays engineering data
helpful for debugging DDS communication with the robot.

Install instructions are [here](docs/SETUP.md)
[Install instructions](docs/SETUP.md)

Usage instructions are [here](docs/USAGE.md)
[Usage instructions and documentation](docs/USAGE.md)
4 changes: 4 additions & 0 deletions RELEASE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Astrobee Control Station

## Release 0.0.1
- Augmented usage documentation with references to code files, etc.
32 changes: 25 additions & 7 deletions docs/SETUP.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,20 +44,38 @@
the words “workspace_loc”, do not substitute)
* On Windows, the variable should be called `PATH` with value `${workspace_loc:/com.rti.dds.target/os/win32/x86}`. Or substitue x86_64 if you have 64-bit Windows.
* On Linux, set `LD_LIBRARY_PATH` to `${workspace_loc:/com.rti.dds.target/os/linux/x86}`
or substitute "x86_64" for "x86" if you have 64-bit.
or substitute `x86_64` for `x86` if you have 64-bit.
* Click the 'Run' button and the Control Station should start.
* If you have errors when starting the Control Station, often they can be solved by going to the “Run Configurations”->Plug-ins Tab and clicking the “Add Required Plug-ins” button that is all the way on the right (sometime the button is hidden if the window is too small). Also try clicking “Validate Plug-ins” and that will usually tell you what plug-ins need to be included that aren’t included.

## Using the GDS Simulator ##

The GDS simulator is a standalone Eclipse application that sends and receives (some)
The GDS Astrobee simulator is a standalone Eclipse application that sends and receives (some)

messages as the Astrobee would and can be used for very basic debugging. It does not do
any kind of physics simulation of robot motion or simulate realistic camera views.
If you need a software simulator which does run the same code that runs on the robot, one
is included in the Astrobee Robot Software available [here](https://github.com/nasa/astrobee)

To run the GDS Simulator:
* Go to the plugin gov.nasa.arc.simulator.freeflyer. In the src folder, right click on FreeFlyer.java and run as a Java Application.
* In Run Configurations Environment tab, add DYLD_LIBRARY_PATH or PATH as described above.
* In Run Configurations Arguments tab, add "-agent Honey" or whatever name you want the simulator to have.
* Run the Control Station with `-peer <ip of simulator>`
To run the GDS Astrobee Simulator:
* Go to the plugin `gov.nasa.arc.simulator.freeflyer`. In the `src` folder, right click on `FreeFlyer.java` and run as a
Java Application.
* In Run Configurations Environment tab, add `DYLD_LIBRARY_PATH` or `PATH` as described above.
* In Run Configurations Arguments tab, add `-agent Honey` or whatever name you want the simulator to have.
* If simulator is on a different computer from the Control Station, run the Control Station with
`-peer <ip of simulator>`

There is also a GDS Dock Simulator. It sends Dock messages to the Control Station, and it can spawn a GDS Astrobee
simulator.

To run the GDS Dock Simulator:
- Go to the plugin `gov.nasa.arc.simulator.smartdock`. In the `src` folder, right click on `SmartDock.java` and run as a
Java Application.
* In Run Configurations Environment tab, add `DYLD_LIBRARY_PATH` or `PATH` as described above.
* In Run Configurations Arguments tab, add `-berth1 Honey` or whatever name you want the simulator to have. Alternatively,
you can run with `-berth2 <robot>`. If nothing is specified for a berth, it will be reported as Vacant. You can
start a GDS Astrobee simulator by sending the Dock simulator a wake command for an occupied berth, but the Dock
simulator cannot spawn two Astrobee simulators.
* If simulator is on a different computer from the Control Station, run the Control Station with
`-peer <ip of simulator>`

140 changes: 99 additions & 41 deletions docs/USAGE.md

Large diffs are not rendered by default.

542 changes: 542 additions & 0 deletions docs/config_files.md

Large diffs are not rendered by default.

102 changes: 75 additions & 27 deletions docs/debugging_tab.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,78 +5,126 @@ engineers to send low-level commands.

## Debugging Tab

### 3D View

Shows world model and Astrobees. Code in `gov.nasa.arc.verve.freeflyer.workbench.parts.liveTelemetryView.Debug3dView`.

### Config Commander

The <b>Config Commander subtab</b> automatically generates widgets to send any command listed in the CommandConfig
The <b>Config Commander subtab</b> (`gov.nasa.arc.verve.freeflyer.workbench.parts.engineering.ConfigCommanderPart`)
automatically generates widgets to send any command listed in the `CommandConfig`
message sent by the Astrobee. Select the Astrobee, and then select the subsystem to see the command widgets displayed.
There is no error checking for commands sent through the Config Commander.

### Top Bar and Standard Controls

Allows user to grab control from the debug tab.
Code is at `gov.nasa.arc.verve.freeflyer.workbench.parts.standard.TopBar` and
`gov.nasa.arc.verve.freeflyer.workbench.parts.advanced.JustStandardControls`

### Discovered DDS Info

The <b>Discovered DDS Info subtab</b> lists raw DDS information to help debug DDS connections. Click Topics to list the
The <b>Discovered DDS Info subtab</b> (`gov.nasa.rapid.v2.ui.e4.parts.DiscoveredDdsInfoPart`) lists raw DDS
information to help debug DDS connections. Click Topics to list the
topics published in each partition on the Discovered Partitions panel. Click Refresh to refresh the information (note,
refreshing will add new information but it won't delete stale information).

### Received Topics

Click the arrow to the right of the participant/partition to see the list of topics it publishes. Check the checkbox to
Code in `gov.nasa.arc.verve.freeflyer.workbench.parts.engineering.ReceivedTopicsPart`. Click the arrow to the right
of the participant/partition to see the list of topics it publishes. Check the checkbox to
the left of the topic to see the latest message on that topic in the Raw Rapid Telemetry subtab. Click Refresh to
refresh the list of topics.

### Raw Rapid Telemetry

Code in `gov.nasa.arc.verve.freeflyer.workbench.parts.engineering.RawRapidTelemetryPart`.
This subtab displays the latest messages on the topics that are checked in the Received Topics subtab.

## Advanced Tab

### Health subtab

This subtab lists the state information published by Astrobee. Note that Raw Mobility State "Docking" with Sub Mobility
This subtab (`gov.nasa.arc.verve.freeflyer.workbench.parts.standard.DetailedHealthAndStatusPart`) lists the
state information published by Astrobee.

Note that Raw Mobility State "Docking" with Sub Mobility
State "0" is "Docked", and Raw Mobility State "Perching" with Sub Mobility State "0" is "Perched". That is to say,
there are no states named "Docked" or "Perched", only "Docking 0" and "Perching 0".

### Faults subtab

The Faults subtab lists all of the faults that Astrobee publishes in its FaultConfig. When the robot throws a fault,
that fault is listed under "Triggered" in the table.
The Faults subtab (`gov.nasa.arc.verve.freeflyer.workbench.parts.advanced.FaultsPart`) lists all of the faults that
Astrobee publishes in its FaultConfig. When the robot throws a fault, that fault is listed under "Triggered"
in the table.

### Data to GDS 2
Use this subtab to set the frequency at which Astrobee sends telemetry to the Control Station. You can also
use this tab to configure the cameras on Astrobee, and start or stop them from streaming images. (The Control
Station is also called "GDS", for "Ground Data System".)
Use this subtab (`gov.nasa.arc.verve.freeflyer.workbench.parts.advanced.DataToGdsPart2`) to set the frequency
at which Astrobee sends telemetry to the Control Station (using the `SETTINGS_METHOD_SET_TELEMETRY_RATE`
command). You can also use this tab to configure the cameras on Astrobee (via `SETTINGS_METHOD_SET_CAMERA`),
and start or stop them from streaming images (via `SETTINGS_METHOD_SET_CAMERA_STREAMING`)

(About the name of the tab, the Control Station is also called "GDS", for "Ground Data System".)

### Power State

This subtab displays the information from EPS message.

### Standard Controls and Operating Limits

Use this subtab to Grab Control or Stop (same as Station Keep on the other tabs) the Astrobee. The Send Zones button
sends to the robot the keepin and keepout zones that are used by this Control Station, overwriting the keepin and keepout
zones originally on the robot. Idle propulsion turns off the propulsion units. To set the Operating Limits, select a
named configuration in the dropdown and click Configure Data.
This subtab (`gov.nasa.arc.verve.freeflyer.workbench.parts.advanced.EpsPart`) displays the information from the
EpsConfig and EpsState messages.

### Standard Controls

Use this subtab (`gov.nasa.arc.verve.freeflyer.workbench.parts.standard.StandardControls`, created by the
`OperatingLimitsPart`) to Grab Control
or Stop (same as Station Keep on the other tabs) the Astrobee. The Send Zones button uses the
`SendZonesManager` to send the keepin and keepout zones in the current `{world}` folder to the robot. The zones
are first concatenated into one file, and the file is sent as a Compressed file on topic
`astrobee_compressed_file-zones`. When the `SendZonesManager` receives a `CompressedFileAck`, it sends
`SETTINGS_METHOD_SET_ZONES`. The set zones command overwrites the keepin and keepout zones originally on
the robot.

Idle propulsion turns off the propulsion units by sending `MOBILITY_METHOD_IDLE_PROPULSION`.

### Operating Limits

Code is in `gov.nasa.arc.verve.freeflyer.workbench.parts.advanced.OperatingLimitsPart`; actually, the StandardControls
are created in this class. To set the Operating
Limits, select a named configuration in the dropdown, which is populated by `OperatingLimitsConfigurations.json`.
Then click Configure Data, which sends `SETTINGS_METHOD_SET_OPERATING_LIMITS` with the appropriate parameters.

## Advanced 2 Tab

### Component States

This subtab displays the content of the ComponentState message.
This subtab (`gov.nasa.arc.verve.freeflyer.workbench.parts.advanced.ComponentsPart`) displays the content
from the ComponentConfig and ComponentState message. For each component, it displays whether or not the component
is present. If it is present, it displays if it is powered, its temperature and its current draw.

### Data To Disk

This subtab displays the ROS Topics the robot can log, and which topics it is logging
This subtab (`gov.nasa.arc.verve.freeflyer.workbench.parts.advanced.DataToDiskPart`) displays the ROS Topics the
robot can log (from the DataTopicsList message), and which topics it is logging (from the DataToDiskState message).

To change which rostopics the Astrobee is logging, select a configuration file from the dropdown and click Configure
Data. You can also send commands to start and stop downloading data, and to clear data, with the labeled buttons.

To change which rostopics the Astrobee is logging, select a configuration file from the dropdown. The dropdown is
populated with the names of the files in the DataToDisk folder (see [Config Files](docs/config_files.md)). When you
click Configure Data, the CompressedFilePublisher compresses and sends the selected json file on topic
`astrobee_compressed_file-data_to_disk`. When the DataToDiskPart receives the CompressedFileAck, it sends
`DATA_METHOD_SET_DATA_TO_DISK`.

You can also send commands to start (`DATA_METHOD_DOWNLOAD_DATA`) and stop (`DATA_METHOD_STOP_DOWNLOAD`)
downloading data, and to clear data (`DATA_METHOD_CLEAR_DATA`) with the labeled buttons.

### Standard Controls

Use this subtab to Grab Control or Stop (same as Station Keep on the other tabs) the Astrobee. The Send Zones button
sends to the robot the keepin and keepout zones that are used by this Control Station, overwriting the keepin and keepout
zones originally on the robot. Idle propulsion turns off the propulsion units. The No-Op and Wipe High Level Processor
buttons are self-explanatory. The table displays the content of the CommState message (CommState.idl)
This subtab (`gov.nasa.arc.verve.freeflyer.workbench.parts.standard.AdminControlPanel`) contains the same Standard
Controls listed above. In addition, the No-Op and Wipe High Level Processor buttons send `ADMIN_METHOD_NOOP` and
`ADMIN_METHOD_WIPE_HLP`, respectively.

The table displays the content of the CommState message.

### Inertia Properties

This subtab displays the contents of the Inertial Properties message (InertialProperties.idl). To change the inertia
properties on the robot, select an inertia configuration from the dropdown and click Configure Inertia.
This subtab (`gov.nasa.arc.verve.freeflyer.workbench.parts.advanced.InertiaPart`) displays the contents of the
InertialProperties message. To change the inertia properties on the robot, select an inertia configuration
from the dropdown that is populated by `InertiaConfigurations.json`. Click Configure Inertia, which sends
`SETTINGS_METHOD_SET_INERTIA` with the appropriate parameters.
Loading

0 comments on commit 9931313

Please sign in to comment.