Skip to content

Commit c46f8b1

Browse files
Merge pull request #684 from nasa/develop
Merge Develop into Master
2 parents aa1fa52 + 90b6ba5 commit c46f8b1

File tree

899 files changed

+2167
-98636
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

899 files changed

+2167
-98636
lines changed

.devcontainer/devcontainer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,5 +40,5 @@
4040
"zachflower.uncrustify"
4141
],
4242
"workspaceMount": "source=${localWorkspaceFolder},target=/src/astrobee/src,type=bind",
43-
"workspaceFolder": "/workspace"
43+
"workspaceFolder": "/src/astrobee/src"
4444
}

.github/workflows/ci_pr.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
runs-on: ubuntu-20.04
1313

1414
steps:
15-
- uses: actions/checkout@v2
15+
- uses: actions/checkout@v3
1616
with:
1717
fetch-depth: 0
1818

@@ -28,7 +28,7 @@ jobs:
2828
runs-on: ubuntu-20.04
2929

3030
steps:
31-
- uses: actions/checkout@v2
31+
- uses: actions/checkout@v3
3232
with:
3333
fetch-depth: 0
3434

@@ -44,7 +44,7 @@ jobs:
4444
runs-on: ubuntu-20.04
4545

4646
steps:
47-
- uses: actions/checkout@v2
47+
- uses: actions/checkout@v3
4848
with:
4949
fetch-depth: 0
5050

.github/workflows/ci_push.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
runs-on: ubuntu-20.04
1212

1313
steps:
14-
- uses: actions/checkout@v2
14+
- uses: actions/checkout@v3
1515

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

3131
steps:
32-
- uses: actions/checkout@v2
32+
- uses: actions/checkout@v3
3333

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

4949
steps:
50-
- uses: actions/checkout@v2
50+
- uses: actions/checkout@v3
5151

5252
- name: Checkout submodule
5353
run: git submodule update --init --depth 1 description/media

.github/workflows/ci_release.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
runs-on: ubuntu-20.04
1212

1313
steps:
14-
- uses: actions/checkout@v2
14+
- uses: actions/checkout@v3
1515

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

3838
steps:
39-
- uses: actions/checkout@v2
39+
- uses: actions/checkout@v3
4040

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

6363
steps:
64-
- uses: actions/checkout@v2
64+
- uses: actions/checkout@v3
6565

6666
- name: Checkout submodule
6767
run: git submodule update --init --depth 1 description/media

.github/workflows/docker_push_latest_base.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
runs-on: ubuntu-20.04
1414

1515
steps:
16-
- uses: actions/checkout@v2
16+
- uses: actions/checkout@v3
1717

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

3333
steps:
34-
- uses: actions/checkout@v2
34+
- uses: actions/checkout@v3
3535

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

5151
steps:
52-
- uses: actions/checkout@v2
52+
- uses: actions/checkout@v3
5353

5454
- name: Checkout submodule
5555
run: git submodule update --init --depth 1 description/media

.github/workflows/docs.yaml

Lines changed: 69 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ name: Build and Push Documentation to gh-pages Branch
44

55
on:
66
push:
7-
branches: ['develop']
7+
branches: ['develop', 'master', 'ros2']
88
workflow_dispatch:
99

1010
jobs:
@@ -13,34 +13,84 @@ jobs:
1313

1414
steps:
1515
- name: Checkout
16-
uses: actions/checkout@v2
16+
uses: actions/checkout@v3
1717
with:
1818
path: repo/
19-
- name: Checkout gh-pages
20-
uses: actions/checkout@v2
21-
with:
22-
path: docs/
23-
ref: gh-pages
19+
2420
- name: Build docker image with dependencies + build docs
2521
run: docker build repo -f repo/scripts/docker/documentation.Dockerfile
2622
-t astrobee:documentation
2723

28-
- name: Replace old documentation with new
24+
- name: Checkout gh-pages
25+
uses: actions/checkout@v3
26+
with:
27+
path: gh-pages/
28+
ref: gh-pages
29+
30+
- name: Create/replace documentation for the current branch
2931
run: |
30-
(cd docs && git rm -r "*")
31-
cp repo/doc/documentation.html docs/index.html
32-
cp repo/doc/documentation.html docs/documentation.html
33-
cp repo/doc/README.md docs/README.md
34-
docker cp $(docker create --rm astrobee:documentation):/repo/doc/html docs/html
32+
set -x
33+
export BRANCH=$(cd repo && git branch --show-current)
34+
35+
# Make gh-pages checkout an orphan commit so we don't keep useless history.
36+
(cd gh-pages && git checkout --orphan fresh)
37+
38+
# Install generated docs to a version folder based on branch name.
39+
(cd gh-pages && git rm -rf --ignore-unmatch "v/$BRANCH")
40+
mkdir -p gh-pages/v/
41+
docker cp $(docker create --rm astrobee:documentation):/repo/doc/html "gh-pages/v/$BRANCH"
42+
(cd gh-pages && git add --all "v/$BRANCH")
43+
44+
if [ "$BRANCH" == "develop" ]; then
45+
# Update the few files at root level (mostly redirects)
46+
(cd gh-pages && git rm -f --ignore-unmatch index.html documentation.html README.md 404.html .nojekyll)
47+
cp repo/doc/documentation.html gh-pages/index.html
48+
cp repo/doc/documentation.html gh-pages/documentation.html
49+
cp repo/doc/README.md gh-pages/
50+
cp repo/doc/404.html gh-pages/
51+
touch gh-pages/.nojekyll
52+
cp repo/doc/style/doc_version_select.js gh-pages/
53+
(cd gh-pages && git add index.html documentation.html README.md 404.html .nojekyll doc_version_select.js)
54+
55+
# Set up HTML redirect to generated docs in the legacy path to
56+
# avoid broken URL references
57+
(cd gh-pages && git rm -rf --ignore-unmatch html)
58+
python repo/doc/scripts/copy_html_link.py -v gh-pages/v/develop gh-pages/html
59+
(cd gh-pages && git add --all html)
60+
fi
61+
62+
# If the commit is tagged, copy generated docs to a version
63+
# folder based on the tag. Copy rather than symlink so the tag
64+
# folder will remain valid later when the branch folder is
65+
# updated. Note: If you want to manually remove an obsolete docs
66+
# version, use git to check out the gh-pages branch, remove the
67+
# relevant folder, and push back to origin. Also, this action
68+
# only triggers when the branch is pushed, and it detects only
69+
# the tags that are present at that time. So you should either
70+
# (1) push the branch and its tag in the same push call
71+
# (easiest), or (2) manually trigger the CI workflow to run on
72+
# the relevant branch again, after it has been tagged.
73+
(cd repo && git fetch origin --tags)
74+
for tag in $(cd repo && git tag --points-at HEAD | xargs echo); do
75+
(cd gh-pages && git rm -rf --ignore-unmatch "v/$tag")
76+
cp -r "gh-pages/v/$BRANCH" "gh-pages/v/$tag"
77+
(cd gh-pages && git add --all "v/$tag")
78+
done
79+
80+
# Auto-detect which docs versions are available. The script here
81+
# has additional logic to ensure that develop, master, and ros2
82+
# are at the beginning of the list if they are present.
83+
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";')
84+
# Replace versions line specified in doc_version_select.js.
85+
perl -i -ple "\$_ = '$all_versions' if /^var allVersions/;" gh-pages/doc_version_select.js
86+
(cd gh-pages && git add doc_version_select.js)
3587
3688
- name: Commit and Push
3789
run: |
38-
cd docs
39-
git add index.html documentation.html README.md
40-
git add --all html/
41-
EMAIL=`git show -s --format='%ae' HEAD`
42-
NAME=`git show -s --format='%an' HEAD`
90+
cd gh-pages
91+
EMAIL=`git show -s --format='%ae' gh-pages`
92+
NAME=`git show -s --format='%an' gh-pages`
4393
git config user.email "$EMAIL"
4494
git config user.name "$NAME"
4595
{ git commit -m "Automatic update for $GITHUB_SHA." || true; }
46-
git push origin gh-pages
96+
git push -f origin HEAD:gh-pages

.github/workflows/lint.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,15 @@ jobs:
99
runs-on: ubuntu-latest
1010

1111
steps:
12-
- uses: actions/checkout@v2
12+
- uses: actions/checkout@v3
1313
- name: Check repo for lint errors
1414
run: ./scripts/git/cpplint_repo.py .
1515

1616
lint_check_python:
1717
runs-on: ubuntu-latest
1818

1919
steps:
20-
- uses: actions/checkout@v2
20+
- uses: actions/checkout@v3
2121
- name: Install linters
2222
run: |
2323
pip install click==8.0.1 black==22.1.0 isort==5.10.1

INSTALL.md

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,31 @@
44

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

7-
Here are the available host OS options with development roadmap details:
8-
- 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.
9-
- 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.
10-
- 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.
7+
Here are the available host OS options with development roadmap details (use 64-bit PC (AMD64) desktop image):
8+
- [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.
9+
- [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.
10+
- [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.
11+
(Ubuntu 22.04 not supported)
1112

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

1415
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.
1516

1617
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.
1718

19+
For users installing Astrobee on a Virtual Machine with the intent on running simulations:
20+
VMWare and VirtualBox have been both tested to work well; Allocate an appropriate amount of RAM, number
21+
of processors and video memory given your total computer capabilities; If graphics acceleration is
22+
available on the settings, turn it on.
23+
For reference (not required), an example of a setup capable of running the
24+
simulation smoothly has 8GB RAM, 4 Processors and 128MB Video memory.
25+
26+
*Note: You will need 4 GBs of RAM to compile the software. If you don't have
27+
that much RAM available, please use swap space.*
28+
29+
*Note: Please ensure you install the 64-bit PC (AMD64) version of Ubuntu (desktop for simulation and
30+
development). We do not support running Astrobee Robot Software on 32-bit systems.*
31+
1832
## Option 1: Install inside a Docker container
1933

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

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

42-
## Option 2: Install in your native OS
56+
## Option 2: Install in your native OS / Virtual Machine
4357

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

RELEASE.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# Releases
22

3+
# Release 0.17.0
4+
5+
* Full compatibility and debians built for Ubuntu 20
6+
* Deleted all simulink autocode for ctl and fam
7+
38
## Release 0.16.7
49

510
* Remove simulink auto-generated code

astrobee.doxyfile

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,13 @@ PROJECT_NAME = "NASA Astrobee Robot Software"
3939
# control system is used.
4040

4141

42-
PROJECT_NUMBER = 0.16.7
42+
PROJECT_NUMBER = 0.17.0
4343

4444
# Using the PROJECT_BRIEF tag one can provide an optional one line description
4545
# for a project that appears at the top of each page and should give viewer a
4646
# quick idea about the purpose of the project. Keep the description short.
4747

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

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

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

868-
EXCLUDE_PATTERNS = */external/*/* \
869-
*/tools/visualeyez/matlab/* \
870-
*/gnc/matlab/code_generation/* \
871-
*/hardware/pmc_actuator/tools/*.csv \
867+
EXCLUDE_PATTERNS = */hardware/pmc_actuator/tools/*.csv \
872868
*/diagrams/nodes_helper.puml \
873869
*/diagrams/nodes.puml \
874870
*/diagrams/colors.puml \

0 commit comments

Comments
 (0)