Skip to content

Commit

Permalink
Release v0.10.2.
Browse files Browse the repository at this point in the history
* Perching behavior implemented
* Localization sparse mapping timeout increased to 10 minutes
* Already there tolerances decreased to allow for smaller moves
* Other minor bug fixes/software improvements
  • Loading branch information
bcoltin committed Oct 24, 2019
1 parent 9ba0ef3 commit 70e3df0
Show file tree
Hide file tree
Showing 408 changed files with 30,510 additions and 6,425 deletions.
6 changes: 3 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
cmake_minimum_required(VERSION 3.0)
project(Astrobee)

set(ASTROBEE_VERSION 0.8.0)
set(ASTROBEE_VERSION 0.10.2)

if ( "${CMAKE_VERSION}" VERSION_GREATER 3.0.0 )
cmake_policy(SET CMP0045 OLD)
Expand Down Expand Up @@ -226,8 +226,8 @@ if (NOT USE_CTC) # pkg-config needs extra work to be used for cross compile
endif (YAMLCPP_FOUND)
endif (NOT USE_CTC)

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wno-unused-local-typedefs -Werror")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-unused-local-typedefs -Werror")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wno-unused-local-typedefs -Werror -Wno-packed-bitfield-compat")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-unused-local-typedefs -Werror -Wno-packed-bitfield-compat")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--no-undefined")
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined")

Expand Down
75 changes: 57 additions & 18 deletions NASA_INSTALL.md
Original file line number Diff line number Diff line change
@@ -1,28 +1,55 @@
s# Usage instructions for NASA users
# Usage instructions for NASA users

Install the 64-bit version of [Ubuntu 16.04](http://releases.ubuntu.com/16.04)
on a host machine, and make sure that you can checkout and build code.
If you are using a virtual machine, please use VMware. Virtualbox doesn't
support some of our Gazebo plugins.
Install the 64-bit version of
[Ubuntu16.04](http://releases.ubuntu.com/16.04) on a host machine, and
make sure that you can checkout and build code. If you are using a
virtual machine, please use VMware. Virtualbox doesn't support some of
our Gazebo plugins.

sudo apt-get install build-essential git

*Note: Please ensure you install the 64-bit version of Ubuntu. We do not
support running Astrobee Robot Software on 32-bit systems.*

## Machine setup
## Computer setup

#### General notes before running the scripts below
### Username

If you are using a VM with a username that does not match your NDC username,
please configure the following variable:

export NDC_USERNAME=your_ndc_username


### Access to the Astrobee Debian server

The custom debian packages are currently distributed by the
`astrobee.ndc.nasa.gov server`. This server is currently on the ARC TI
private network. It is *critical* to be able to reach this server to
install the pre-built custom debian. If none of the solutions below
allow you to reach `astrobee.ndc.nasa.gov`, you can use the
instructions on how to build the Debian dependencies manually
following the INSTALL.md instructions (Dependencies section).

#### If on the ARC TI private network

This is the typical case for all wired computers in ARC TI, and simplifies
your life greatly.

Verify that you are in this situation with the command below should succeed
(remove the Release.gpg file after being fetched).

wget -v http://astrobee.ndc.nasa.gov/software/dists/xenial/Release.gpg

Before running the scripts in `scripts/setup` below, set this variable:

export NO_TUNNEL=1

#### If not on the ARC TI private network

If you are outside the NASA ARC private network, there are two options to
reach `astrobee.ndc.nasa.gov`:

- The custom debian packages are currently stored on the "volar" server. So you
need to have credentials on `volar` to run these scripts.
- If you are using a VM with a username that does not match your NDC username,
you have two options:
1. Set correctly the environment variable `NDC_USERNAME` with your NASA NDC
username.
2. Or set a ssh config that specify the right username for volar.
- If you are outside the NASA ARC private network, there are two options to get
to volar:
1. Use VPN to act like if you were inside the ARC TI private network and
obtain the correct kerberos credentials inside the VM with the following
command (note the capitalization):
Expand All @@ -31,7 +58,17 @@ kinit [email protected]`
```
2. setup your `.ssh/config` to do ssh forwarding. A tutorial on this method
is available at: https://babelfish.arc.nasa.gov/trac/freeflyer/wiki/SSHSetup
- These notes apply to `add_local_repository.sh` and `make_xenial.sh`

For either solution, please verify that you can SSH to `m.ndc.nasa.gov` without
entering your password (`m` is used to tunnel to `astrobee.ndc.nasa.gov`):

ssh $[email protected]

The command should succeed without entering your password. Once this is verified,
exit this session on `m` with <ctrl>+D.

- These notes apply to `install_desktop_16.04_packages.sh` and `make_xenial.sh`


### Checkout the project source code

Expand All @@ -42,9 +79,11 @@ At this point you need to decide where you'd like to put the source code

First, clone the flight software repository:

git clone --recursive https://$USER@babelfish.arc.nasa.gov/git/freeflyer \
git clone --recursive https://$NDC_USERNAME@babelfish.arc.nasa.gov/git/freeflyer \
--branch develop $SOURCE_PATH

(Note: re-enter your username and password for every submodules that are cloned)

### Dependencies

Next, install all required dependencies:
Expand Down
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
## About

<p>
<img src="doc/images/astrobee.png" srcset="../images/astrobee.png 1x" title="Astrobee" align="right" style="display: inline"/>
<img src="doc/images/astrobee.png" srcset="../images/astrobee.png 1x"
title="Astrobee" align="right" style="display: inline"/>
Astrobee is a free-flying robot designed to operate as a payload inside
the International Space Station (ISS). The Astrobee Robot Software consists of
embedded (on-board) software, supporting tools and a simulator. The Astrobee
Expand Down Expand Up @@ -41,12 +42,13 @@ If you do, please see the [NASA usage instructions](NASA_INSTALL.md).

The Astrobee Robot Software is open source, and we welcome contributions
from the public. However, for us to merge any pull requests, we must request
that contributors sign and submit a [Contributor License Agreement](https://www.nasa.gov/sites/default/files/atoms/files/astrobee_individual_contributor_license_agreement.pdf)
that contributors sign and submit a
[Contributor License Agreement](https://www.nasa.gov/sites/default/files/atoms/files/astrobee_individual_contributor_license_agreement.pdf)
due to NASA legal requirements. Thank you for your understanding.

## Documentation

For familiraztion with the Asrobee project, it is recommended to read some
For familiarization with the Astrobee project, it is recommended to read some
background papers:

#### Astrobee Software Concepts
Expand All @@ -70,12 +72,11 @@ https://www.nasa.gov/sites/default/files/atoms/files/bualat_spaceops_2018_paper.
To generate the Astrobee documentation, run the following command after checking
out the code:

doxygen freeflyer.doxyfile
cd doc/diagrams && make docs

The documentation will be generated in the doc/html folder. Open the index.html
to get to the main page of the documentation.


## Guest Science

If you are interested in guest science, please do one of the following for more
Expand Down Expand Up @@ -104,4 +105,3 @@ Unless required by applicable law or agreed to in writing, software distributed
under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, either express or implied. See the License for the
specific language governing permissions and limitations under the License.

54 changes: 54 additions & 0 deletions RELEASE.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,59 @@
# Astrobee Robot Software v1

## Release 0.10.2

* Perching behavior implemented
* Localization sparse mapping timeout increased to 10 minutes
* Already there tolerances decreased to allow for smaller moves
* Other minor bug fixes/software improvements

## Release 0.10.1

* Removed the new signal lights nodes from launch

## Release 0.10.0

* New control scheme for some commands
- Independant control of camera streaming/recording parameters
- Can start/stop recording data independantly of profile selection
- Required minor IDL changes
* Perching Arm driver functional with latest firmware
* Support for many more commands in plan to allow easy "scripting"
* Localization
- Separated tunable minimal feature count for ML versus AR
- Tuned EKF for better stability
- Fixes in localization_manager behavior
* Mapping
- Prune "less" the features in the map in order to improve the search
restults

## Release 0.9.3

* Many localization improvements making the EKF much more stable and resilient
to loss of mapped landmarks features.
- Improved tools to analyze localization bags
- Fixed bug in two places where the noise computation was not multiplied by
the focal length
- Changed the selection of optical flow features to pass a better subset
to the EKF
- Tuned lot of the EFK parameters
* Added nodes to check the time synchronization between processors (with
associated logging and fault generation)
* Re-positioned the dock location on ISS from the mapping activity.

## Release 0.9.2

* Drop bad images from camera.

## Release 0.9.1

* Honor "referenceFrame" for simpleMove6DOF commands (allows relative motion)
* Status video/streaming LEDs controlled by the Executive
* Default bagger profile tuned to include more core topics
* Agent state publish current world information
* Camera driver double buffer fix
* As usual, other bug fixes too

## Release 0.8.0

* Fixed simulator jump under some conditions on motion start
Expand Down
93 changes: 93 additions & 0 deletions astrobee/config/behaviors/light_flow.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
-- Copyright (c) 2017, United States Government, as represented by the
-- Administrator of the National Aeronautics and Space Administration.
--
-- All rights reserved.
--
-- The Astrobee platform is licensed under the Apache License, Version 2.0
-- (the "License"); you may not use this file except in compliance with the
-- License. You may obtain a copy of the License at
--
-- http://www.apache.org/licenses/LICENSE-2.0
--
-- Unless required by applicable law or agreed to in writing, software
-- distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-- WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-- License for the specific language governing permissions and limitations
-- under the License.

folder = "/opt/astrobee/config/behaviors/light_flow/"

states = {
{
id = "VIDEO_ON",
file = "moving.json"
},
{
id = "VIDEO_OFF",
file = "moving.json"
},
{
id = "SUCCESS",
file = "success.json"
},
{
id = "ENTER_HATCHWAY",
file = "moving.json"
},
{
id = "UNDOCK",
file = "success.json"
},
{
id = "UNPERCH",
file = "moving.json"
},
{
id = "MOTION_IMPAIRED",
file = "failiure.json"
},
{
id = "THRUST_FORWARD",
file = "moving.json"
},
{
id = "THRUST_AFT",
file = "moving.json"
},
{
id = "TURN_RIGHT",
file = "turning_left.json"
},
{
id = "TURN_LEFT",
file = "turning_left.json"
},
{
id = "TURN_UP",
file = "turning_up.json"
},
{
id = "TURN_DOWN",
file = "turning_down.json"
},
{
id = "CLEAR",
file = "turning_down.json"
},
{
id = "SLEEP",
file = "hibernate.json"
},
{
id = "WAKE",
file = "power_on.json"
},
{
id = "STOP_ALL_LIGHTS",
file = "stop_all_lights.json"
},
{
id = "CHARGING",
file = "charging.json"
}
}
39 changes: 39 additions & 0 deletions astrobee/config/behaviors/light_flow/audio_recording.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
{
"procedure": [
[
"Procedure",
"audio1",
[
"Define",
"$breath",
["ListSequence", ["BasicSequence", "#fff", 0.0, 10, "#fff"]]
],
["Define", "$rptBreath", ["RepeatSequence", "$breath", 10.0]],
["Define", "$pointLights", ["Domain", ["Interval", 27, 2]]],
["Return", ["BasicAnimation", "$pointLights", "$rptBreath"]]
],

[
"Procedure",
"audio2",
[
"Define",
"$breath",
["ListSequence", ["BasicSequence", "#fff", 0.0, 10, "#fff"]]
],
["Define", "$rptBreath", ["RepeatSequence", "$breath", 10.0]],
["Define", "$pointLights", ["Domain", ["Interval", 29, 2]]],
["Return", ["BasicAnimation", "$pointLights", "$rptBreath"]]
]
],
"state": [
"ExecState",
1.0,
30.0,
true,
[
["Call", "right", "audio1", "#fff", 1.0],
["Call", "left", "audio2", "#fff", 1.0]
]
]
}
Loading

0 comments on commit 70e3df0

Please sign in to comment.