Skip to content

Commit

Permalink
Merge pull request #684 from nasa/develop
Browse files Browse the repository at this point in the history
Merge Develop into Master
  • Loading branch information
marinagmoreira authored Feb 17, 2023
2 parents aa1fa52 + 90b6ba5 commit c46f8b1
Show file tree
Hide file tree
Showing 899 changed files with 2,167 additions and 98,636 deletions.
2 changes: 1 addition & 1 deletion .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -40,5 +40,5 @@
"zachflower.uncrustify"
],
"workspaceMount": "source=${localWorkspaceFolder},target=/src/astrobee/src,type=bind",
"workspaceFolder": "/workspace"
"workspaceFolder": "/src/astrobee/src"
}
6 changes: 3 additions & 3 deletions .github/workflows/ci_pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
runs-on: ubuntu-20.04

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
fetch-depth: 0

Expand All @@ -28,7 +28,7 @@ jobs:
runs-on: ubuntu-20.04

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
fetch-depth: 0

Expand All @@ -44,7 +44,7 @@ jobs:
runs-on: ubuntu-20.04

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
fetch-depth: 0

Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/ci_push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-20.04

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3

- name: Checkout submodule
run: git submodule update --init --depth 1 description/media
Expand All @@ -29,7 +29,7 @@ jobs:
runs-on: ubuntu-20.04

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3

- name: Checkout submodule
run: git submodule update --init --depth 1 description/media
Expand All @@ -47,7 +47,7 @@ jobs:
runs-on: ubuntu-20.04

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3

- name: Checkout submodule
run: git submodule update --init --depth 1 description/media
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/ci_release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-20.04

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3

- name: Checkout submodule
run: git submodule update --init --depth 1 description/media
Expand All @@ -36,7 +36,7 @@ jobs:
runs-on: ubuntu-20.04

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3

- name: Checkout submodule
run: git submodule update --init --depth 1 description/media
Expand All @@ -61,7 +61,7 @@ jobs:
runs-on: ubuntu-20.04

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3

- name: Checkout submodule
run: git submodule update --init --depth 1 description/media
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/docker_push_latest_base.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
runs-on: ubuntu-20.04

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3

- name: Checkout submodule
run: git submodule update --init --depth 1 description/media
Expand All @@ -31,7 +31,7 @@ jobs:
runs-on: ubuntu-20.04

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3

- name: Checkout submodule
run: git submodule update --init --depth 1 description/media
Expand All @@ -49,7 +49,7 @@ jobs:
runs-on: ubuntu-20.04

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3

- name: Checkout submodule
run: git submodule update --init --depth 1 description/media
Expand Down
88 changes: 69 additions & 19 deletions .github/workflows/docs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ name: Build and Push Documentation to gh-pages Branch

on:
push:
branches: ['develop']
branches: ['develop', 'master', 'ros2']
workflow_dispatch:

jobs:
Expand All @@ -13,34 +13,84 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
path: repo/
- name: Checkout gh-pages
uses: actions/checkout@v2
with:
path: docs/
ref: gh-pages

- 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
- name: Checkout gh-pages
uses: actions/checkout@v3
with:
path: gh-pages/
ref: gh-pages

- name: Create/replace documentation for the current branch
run: |
(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
set -x
export BRANCH=$(cd repo && git branch --show-current)
# Make gh-pages checkout an orphan commit so we don't keep useless history.
(cd gh-pages && git checkout --orphan fresh)
# Install generated docs to a version folder based on branch name.
(cd gh-pages && git rm -rf --ignore-unmatch "v/$BRANCH")
mkdir -p gh-pages/v/
docker cp $(docker create --rm astrobee:documentation):/repo/doc/html "gh-pages/v/$BRANCH"
(cd gh-pages && git add --all "v/$BRANCH")
if [ "$BRANCH" == "develop" ]; then
# Update the few files at root level (mostly redirects)
(cd gh-pages && git rm -f --ignore-unmatch index.html documentation.html README.md 404.html .nojekyll)
cp repo/doc/documentation.html gh-pages/index.html
cp repo/doc/documentation.html gh-pages/documentation.html
cp repo/doc/README.md gh-pages/
cp repo/doc/404.html gh-pages/
touch gh-pages/.nojekyll
cp repo/doc/style/doc_version_select.js gh-pages/
(cd gh-pages && git add index.html documentation.html README.md 404.html .nojekyll doc_version_select.js)
# Set up HTML redirect to generated docs in the legacy path to
# avoid broken URL references
(cd gh-pages && git rm -rf --ignore-unmatch html)
python repo/doc/scripts/copy_html_link.py -v gh-pages/v/develop gh-pages/html
(cd gh-pages && git add --all html)
fi
# If the commit is tagged, copy generated docs to a version
# folder based on the tag. Copy rather than symlink so the tag
# folder will remain valid later when the branch folder is
# updated. Note: If you want to manually remove an obsolete docs
# version, use git to check out the gh-pages branch, remove the
# relevant folder, and push back to origin. Also, this action
# only triggers when the branch is pushed, and it detects only
# the tags that are present at that time. So you should either
# (1) push the branch and its tag in the same push call
# (easiest), or (2) manually trigger the CI workflow to run on
# the relevant branch again, after it has been tagged.
(cd repo && git fetch origin --tags)
for tag in $(cd repo && git tag --points-at HEAD | xargs echo); do
(cd gh-pages && git rm -rf --ignore-unmatch "v/$tag")
cp -r "gh-pages/v/$BRANCH" "gh-pages/v/$tag"
(cd gh-pages && git add --all "v/$tag")
done
# Auto-detect which docs versions are available. The script here
# has additional logic to ensure that develop, master, and ros2
# are at the beginning of the list if they are present.
all_versions=$(ls "gh-pages/v/" | sort | perl -e '@dirs = <STDIN>; chomp @dirs; %dirs_hash = map { $_ => 1 } @dirs; @head = grep { exists($dirs_hash{$_}) } ("develop", "master", "ros2"); %head_hash = map { $_ => 1 } @head; @tail = grep { !exists($head_hash{$_}) } @dirs; @versions = (@head, @tail); print "var allVersions = [\"", join("\", \"",@versions), "\"];\n";')
# Replace versions line specified in doc_version_select.js.
perl -i -ple "\$_ = '$all_versions' if /^var allVersions/;" gh-pages/doc_version_select.js
(cd gh-pages && git add doc_version_select.js)
- 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`
cd gh-pages
EMAIL=`git show -s --format='%ae' gh-pages`
NAME=`git show -s --format='%an' gh-pages`
git config user.email "$EMAIL"
git config user.name "$NAME"
{ git commit -m "Automatic update for $GITHUB_SHA." || true; }
git push origin gh-pages
git push -f origin HEAD:gh-pages
4 changes: 2 additions & 2 deletions .github/workflows/lint.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,15 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Check repo for lint errors
run: ./scripts/git/cpplint_repo.py .

lint_check_python:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Install linters
run: |
pip install click==8.0.1 black==22.1.0 isort==5.10.1
Expand Down
24 changes: 19 additions & 5 deletions INSTALL.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,31 @@

Ubuntu 20.04 is the preferred host OS for most Astrobee developers to use.

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.
Here are the available host OS options with development roadmap details (use 64-bit PC (AMD64) desktop image):
- [Ubuntu 20.04](http://releases.ubuntu.com/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](http://releases.ubuntu.com/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](http://releases.ubuntu.com/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.
(Ubuntu 22.04 not supported)

Graphical interfaces will perform best if your host OS is running natively (not in a virtual machine).

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.

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.

For users installing Astrobee on a Virtual Machine with the intent on running simulations:
VMWare and VirtualBox have been both tested to work well; Allocate an appropriate amount of RAM, number
of processors and video memory given your total computer capabilities; If graphics acceleration is
available on the settings, turn it on.
For reference (not required), an example of a setup capable of running the
simulation smoothly has 8GB RAM, 4 Processors and 128MB Video memory.

*Note: You will need 4 GBs of RAM to compile the software. If you don't have
that much RAM available, please use swap space.*

*Note: Please ensure you install the 64-bit PC (AMD64) version of Ubuntu (desktop for simulation and
development). We do not support running Astrobee Robot Software on 32-bit systems.*

## Option 1: Install inside a Docker container

1. Make sure you have Docker installed in your system by following:
Expand All @@ -39,7 +53,7 @@ There is also experimental support for using the Visual Studio Code Dev Containe

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

## Option 2: Install in your native OS
## Option 2: Install in your native OS / Virtual Machine

The native installation instructions below walk you through manually running the same steps that are fully automated in a Docker installation.

Expand Down
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.17.0

* Full compatibility and debians built for Ubuntu 20
* Deleted all simulink autocode for ctl and fam

## Release 0.16.7

* Remove simulink auto-generated code
Expand Down
10 changes: 3 additions & 7 deletions astrobee.doxyfile
Original file line number Diff line number Diff line change
Expand Up @@ -39,13 +39,13 @@ PROJECT_NAME = "NASA Astrobee Robot Software"
# control system is used.


PROJECT_NUMBER = 0.16.7
PROJECT_NUMBER = 0.17.0

# 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
# quick idea about the purpose of the project. Keep the description short.

PROJECT_BRIEF = "Flight software for the Astrobee robot operating inside the International Space Station."
PROJECT_BRIEF = "Flight software for the Astrobee robots operating inside the International Space Station."

# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
# in the documentation. The maximum height of the logo should not exceed 55
Expand Down Expand Up @@ -848,7 +848,6 @@ EXCLUDE =
# build \
# armhf \
# cmake \
# gnc/matlab/code_generation \
# submodules

# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
Expand All @@ -865,10 +864,7 @@ EXCLUDE_SYMLINKS = YES
# Note that the wildcards are matched against the file with absolute path, so to
# exclude all test directories for example use the pattern */test/*

EXCLUDE_PATTERNS = */external/*/* \
*/tools/visualeyez/matlab/* \
*/gnc/matlab/code_generation/* \
*/hardware/pmc_actuator/tools/*.csv \
EXCLUDE_PATTERNS = */hardware/pmc_actuator/tools/*.csv \
*/diagrams/nodes_helper.puml \
*/diagrams/nodes.puml \
*/diagrams/colors.puml \
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.7)
set(ASTROBEE_VERSION 0.17.0)

## Compile as C++14, supported in ROS Kinetic and newer
add_compile_options(-std=c++14)
Expand Down
Loading

0 comments on commit c46f8b1

Please sign in to comment.