Add "ROS2 and Foxglove - Running on Avocado OS" field note - #483
Conversation
New field note: run a full ROS 2 Humble graph and a Foxglove bridge in a container on Avocado OS, driving a UFACTORY Lite 6 arm, with no ROS 2 on the host. Covers getting started, the ROS 2 node graph, hardware portability, OTA/local iteration, and the Avocado Desktop Agent authoring motion sequences on real hardware. - Add field note (featured) and its hero gif + section images - Letterbox the featured-hero thumbnail (contain + black) so portrait media is not cropped - Unset featured on the prior NVIDIA DeepStream note so this note leads
There was a problem hiding this comment.
Pull request overview
Adds a new published Field Note (“ROS2 and Foxglove - Running on Avocado OS”) and updates the Field Notes index presentation so the featured hero thumbnail can letterbox portrait media instead of cropping it, while rotating the featured flag off the prior NVIDIA note.
Changes:
- Add a new featured Field Note MDX post covering a containerized ROS 2 + Foxglove workflow on Avocado OS.
- Update featured-hero thumbnail styling to use
object-fit: containwith a black background fill for portrait assets. - Unset
featured: trueon the previously featured NVIDIA DeepStream Field Note.
Reviewed changes
Copilot reviewed 3 out of 9 changed files in this pull request and generated 5 comments.
| File | Description |
|---|---|
| src/src/theme/BlogPostItems/styles.module.css | Adjust featured hero thumbnail styling to letterbox portrait media. |
| src/field-notes/2026-07-28-ros2-foxglove-immutable-os.mdx | Add new published + featured Field Note content and walkthrough steps. |
| src/field-notes/2026-06-22-fastest-path-ai-vision-nvidia.mdx | Remove featured: true so the new note becomes the featured item. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
- TL;DR: 'inside using container' -> 'inside a container' - OTA steps: 'avocado intall' -> 'avocado install', 'avocadoc connect' -> 'avocado connect' - Desktop Agent: 'its enabled' -> 'it's enabled', 'SSH'\''ing' -> 'SSHing' - Description: 'websockets' -> 'WebSockets', remove repeated 'quickly'
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 3 out of 9 changed files in this pull request and generated no new comments.
Suppressed comments (3)
src/field-notes/2026-07-28-ros2-foxglove-immutable-os.mdx:3
- The front matter uses “ROS2” in the title/description, but the body consistently uses “ROS 2”. This reads inconsistent and also makes search results/metadata less consistent.
title: 'ROS2 and Foxglove - Running on Avocado OS'
description: 'A full ROS2 Humble deployment with a Foxglove visualization bridge over WebSockets. Avocado OS enables a quick and easy way to get up and running, with custom immutable OS that is OTA ready out of the box.'
src/src/theme/BlogPostItems/styles.module.css:150
- This comment implies the black background is only for portrait media and that it “never shows” for landscape images, but it will also show for any image whose aspect ratio doesn’t match the 16:10 (and 16:9 mobile) box (e.g., 4:3/11:8 landscape GIFs). Updating the comment would prevent confusion for future adjustments.
/* Black fill behind the image, so a portrait/tall thumbnail centered by
`contain` (below) sits on black bars instead of empty space. For a 16:10
landscape image the image covers the box and the fill never shows. */
background: #000;
src/src/theme/BlogPostItems/styles.module.css:157
- This comment says
containis “identical to cover” for landscape images and that featured images are unaffected, butcontainwill letterbox any media that isn’t exactly the same aspect ratio as the box (including on mobile where the box becomes 16:9).
/* Show the whole image rather than cropping it to fill the 16:10 box. Matters
for portrait/tall thumbnails (e.g. a vertical demo gif), which `cover` would
crop top and bottom. For a 16:10 landscape image this is identical to cover,
so existing and future featured images are unaffected. */
Per @lee-reinhardt's review: - Drop deprecated '-r' flag from all 'avocado provision' commands (now 'avocado provision dev --profile ...') - Add required '--version' flag to 'avocado connect upload dev'
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 3 out of 9 changed files in this pull request and generated no new comments.
Suppressed comments (2)
src/field-notes/2026-07-28-ros2-foxglove-immutable-os.mdx:3
- The front-matter title/description use "ROS2" (no space), but the body consistently uses "ROS 2". Using the spaced form in the visible metadata will keep naming consistent with the rest of the note (and common ROS branding).
title: 'ROS2 and Foxglove - Running on Avocado OS'
description: 'A full ROS2 Humble deployment with a Foxglove visualization bridge over WebSockets. Avocado OS enables a quick and easy way to get up and running, with custom immutable OS that is OTA ready out of the box.'
src/src/theme/BlogPostItems/styles.module.css:157
- This comment claims featured images are unaffected because
containis "identical to cover" for landscape images, but that’s only true when the image is exactly 16:10. Other landscape aspect ratios (e.g. 988×720) will be letterboxed/pillarboxed and the black background will show, changing the hero appearance.
/* Show the whole image rather than cropping it to fill the 16:10 box. Matters
for portrait/tall thumbnails (e.g. a vertical demo gif), which `cover` would
crop top and bottom. For a 16:10 landscape image this is identical to cover,
so existing and future featured images are unaffected. */
Summary
New Field Note: ROS2 and Foxglove - Running on Avocado OS. Walks through running a full ROS 2 Humble graph and a Foxglove bridge inside one container on Avocado OS, driving a real UFACTORY Lite 6 arm, with no ROS 2 on the host and no registry. Becomes the featured note on the Field Notes index.
What's included
src/field-notes/2026-07-28-ros2-foxglove-immutable-os.mdx(draft: false)object-fit: contain+ black background) instead of cropping itfeaturedon the prior NVIDIA DeepStream note so this note leadsVerification
prettier --check,eslint,redocly lint, and the productionbuildall pass locally (build includes the note now that it'sdraft: false)ros2-ufactory-lite6reference, including per-board provisioning (--profile sdfor Raspberry Pi 5,--profile uuu-emmcfor imx95-frdm / i.MX 9x)node.py,lite6.launch.py)Note for reviewers
The note lists
imx95-frdmundersupported_targets, but theros2-ufactory-lite6reference'savocado.yamldoesn't include it yet — the reference may need updating to stay consistent.