Skip to content

Commit

Permalink
Merge pull request #651 from nasa/develop
Browse files Browse the repository at this point in the history
Release 0.16.7
  • Loading branch information
marinagmoreira authored Jan 26, 2023
2 parents 271b690 + 578fed8 commit aa1fa52
Show file tree
Hide file tree
Showing 247 changed files with 6,623 additions and 2,465 deletions.
2 changes: 2 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
FROM ghcr.io/nasa/astrobee:latest-ubuntu20.04
ENV DEBIAN_FRONTEND=dialog
44 changes: 44 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
{
"dockerFile": "Dockerfile",
"build": {
"args": {
"WORKSPACE": "${containerWorkspaceFolder}"
}
},
"remoteUser": "root",
"runArgs": [
"--network=host",
"--cap-add=SYS_PTRACE",
"--security-opt=seccomp:unconfined",
"--security-opt=apparmor:unconfined",
"--volume=/tmp/.X11-unix:/tmp/.X11-unix"
],
"containerEnv": {
"DISPLAY": "${localEnv:DISPLAY}",
"LIBGL_ALWAYS_SOFTWARE": "1" // Needed for software rendering of opengl
},
// Set *default* container specific settings.json values on container create.
"settings": {
"terminal.integrated.profiles.linux": {
"zsh": {
"path": "/bin/zsh"
}
},
"terminal.integrated.defaultProfile.linux": "zsh"
},
"extensions": [
// "althack.ament-task-provider",
"DotJoshJohnson.xml",
"ms-azuretools.vscode-docker",
"ms-python.python",
"ms-vscode.cpptools",
"redhat.vscode-yaml",
"smilerobotics.urdf",
"streetsidesoftware.code-spell-checker",
"twxs.cmake",
"yzhang.markdown-all-in-one",
"zachflower.uncrustify"
],
"workspaceMount": "source=${localWorkspaceFolder},target=/src/astrobee/src,type=bind",
"workspaceFolder": "/workspace"
}
4 changes: 2 additions & 2 deletions .github/workflows/ci_pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ jobs:

build-xenial:

runs-on: ubuntu-18.04
runs-on: ubuntu-20.04

steps:
- uses: actions/checkout@v2
Expand All @@ -25,7 +25,7 @@ jobs:

build-bionic:

runs-on: ubuntu-18.04
runs-on: ubuntu-20.04

steps:
- uses: actions/checkout@v2
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/ci_push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ jobs:

build-xenial:

runs-on: ubuntu-18.04
runs-on: ubuntu-20.04

steps:
- uses: actions/checkout@v2
Expand All @@ -26,7 +26,7 @@ jobs:

build-bionic:

runs-on: ubuntu-18.04
runs-on: ubuntu-20.04

steps:
- uses: actions/checkout@v2
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/ci_release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ jobs:

build-xenial:

runs-on: ubuntu-18.04
runs-on: ubuntu-20.04

steps:
- uses: actions/checkout@v2
Expand All @@ -33,7 +33,7 @@ jobs:
build-bionic:

runs-on: ubuntu-18.04
runs-on: ubuntu-20.04

steps:
- uses: actions/checkout@v2
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/docker_push_latest_base.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:

build-xenial:

runs-on: ubuntu-18.04
runs-on: ubuntu-20.04

steps:
- uses: actions/checkout@v2
Expand All @@ -28,7 +28,7 @@ jobs:

build-bionic:

runs-on: ubuntu-18.04
runs-on: ubuntu-20.04

steps:
- uses: actions/checkout@v2
Expand Down
54 changes: 13 additions & 41 deletions .github/workflows/docs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,11 @@ name: Build and Push Documentation to gh-pages Branch
on:
push:
branches: ['develop']
workflow_dispatch:

jobs:
build_and_push_docs:
runs-on: ubuntu-18.04
runs-on: ubuntu-20.04

steps:
- name: Checkout
Expand All @@ -20,51 +21,22 @@ jobs:
with:
path: docs/
ref: gh-pages
- name: Install dependencies
run: |
sudo apt-get install -y bison
sudo apt-get install -y flex
sudo apt-get install -y graphviz
sudo apt-get install -y python-setuptools
- name: Install doxygen
run: |
wget 'https://sourceforge.net/projects/doxygen/files/rel-1.8.20/doxygen-1.8.20.src.tar.gz'
tar -zxvf doxygen-1.8.20.src.tar.gz
cd doxygen-1.8.20
mkdir build
cd build
cmake -G "Unix Makefiles" ..
make
sudo make install
- name: install xgds_planner2
run: |
sudo pip install iso8601
sudo pip install "django<2"
git clone https://github.com/geocam/geocamUtilWeb.git
cd geocamUtilWeb
sudo python setup.py install
cd ..
git clone https://github.com/xgds/xgds_planner2.git
cd xgds_planner2
sudo python setup.py install
- name: Generating command dictionary documentation
run: |
cd repo
mkdir doc/html
./scripts/build/genCommandDictionary.py astrobee/commands/freeFlyerPlanSchema.json doc/html/AstrobeeCommandDictionary.html
- name: Build Documentation
run: |
cd repo/doc/diagrams/ && make && cd ../..
doxygen astrobee.doxyfile
cd ..
- name: Build docker image with dependencies + build docs
run: docker build repo -f repo/scripts/docker/documentation.Dockerfile
-t astrobee:documentation

- name: Replace old documentation with new
run: |
[ -d docs ] || mkdir docs
[ -d docs/html ] && rm -r docs/html
cp -r repo/doc/html docs
(cd docs && git rm -r "*")
cp repo/doc/documentation.html docs/index.html
cp repo/doc/documentation.html docs/documentation.html
cp repo/doc/README.md docs/README.md
docker cp $(docker create --rm astrobee:documentation):/repo/doc/html docs/html
- name: Commit and Push
run: |
cd docs
git add index.html documentation.html README.md
git add --all html/
EMAIL=`git show -s --format='%ae' HEAD`
NAME=`git show -s --format='%an' HEAD`
Expand Down
56 changes: 31 additions & 25 deletions INSTALL.md
Original file line number Diff line number Diff line change
@@ -1,42 +1,48 @@
# Install

## Quick start using the Astrobee Docker image
## System requirements

*The following has been tested on native (non-VM) Ubuntu systems using X11 (the default). Please see [these ROS pages](http://wiki.ros.org/docker/Tutorials#Tooling_with_Docker) for more resources.*
Ubuntu 20.04 is the preferred host OS for most Astrobee developers to use.

If you just want to try out the astrobee simulator, you can use one of the Docker images in the [Github Container Registry](https://github.com/nasa/astrobee/pkgs/container/astrobee).
Here are the available host OS options with development roadmap details:
- Ubuntu 20.04: This is the preferred host OS for most Astrobee developers to use. The Astrobee Facility team is currently preparing to upgrade the robots on ISS from Ubuntu 16.04 to Ubuntu 20.04, but we aren't yet ready to announce a deployment date for that upgrade.
- Ubuntu 18.04: We are not aware of any current robot users that still need Ubuntu 18.04 support, and expect to discontinue support in the near future. New users should not select this host OS.
- Ubuntu 16.04: The Astrobee robot hardware on ISS currently runs Ubuntu 16.04. Only developers with NASA internal access can cross-compile software to run on the robot, and must use 16.04 for that. Most developers shouldn't need to work with 16.04, especially when just getting started. Support will eventually be discontinued after the robot hardware on ISS is upgraded to Ubuntu 20.04.

Make sure you have Docker installed in your Ubuntu system following the [installation instructions](https://docs.docker.com/engine/install/ubuntu/) and [post-installation steps for Linux](https://docs.docker.com/engine/install/linux-postinstall/).
Graphical interfaces will perform best if your host OS is running natively (not in a virtual machine).

For some systems (with discrete graphics cards), you may need to install [additional software](http://wiki.ros.org/docker/Tutorials/Hardware%20Acceleration).
Your host OS must have an X11 server installed if you want to use graphical applications, even if you are developing inside a Docker container (the X11 application running inside the container will forward its interface to the host's X11 server). X11 comes with Ubuntu Desktop by default.

``` bash
git clone https://github.com/nasa/astrobee.git
cd astrobee
./scripts/docker/run.sh --remote
```
If you plan to develop inside Docker, see [this page on using ROS with Docker](http://wiki.ros.org/docker/Tutorials#Tooling_with_Docker) for more details.

## Building the code natively
## Option 1: Install inside a Docker container

There are different ways to build and test the code.
1. Make sure you have Docker installed in your system by following:
- [Docker installation instructions](https://docs.docker.com/engine/install/ubuntu/)
- [Docker post-installation configuration for Linux](https://docs.docker.com/engine/install/linux-postinstall/)
- If your system has a discrete graphics card, you may need to install [additional software for hardware acceleration](http://wiki.ros.org/docker/Tutorials/Hardware%20Acceleration).

### Non-NASA users
2. Check out the Astrobee Robot Software with:
```bash
export ASTROBEE_WS=$HOME/astrobee # your choice where
git clone https://github.com/nasa/astrobee.git $ASTROBEE_WS/src
cd $ASTROBEE_WS/src
git submodule update --init --depth 1 description/media
```

If you are a non-NASA user the preferred supported method is to use Ubuntu 16 and ROS kinetic. Ubuntu 18 and ROS melodic instructions are included, but not officially supported. This method does not require VPN access.
3. Here is a quick-start command to install the Astrobee Robot Software inside a Docker container and start a simulation run:
```bash
./scripts/docker/run.sh --remote
```

\subpage install-nonNASA
There is also experimental support for using the Visual Studio Code Dev Containers plugin to access an integrated development environment running inside the Docker container!

For much more discussion, see: \subpage install-docker.

### NASA users
## Option 2: Install in your native OS

If you are a NASA user and want to install the cross-compiler for robot testing follow these instructions:
The native installation instructions below walk you through manually running the same steps that are fully automated in a Docker installation.

\subpage install-NASA
- If you are an external developer, see: \subpage install-nonNASA

## Using Docker

Docker builds are available for Ubuntu 16.04, 18.04 and 20.04.

Instructions on how to build the images natively and run the containers are in:

\subpage install-docker
- If you have NASA internal access and need to cross-compile for the robot hardware, see: \subpage install-NASA
5 changes: 5 additions & 0 deletions RELEASE.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
# Releases

## Release 0.16.7

* Remove simulink auto-generated code
* improved documentation, other tools and fixes

## Release 0.16.6

* switch map online possibility
Expand Down
2 changes: 1 addition & 1 deletion astrobee.doxyfile
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ PROJECT_NAME = "NASA Astrobee Robot Software"
# control system is used.


PROJECT_NUMBER = 0.16.6
PROJECT_NUMBER = 0.16.7

# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
Expand Down
2 changes: 1 addition & 1 deletion astrobee/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.16.6)
set(ASTROBEE_VERSION 0.16.7)

## Compile as C++14, supported in ROS Kinetic and newer
add_compile_options(-std=c++14)
Expand Down
38 changes: 38 additions & 0 deletions astrobee/commands/freeFlyerPlanSchema.json
Original file line number Diff line number Diff line change
Expand Up @@ -842,6 +842,31 @@
]
},

{
"type": "CommandSpec",
"id": "GuestScience.restartGuestScience",
"isRapidNative": false,
"notes": "This command is the equivalent to issuing the stop guest science command and then the start guest science command. Sometimes guest science APKs become unresponsive and this is a quick way to try to get it work again. <p/>See GuestScience.startGuestScience for more on the guest science life cycle.",
"availableContexts": [
"teleop"
],
"parent": "Command",
"params": [
{
"type": "ParamSpec",
"id": "apkName",
"valueType": "string",
"notes": "Which guest science APK to restart"
},
{
"type": "ParamSpec",
"id": "wait",
"valueType": "long",
"notes": "The time in seconds the guest science manager waits in between sending the stop and start commands to the guest science apk. Different apks will need different wait times to allow a complete shutdown before starting again. A 2 second wait time is recommended for simple guest science apks. For the sci_cam_image apk which has to release the science camera hardware resources, we empirically found a conservative wait time of 10 seconds worked reliably."
}
]
},

{
"type": "CommandSpec",
"id": "GuestScience.customGuestScience",
Expand Down Expand Up @@ -1238,6 +1263,19 @@
],
"parent": "Command",
"params": []
},

{
"type": "CommandSpec",
"id": "Settings.enableAstrobeeIntercomms",
"isRapidNative": false,
"notes": "Starts the Astrobee intercommunication software. This enables the robot to send and receive a subset of data to and from other Astrobees in the network. Please note, this command must be executed on each robot needed in the communication.",
"availableContext": [
"teleop",
"planner"
],
"parent": "Command",
"params": []
}
]
}
17 changes: 17 additions & 0 deletions astrobee/config/commands.config
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,19 @@ commandConfig = {
}
}
},
{
name="restartGuestScience",
parameters={
{
key="apkName",
type="RAPID_STRING"
},
{
key="wait",
type="RAPID_INT"
}
}
},
{
name="startGuestScience",
parameters={
Expand Down Expand Up @@ -332,6 +345,10 @@ commandConfig = {
},
{
commands={
{
name="enableAstrobeeIntercomms",
parameters={}
},
{
name="setCamera",
parameters={
Expand Down
Loading

0 comments on commit aa1fa52

Please sign in to comment.