TL;DR
- Εγκαταστήστε το Foxglove σε 2 λεπτά μέσω desktop, web ή Docker.
- Συνδέστε με το ROS 2 χρησιμοποιώντας την εντολή
ros2 topic listκαι το ROS bridge του Foxglove. - Οπτικοποιήστε αρχεία MCAP ταχύτερα από τα ROS Bag files (χρησιμοποιήστε
mcap record). - Δημιουργήστε dashboards με panels drag-and-drop για 3D οπτικοποιήσεις, εικόνες και γραφήματα.
- Επιθεωρήστε ζωντανά vs. ηχογραφημένα δεδομένα με ελέγχους συγχρονισμού χρόνου.
- Επεκτείνετε το Foxglove με custom panels σε TypeScript για προπαρασκευασμένα σχήματα.
1. Εγκατάσταση του Foxglove και Σύνδεση με το ROS 2
Εγκατάσταση του Foxglove
Επιλέξτε τη μέθοδο που προτιμάτε:
Desktop (Συνιστώμενη για 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
Web App (Χωρίς Εγκατάσταση)
Ανοίξτε την https://app.foxglove.dev στο Chrome ή Firefox.
Docker (Για CI/CD)
docker run -p 8080:8080 foxglove/studio
Σύνδεση με το ROS 2
-
Επιβεβαιώστε ότι το ROS 2 τρέχει:
ros2 topic listΠαράδειγμα εξόδου:
/cmd_vel /scan /tf /odom -
Ανοίξτε το Foxglove και συνδέστε το:
- Ανοίξτε το Foxglove → Πατήστε "Connect" → Επιλέξτε "ROS 2".
- Εισάγετε τον domain ID του ROS 2 (προεπιλογή:
0):ros2 run foxglove_bridge foxglove_bridge --ros-domain-id 0 - Στο Foxglove, επιλέξτε τον ίδιο domain ID.
-
Απαιτούμενο Αποτέλεσμα:
- Το Foxglove θα εμφανίσει όλα τα θέματα (topics) του ROS 2. Πατήστε "Subscribe" για να ξεκινήσετε τη ροή δεδομένων.
2. Το Μορφότυπο Αρχείων MCAP
Γιατί MCAP;
Το MCAP (Micro-Format for ROS Data) είναι ταχύτερο και μικρότερο από τα αρχεία ROS Bag Πηγή: MCAP Spec. Χρησιμοποιήστε το για:
- Μεγάλα σύνολα δεδομένων ρομποτικής.
- Αποθήκευση στο cloud (π.χ., Foxglove Data Platform).
Ηχογράφηση Δεδομένων MCAP
# Εγκατάσταση εργαλείων MCAP
pip install rosbags-mcap
# Ηχογράφηση από θέματα ROS 2
ros2 bag record -a --storage mcap -o δεδομένα_ρομπότ_μου.mcap
Αναπαραγωγή στο Foxglove
- Ανοίξτε το Foxglove → Σέρνετε το αρχείο
δεδομένα_ρομπότ_μου.mcapμέσα στην εφαρμογή. - Χρησιμοποιήστε την οριζόντια ράβδο χρόνου για να περιηγηθείτε στα δεδομένα.
3. Δημιουργία Οπτικοποιήσεων (Visualization Layouts)
Δημιουργία Dashboard
-
Προσθήκη Panels:
- Σέρνετε από την αριστερή πλευρά τα "3D Panel", "Image Panel" ή "Plot Panel".
- Παράδειγμα: Οπτικοποιήστε το
/scan(LiDAR) σε 3D και το/image_rawως εικόνα.
-
Αποθήκευση Layout:
# Εξαγωγή ως JSON foxglove studio export-layout --output dashboard_μου.jsonΠαράδειγμα
dashboard_μου.json:{ "panels": [ { "type": "3D", "topic": "/scan", "frame": "base_link" }, { "type": "Image", "topic": "/image_raw" } ] } -
Φόρτωση Layout:
- Ανοίξτε το Foxglove → "Load Layout" → Επιλέξτε το
dashboard_μου.json.
- Ανοίξτε το Foxglove → "Load Layout" → Επιλέξτε το
4. Panels για 3D, Εικόνες και Γραφήματα
3D Panel (LiDAR/URDF)
- Προσθέστε ένα 3D Panel → Επιλέξτε το θέμα
/scan. - Ρυθμίσεις:
- Ορίστε το
frameστοbase_link(από το/tf). - Ενεργοποιήστε την επιλογή "Show TF Frames" για οπτικοποίηση της θέσης του ρομπότ.
- Ορίστε το
Image Panel (Καμερά)
- Προσθέστε ένα Image Panel → Επιλέξτε το
/image_raw. - Ρυθμίσεις:
- Ορίστε το
encodingσεbgr8(συνηθισμένο για κάμερες ROS 2).
- Ορίστε το
Plot Panel (Χρονικές Σειρές)
- Προσθέστε ένα Plot Panel → Επιλέξτε το
/odom/pose/pose/position/x. - Προσωποποίηση:
- Προσθέστε μια δεύτερη σειρά:
/twist/twist/linear/x. - Χρησιμοποιήστε την επιλογή "Auto-Scale" για δυναμικές κλίμακες.
- Προσθέστε μια δεύτερη σειρά:
5. Επιθεώρηση Ζωντανών vs. Ηχογραφημένων Δεδομένων
Επιθεώρηση Ζωντανών Δεδομένων
- Ροή δεδομένων ROS 2 σε πραγματικό χρόνο:
ros2 run foxglove_bridge foxglove_bridge --ros-domain-id 0 - Παύση/Επανέναρξη της αναπαραγωγής με τους ελέγχους χρόνου.
Αναπαραγωγή Ηχογραφημένων Δεδομένων
- Φόρτωση αρχείου MCAP:
foxglove studio open δεδομένα_ρομπότ_μου.mcap - Συγχρονισμός Χρόνου:
- Χρησιμοποιήστε την επιλογή "Time Sync" για να συντονίσετε πολλά αρχεία.
6. Προσθήκες και Προσωποποιημένα Σχήματα Μεταβλητών
Προσθήκη Προσωποποιημένου Panel
- Δημιουργία επέκτασης σε TypeScript:
npx @foxglove/create-extension my-custom-panel cd my-custom-panel - Επεξεργασία του
src/panel.ts:import { Panel } από το '@foxglove/studio'; export class MyCustomPanel επεκτείνει το Panel { render() { επιστρέφει <div>Προσωποποιημένη οπτικοποίηση για το my_topic</div>; } } - Δημιουργία και Φόρτωση:
npm run build foxglove studio load-extension ./dist
Ορισμός Προσωποποιημένων Σχημάτων Μεταβλητών
- Προσθήκη σχήματος στο
foxglove.config.json:{ "schemas": { "my_namespace/MyMessage": { "fields": [ {"name": "x", "type": "float32"}, {"name": "y", "type": "float32"} ] } } } - Χρήση στο Foxglove:
- Επιλέξτε το θέμα → Το Foxglove θα αναλύσει το προσωποποιημένο σχήμα.
7. Ομαδικές Δραστηριότητες για Επιθεώρηση Ομάδων Ρομπότ
Διαμοιρασμός Ζωντανής Σesson
- Δημιουργία session:
foxglove studio share --port 8080 - Προσκλήστε συνεργάτες στην https://app.foxglove.dev με τον σύνδεσμο.
Αποθήκευση στο Cloud (Foxglove Data Platform)
- Ανέβασμα δεδομένων:
foxglove data upload δεδομένα_ρομπότ_μου.mcap - Πρόσβαση στο Foxglove:
- Συνδεθείτε → Επιλέξτε "Cloud" → Φόρτωσε το σύνολο δεδομένων.
Τι Επόμενο;
- Ηχογραφήστε και αναλύστε μια πλήρη αποστολή ρομπότ με
mcap record. - Δημιουργήστε ένα custom dashboard για τους κρίσιμους δείκτες του ρομπότ σας.
- Επεκτείνετε το Foxglove με ένα panel σε TypeScript για προπαρασκευασμένα θέματα.
Για Φυσική Υποδομή AI και Πληροφορική, εξερευνήστε τα εργαλεία της Hyperion για σώματα VLA συστημάτων και edge runtimes. Επικοινωνήστε μαζί μας για να συζητήσουμε το έργο σας.
