TL;DR
- Foxglove installeren in 2 minuten via desktop, web of Docker.
- Verbinden met ROS 2 met
ros2 topic listen de Foxglove ROS-brug. - MCAP-logbestanden visualiseren sneller dan ROS Bag-bestanden (gebruik
mcap record). - Dashboards bouwen met sleep-&-drop-panelen voor 3D-visualisaties, afbeeldingen en grafieken.
- Debuggen van live- en opgenomen gegevens met tijdsynchronisatiecontroles.
- Foxglove uitbreiden met aangepaste TypeScript-panelen voor proprietaire schema’s.
1. Foxglove Installeren en Verbinden met ROS 2
Foxglove Installeren
Kies een installatiemethode:
Desktop (Aanbevolen voor ROS 2)
# macOS (Homebrew)
brew install --cask foxglove-studio
# Linux (AppImage)
wget https://github.com/foxglove/studio/releases/download/v2.12.0/FoxgloveStudio-2.12.0.AppImage
chmod +x FoxgloveStudio-*.AppImage
./FoxgloveStudio-*.AppImage
# Windows (Winget)
winget install Foxglove.FoxgloveStudio
Webapplicatie (Geen Installatie)
Open https://app.foxglove.dev in Chrome of Firefox.
Docker (Voor CI/CD)
docker run -p 8080:8080 foxglove/studio
Verbinden met ROS 2
-
Controleer of ROS 2 draait:
ros2 topic listVoorbeelduitvoer:
/cmd_vel /scan /tf /odom -
Start Foxglove en verbind:
- Open Foxglove → Klik op "Verbinden" → Selecteer "ROS 2".
- Voer uw ROS 2 domein-ID in (standaard:
0):ros2 run foxglove_bridge foxglove_bridge --ros-domain-id 0 - Selecteer in Foxglove hetzelfde domein-ID.
-
Verwachte Uitkomst:
- Foxglove toont alle ROS 2-topics. Klik op "Abonneren" om met het streamen te beginnen.
2. Het MCAP-Logformaat
Waarom MCAP?
MCAP (Micro-Format voor ROS-gegevens) is snel en compacter dan ROS Bag-bestanden Bron: MCAP Specificatie. Gebruik het voor:
- Grote robotdatasetten.
- Cloudopslag (bijv. Foxglove Data Platform).
MCAP-Gegevens Opnemen
# Installeer MCAP-tools
pip install rosbags-mcap
# Neem ROS 2-topics op
ros2 bag record -a --storage mcap -o my_robot_data.mcap
Afspelen in Foxglove
- Open Foxglove → Sleep
my_robot_data.mcapnaar de applicatie. - Gebruik de tijdsregelaar om door de gegevens te bladeren.
3. Visualisatielayouts Bouwen
Een Dashboard Aanmaken
-
Panelen Toevoegen:
- Sleep "3D-paneel", "Afbeeldingspaneel" of "Grafiekpaneel" uit de linkerbalk.
- Voorbeeld: Visualiseer
/scan(LiDAR) in 3D en/image_rawals afbeelding.
-
Layout Opslaan:
# Exporteer als JSON foxglove studio export-layout --output my_dashboard.jsonVoorbeeld
my_dashboard.json:{ "panels": [ { "type": "3D", "topic": "/scan", "frame": "base_link" }, { "type": "Image", "topic": "/image_raw" } ] } -
Layout Laden:
- Open Foxglove → "Layout Laden" → Selecteer
my_dashboard.json.
- Open Foxglove → "Layout Laden" → Selecteer
4. 3D-, Afbeeldings- en Grafiekpanelen
3D-paneel (LiDAR/URDF)
- Voeg een 3D-paneel toe → Selecteer het
/scan-topic. - Configureren:
- Stel
framein opbase_link(uit/tf). - Schakel "Toon TF-frames" in om de robotpositie te visualiseren.
- Stel
Afbeeldingspaneel (Camera)
- Voeg een afbeeldingspaneel toe → Selecteer
/image_raw. - Aanpassen:
- Stel
encodingin opbgr8(veelvoorkomend voor ROS 2-camera’s).
- Stel
Grafiekpaneel (Tijdreeks)
- Voeg een grafiekpaneel toe → Selecteer
/odom/pose/pose/position/x. - Aanpassen:
- Voeg een tweede reeks toe:
/twist/twist/linear/x. - Gebruik "Automatische schaal" voor dynamische bereiken.
- Voeg een tweede reeks toe:
5. Live-Debugging vs. Opgenomen Afspeelmodus
Live-Debugging
- Stroom ROS 2-gegevens in realtime:
ros2 run foxglove_bridge foxglove_bridge --ros-domain-id 0 - Pauzeren/Hervatten met de tijdsbesturing.
Opgenomen Afspeelmodus
- Laad een MCAP-bestand:
foxglove studio open my_robot_data.mcap - Tijdsynchronisatie:
- Gebruik "Tijdsynchronisatie" om meerdere logs af te stemmen.
6. Aangepaste Extensies en Berichten Schema’s
Een Aangepast Paneel Toevoegen
- Maak een TypeScript-extensie aan:
npx @foxglove/create-extension my-custom-panel cd my-custom-panel - Bewerk
src/panel.ts:import { Panel } from '@foxglove/studio'; export class MyCustomPanel extends Panel { render() { return <div>Aangepaste visualisatie voor my_topic</div>; } } - Bouwen en Laden:
npm run build foxglove studio load-extension ./dist
Aangepaste Berichten Schema’s Definiëren
- Voeg een schema toe in
foxglove.config.json:{ "schemas": { "my_namespace/MyMessage": { "fields": [ {"name": "x", "type": "float32"}, {"name": "y", "type": "float32"} ] } } } - Gebruik in Foxglove:
- Selecteer het topic → Foxglove parseert het aangepaste schema.
7. Teamworkflows voor Vlootdebugging
Een Live-Sessie Delen
- Host een sessie:
foxglove studio share --port 8080 - Nodig teamleden uit naar https://app.foxglove.dev met de link.
Cloudopslag (Foxglove Data Platform)
- Gegevens uploaden:
foxglove data upload my_robot_data.mcap - Toegang in Foxglove:
- Meld aan → Selecteer "Cloud" → Laad de dataset.
Wat Komt Er Nog?
- Neem een volledige robotmissie op en analyseer deze met
mcap record. - Bouw een aangepast dashboard voor de sleutelmetrieken van uw robot.
- Breid Foxglove uit met een TypeScript-paneel voor proprietaire topics.
Voor fysieke AI-infrastructuur en implementatie, ontdek de tools van Hyperion voor embodied VLA-systemen en edge-runtimes. Neem contact met ons op om uw project te bespreken.
