Skip to content

Commit 38ea094

Browse files
authored
Merge pull request #3370 from ArmDeveloperEcosystem/main
Production update
2 parents 07755bc + a6392fd commit 38ea094

114 files changed

Lines changed: 7563 additions & 419 deletions

File tree

Some content is hidden

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

.github/workflows/deploy.yml

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,13 @@ on:
99
type: string
1010
aws-region:
1111
description: "AWS Region to use for fetching credentials"
12-
required: false
12+
required: true
1313
type: string
14-
default: "us-west-2"
1514
deploy-role-arn:
1615
description: "AWS OIDC role ARN to assume"
17-
required: false
16+
required: true
1817
type: string
19-
default: ""
2018
secrets:
21-
AWS_OIDC_ROLE:
22-
required: false
2319
HUGO_LLM_API:
2420
required: true
2521
HUGO_RAG_API:
@@ -64,20 +60,10 @@ jobs:
6460
- name: Install Post-CSS
6561
run: npm install postcss-cli
6662

67-
- name: Validate AWS OIDC role
68-
run: |
69-
if [ -z "$DEPLOY_ROLE_ARN" ] && [ -z "$AWS_OIDC_ROLE" ]; then
70-
printf '%s\n' "Either the deploy-role-arn input or AWS_OIDC_ROLE secret must be provided." >&2
71-
exit 1
72-
fi
73-
env:
74-
DEPLOY_ROLE_ARN: ${{ inputs.deploy-role-arn }}
75-
AWS_OIDC_ROLE: ${{ secrets.AWS_OIDC_ROLE }}
76-
7763
- name: AWS Github OIDC Login
7864
uses: aws-actions/configure-aws-credentials@v6
7965
with:
80-
role-to-assume: ${{ inputs.deploy-role-arn || secrets.AWS_OIDC_ROLE }}
66+
role-to-assume: ${{ inputs.deploy-role-arn }}
8167
aws-region: ${{ inputs.aws-region }}
8268

8369
# Builds arm-software-developer repo

.github/workflows/main.yml

Lines changed: 3 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# This workflow will be triggered on a push to the 'main' branch automatically or when called manually.
2-
# Upon running this workflow, the website will be built and deployed to the internal instance.
3-
name: Build and Deploy Internal Website
2+
# Upon running this workflow, the website will be built and deployed to the dev instance.
3+
name: Build and Deploy Dev Website
44

55
on:
66
# Runs on pushes to the 'main' branch
@@ -11,25 +11,8 @@ on:
1111
workflow_dispatch:
1212

1313
jobs:
14-
# Deprecated: kept temporarily while the dev deployment is validated.
15-
build_and_deploy_internal:
16-
name: Build and Deploy Internal
17-
uses: ./.github/workflows/deploy.yml
18-
permissions:
19-
id-token: write
20-
contents: read
21-
with:
22-
target: internal
23-
secrets:
24-
AWS_OIDC_ROLE: ${{ secrets.AWS_OIDC_ROLE_INTERNAL }}
25-
HUGO_LLM_API: ${{ secrets.HUGO_LLM_API }}
26-
HUGO_RAG_API: ${{ secrets.HUGO_RAG_API }}
27-
HUGO_AUDIO_API: ${{ secrets.HUGO_AUDIO_API }}
28-
HUGO_PHI_ONNX_LLM_API: ${{ secrets.HUGO_PHI_ONNX_LLM_API }}
29-
HUGO_DEV_PROG_SIGNIUP_FORM_MUNCHKIN_ID: ${{ secrets.HUGO_DEV_PROG_SIGNIUP_FORM_MUNCHKIN_ID }}
30-
HUGO_FORM_ID_FOR_PROGRAM_SIGNUP: ${{ secrets.HUGO_FORM_ID_FOR_PROGRAM_SIGNUP }}
31-
3214
build_and_deploy_dev:
15+
if: github.repository == 'ArmDeveloperEcosystem/arm-learning-paths'
3316
name: Build and Deploy Dev
3417
uses: ./.github/workflows/deploy.yml
3518
permissions:

.github/workflows/production.yml

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -11,24 +11,6 @@ on:
1111
workflow_dispatch:
1212

1313
jobs:
14-
# Deprecated: kept temporarily while the prod deployment is validated.
15-
build_and_deploy_production:
16-
name: Build and Deploy Production Deprecated
17-
uses: ./.github/workflows/deploy.yml
18-
permissions:
19-
id-token: write
20-
contents: read
21-
with:
22-
target: production
23-
secrets:
24-
AWS_OIDC_ROLE: ${{ secrets.AWS_OIDC_ROLE_PRODUCTION }}
25-
HUGO_LLM_API: ${{ secrets.HUGO_LLM_API }}
26-
HUGO_RAG_API: ${{ secrets.HUGO_RAG_API }}
27-
HUGO_AUDIO_API: ${{ secrets.HUGO_AUDIO_API }}
28-
HUGO_PHI_ONNX_LLM_API: ${{ secrets.HUGO_PHI_ONNX_LLM_API }}
29-
HUGO_DEV_PROG_SIGNIUP_FORM_MUNCHKIN_ID: ${{ secrets.HUGO_DEV_PROG_SIGNIUP_FORM_MUNCHKIN_ID }}
30-
HUGO_FORM_ID_FOR_PROGRAM_SIGNUP: ${{ secrets.HUGO_FORM_ID_FOR_PROGRAM_SIGNUP }}
31-
3214
build_and_deploy_prod:
3315
name: Build and Deploy Prod
3416
uses: ./.github/workflows/deploy.yml

.github/workflows/spell-and-link-check.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ on:
1010

1111
jobs:
1212
spell_and_link_check:
13+
if: github.repository == 'ArmDeveloperEcosystem/arm-learning-paths' || github.event_name == 'workflow_dispatch'
1314
runs-on: ubuntu-latest
1415

1516
steps:

.wordlist.txt

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5989,6 +5989,7 @@ yocto
59895989
Yocto
59905990
yoctoproject
59915991
YOLO
5992+
zfs
59925993
yolov
59935994
Yolov
59945995
YOLOv
@@ -6018,7 +6019,6 @@ Zenon
60186019
zephyrproject
60196020
zeropoint
60206021
zEybNlwd
6021-
zfs
60226022
zfsutils
60236023
ZGC
60246024
ZGVnN
@@ -6221,4 +6221,37 @@ Tasneem
62216221
cypher
62226222
memgraph
62236223
mgconsole
6224-
owski
6224+
owski
6225+
Andreasen
6226+
DeepMind
6227+
Libor
6228+
MJPEG
6229+
Moroney
6230+
NAS
6231+
PersistentVolume
6232+
PersistentVolumeClaim
6233+
QuantLib
6234+
QuantLib's
6235+
Reachy
6236+
Reachy's
6237+
SABR
6238+
StorageClass
6239+
Trixie
6240+
ZABR
6241+
debounces
6242+
defconfig
6243+
dtc
6244+
dts
6245+
dtsi
6246+
faq
6247+
getifaddr
6248+
heredoc
6249+
iSCSI
6250+
ipconfig
6251+
lballabio
6252+
piecewise
6253+
quadratures
6254+
reachy
6255+
schedulable
6256+
swaptions
6257+
tmux

config.toml

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,28 +8,11 @@ enableGitInfo = true
88
enableRobotsTXT = true
99

1010
[deployment]
11-
[[deployment.targets]]
12-
name = "internal-existing"
13-
URL = "s3://armswdev.tk?region=us-east-1"
14-
cloudFrontDistributionID = "E2VDQ2CYZATMO9"
15-
16-
# Deprecated: kept temporarily while the dev deployment is validated.
17-
[[deployment.targets]]
18-
name = "internal"
19-
URL = "s3://arm-learning-paths-internal?region=us-west-2"
20-
cloudFrontDistributionID = "ENN4LK1IZUDIX"
21-
2211
[[deployment.targets]]
2312
name = "dev"
2413
URL = "s3://arm-learning-paths-dev?region=us-east-1"
2514
cloudFrontDistributionID = "EAMKPMDBM18II"
2615

27-
# Deprecated: kept temporarily while the prod deployment is validated.
28-
[[deployment.targets]]
29-
name = "production"
30-
URL = "s3://arm-learning-paths?region=us-west-2"
31-
cloudFrontDistributionID = "E2NEF61QWPFRIH"
32-
3316
[[deployment.targets]]
3417
name = "prod"
3518
URL = "s3://arm-learning-paths-prod?region=us-east-1"

content/learning-paths/cross-platform/build-a-reachy-robot-app-on-pi/_index.md

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
11
---
2-
title: Build an Edge AI Reachy Mini App with Raspberry Pi, MediaPipe, and MuJoCo
3-
4-
draft: true
5-
cascade:
6-
draft: true
2+
title: Build an edge AI Reachy Mini app with Raspberry Pi, MediaPipe, and MuJoCo
73

84
description: Run MediaPipe gesture inference on a Raspberry Pi 5, connect to a Reachy Mini MuJoCo simulation on a development machine, and use a browser dashboard to decide Reachy's fate with a thumbs-up or thumbs-down.
95

@@ -17,7 +13,7 @@ learning_objectives:
1713
- Use MediaPipe and TensorFlow Lite gesture recognition on Raspberry Pi 5.
1814
- Connect an edge inference node to a robot daemon over the network.
1915
- Display results over a web dashboard.
20-
- (Optional) Extend the project toward a physical Reachy Mini, audio or multimodal interaction, or your own app.
16+
- Optionally extend the project toward a physical Reachy Mini, audio or multimodal interaction, or your own app.
2117

2218
prerequisites:
2319
- A Raspberry Pi 5, ideally with 16 GB RAM.

content/learning-paths/cross-platform/build-a-reachy-robot-app-on-pi/extend.md

Lines changed: 26 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
---
22
title: (Optional) Extend the project
3+
description: Explore approaches you can take to extend Reachy Gladiator with new gestures, audio output, physical Reachy Mini support, and custom Reachy Mini app packaging.
34
weight: 7
45

56
### FIXED, DO NOT MODIFY
@@ -25,23 +26,23 @@ motion, or packaging.
2526

2627
## Change the classifier
2728

28-
Trying adding new gesture controls. Start in `gesture.py`, where the app maps MediaPipe labels such as `Thumb_Up` and `Thumb_Down` to app labels. Then add matching robot behavior in `moves.py` and branch on the new label in `main.py`.
29+
Try adding new gesture controls. Start in `gesture.py`, where the app maps MediaPipe labels such as `Thumb_Up` and `Thumb_Down` to app labels. Then add matching robot behavior in `moves.py` and branch on the new label in `main.py`.
2930

3031
Some game-themed ideas:
3132

3233
- Map `Closed_Fist` to `challenge`, and make Reachy repeat the current move
3334
- Map `Pointing_Up` to `reroll`, and make Reachy reject the current move and
3435
choose another one.
35-
- Map `Number of fingers` to choosing a specific move.
36+
- Map the number of fingers shown to choose a specific move.
3637

3738
## Add audio output
3839

3940
The gladiator theme is a good fit for sound. Try adding audio cues such as:
4041

41-
- a crowd cheer during victory,
42-
- a dramatic sound during defeat,
43-
- a short drum hit before each move,
44-
- a spoken move name before Reachy performs it.
42+
- a crowd cheer during victory
43+
- a dramatic sound during defeat
44+
- a short drum hit before each move
45+
- a spoken move name before Reachy performs it
4546

4647
Keep audio output separate from `moves.py` at first. For example, create an
4748
`audio.py` helper and call it from `main.py` when the state changes. This keeps
@@ -50,36 +51,37 @@ robot motion and sound effects easy to change independently.
5051
## Replace thumbs with audio input
5152

5253
The vision-based verdict is one edge AI input modality. You can replace
53-
or complement it with audio - many webcams include microphones or you can use a USB microphone.
54+
or complement it with audio. Many webcams include microphones, or you can use a USB microphone.
5455

55-
- say "yes" for victory and "no" for defeat,
56-
- clap once for victory and twice for defeat,
56+
Try adding audio inputs such as:
57+
58+
- say "yes" for victory and "no" for defeat
59+
- clap once for victory and twice for defeat
5760

5861
A lightweight keyword-spotting model can map spoken commands to the same game states currently triggered by MediaPipe gestures.
5962

6063
## Try the packaged app on a physical Reachy
6164

62-
If you have a physical Reachy Mini, the quickest way to try the finished
63-
experience is to install the packaged [Reachy Gladiator app](https://huggingface.co/spaces/cossinsmatthew/reachy_gladiator) through the [Reachy Mini Control app](https://github.com/pollen-robotics/reachy-mini-desktop-app).
65+
If you have a physical Reachy Mini, you can try the finished
66+
experience by installing the packaged [Reachy Gladiator app](https://huggingface.co/spaces/cossinsmatthew/reachy_gladiator) through the [Reachy Mini Control app](https://github.com/pollen-robotics/reachy-mini-desktop-app).
6467

65-
Simply install Reachy Mini Control on a supported machine, connected to your Reachy, and search for the reachy gladiator app.
68+
Install Reachy Mini Control on a supported machine, connect it to your Reachy, and search for the Reachy Gladiator app.
6669

6770
{{% notice Warning %}}
68-
If using a physical Reachy Mini, use caution and ensure the robot is used in an area with appropriate space. The robot has moving parts and could be a health & safety risk. You are responsible for your safety and the safety of others around you when using physical robotic devices
71+
If you use a physical Reachy Mini, exercise caution and ensure the robot is used in an area with appropriate space. The robot has moving parts and could be a health and safety risk. You're responsible for your safety and the safety of others around you when using physical robotic devices.
6972
{{% /notice %}}
7073

7174
## Adapt this source project for physical Reachy
7275

73-
The main learning path uses the Raspberry Pi USB webcam for perception and a
76+
The main Learning Path uses the Raspberry Pi USB webcam for perception and a
7477
remote MuJoCo daemon for robot motion. A physical Reachy route changes two
7578
things:
7679

77-
- camera frames come from the Reachy daemon instead of the Pi USB webcam,
80+
- camera frames come from the Reachy daemon instead of the Pi USB webcam
7881
- the Pi app connects to the physical Reachy daemon instead of the simulation
79-
daemon.
82+
daemon
8083

81-
The source project exposes these switches as environment variables, so you do
82-
not need to edit the Python source:
84+
The source project exposes these switches as environment variables, so you don't need to edit the Python source:
8385

8486
```bash
8587
REACHY_GLADIATOR_MEDIA_BACKEND=reachy \
@@ -95,9 +97,9 @@ IP address and set `REACHY_GLADIATOR_DAEMON_PORT` to the daemon port.
9597
These variables map to the code in two places:
9698

9799
- `REACHY_GLADIATOR_MEDIA_BACKEND=reachy` lets `ReachyMiniApp` request daemon
98-
camera media.
100+
camera media
99101
- `REACHY_GLADIATOR_CAMERA=reachy` tells `camera.py` to use
100-
`ReachyMediaFrameSource` instead of `OpenCVCameraFrameSource`.
102+
`ReachyMediaFrameSource` instead of `OpenCVCameraFrameSource`
101103

102104
## Build your own Reachy Mini app
103105

@@ -111,7 +113,7 @@ To build a fresh app:
111113
endpoint.
112114
4. Add a dashboard only after the core loop works.
113115
5. Test in simulation before physical hardware.
114-
6. Package the app when it is stable enough for repeated use.
116+
6. Package the app when it's stable enough for repeated use.
115117

116118
The Reachy Mini tooling can scaffold and validate a shareable app:
117119

@@ -120,13 +122,12 @@ reachy-mini-app-assistant create my_app ~/reachy_projects
120122
reachy-mini-app-assistant check ~/reachy_projects/my_app
121123
```
122124

123-
The [Reachy Mini app publishing guide](https://huggingface.co/blog/pollen-robotics/make-and-publish-your-reachy-mini-apps)
124-
explains the packaging and publishing workflow in more detail.
125+
For more information about the packaging and publishing workflow, see the [Reachy Mini app publishing guide](https://huggingface.co/blog/pollen-robotics/make-and-publish-your-reachy-mini-apps).
125126

126127
Use the Reachy Mini SDK documentation and examples to understand available
127128
motion, media, and daemon APIs. If you use an AI coding agent, give it the
128129
Pollen Robotics `AGENTS.md` instructions, provided by the [Reachy Mini project](https://github.com/pollen-robotics/reachy_mini) so it follows the expected app structure.
129130

130-
## What you learned
131+
## What you've learned
131132

132-
You explored options for extending from simulation to a physical Reachy, as well ideas for changing the project to include audio, new vision gestures, or different behaviours.
133+
You've now explored options for extending from simulation to a physical Reachy, as well as ideas for changing the project to include audio, new vision gestures, or different behaviors.

0 commit comments

Comments
 (0)