Guide de configuration du VLAI L1
Configuration complète étape par étape pour le VLAI L1 — du déballage à l'étalonnage à double bras, en passant par la navigation sur la base mobile et la collecte de données.
Assemblage et inspection
Liste de contrôle de déballage
- Inspectez les deux bras 7-DOF pour déceler tout dommage causé par le transport ; vérifiez que tous les joints bougent librement à la main.
- Vérifiez que les deux pinces 8 Nm développées par vous-même sont solidement montées.
- Inspectez les roues de la base mobile : les deux roues motrices doivent tourner librement sans se coincer.
- Vérifiez que la colonne de levage glisse doucement sur toute la plage (106 à 162 cm)
- Confirmez que le câble Ethernet et l'adaptateur secteur sont dans la boîte
- Lisez le guide de sécurité VLAI L1 inclus dans le package de documentation
Exigences relatives à l'espace de travail
- Surface minimale au sol : 2 m × 2 m, surface dégagée et plane
- Empreinte du robot : 46 cm de largeur × 60 cm de longueur — laissez un espace libre de tous les côtés
- Portée du bras : 63 cm par bras — assurez-vous qu'aucun obstacle n'est à portée de main lorsque les bras sont étendus
- Pouvoir: Prise standard 110 V/220 V à moins de 2 m
Installation du SDK et configuration du réseau
Exigences
- Python 3.10+ (3.11 recommandé)
- Niveau Développeur ou supérieur (le niveau Jeune n’inclut pas l’accès au SDK)
- L1 allumé et connecté au même réseau local (Ethernet ou Wi-Fi 5 GHz)
Installer le SDK
pip install roboticscenter
Connectez-vous et ouvrez le panneau Teleop du navigateur
rc connect --device l1 # Terminal prints: Session ready → https://platform.roboticscenter.ai/session/RC-XXXX-XXXX # Open the URL in any browser to access the full teleop panel
Diffusez des données conjointes via Python
from roboticscenter import L1Robot
robot = L1Robot.connect()
print(robot.session_url)
for frame in robot.stream():
joints = frame.data['joints']
print(f"Left: {joints['left_arm']}")
print(f"Right: {joints['right_arm']}")
print(f"Base: {frame.data['base']}")
rc connect --device l1 --mock pour démarrer une séance de L1 entièrement simulée. Toutes les méthodes du SDK, le panneau téléop du navigateur et l'enregistrement des données fonctionnent de manière identique en mode simulé, ce qui est utile pour les pipelines CI et le prototypage de flux de travail avant l'expédition de votre unité.
Calibrage à double bras
Les bras L1 utilisent le protocole moteur MIT avec retour à double encodeur et contrôle FOC. L'étalonnage définit les positions d'origine et vérifie la spécification complète de précision de ± 0,02 mm.
Vérifier les états communs du ROS2
ros2 topic list
ros2 topic echo /joint_states # verify all 16 DOF are publishing
Lancez MoveIt2 pour la planification des mouvements
ros2 launch l1_moveit l1_moveit.launch.py
# Opens RViz with full dual-arm URDF, collision checking, and Cartesian planning
Étalonnage de la position d'origine
- Dans le panneau MoveIt2 RViz, accédez au Planification languette
- Sélectionnez le maison cible désignée pour les deux bras
- Cliquez Planifier et exécuter — les bras doivent se déplacer vers la position neutre étendue
- Vérifiez que les états communs correspondent à la configuration d'origine attendue dans le terminal
Calibrage de la pince
# Open grippers fully ros2 topic pub /left_gripper/cmd std_msgs/Float32 "{data: 0.0}" ros2 topic pub /right_gripper/cmd std_msgs/Float32 "{data: 0.0}" # Close to 50% — verify 8Nm grippers engage smoothly ros2 topic pub /left_gripper/cmd std_msgs/Float32 "{data: 0.5}" ros2 topic pub /right_gripper/cmd std_msgs/Float32 "{data: 0.5}"
Navigation sur base mobile
Test de lecteur de clavier WASD
Ouvrez le panneau de commande du navigateur et utilisez les touches WASD pour piloter la base différentielle. L'échelle de vitesse est réglable via le curseur du panneau (10 %, 50 %, 100 %).
# Or command directly via ROS2 Twist ros2 topic pub /base/cmd_vel geometry_msgs/Twist \ "{linear: {x: 0.3, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}" # Stop ros2 topic pub /base/cmd_vel geometry_msgs/Twist \ "{linear: {x: 0.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}"
Test de portée de levage
Utilisez le curseur vertical dans le panneau téléop du navigateur pour tester la plage de levage complète (106-162 cm) à 30 mm/s. Vérifiez un mouvement fluide sur toute la plage, sans liaison ni meulage.
# Monitor lift height ros2 topic echo /lift/state # current height in meters
Première tâche de manipulation
Commandes du panneau de commande du navigateur
- Vue à double bras : Visualisation 3D en temps réel des deux bras à 7 degrés de liberté : angles articulaires, pose de l'effecteur terminal (6D) et état de la pince à une fréquence de mise à jour < 10 ms
- Sélecteur de mode effecteur final : Changez indépendamment par bras : pince (par défaut 8 Nm), main adroite ou ventouse
- Flux de caméra : Caméra poitrine (Developer+), caméras poignet gauche/droite (Developer Max)
Sélection et placement simples via MoveIt2
from roboticscenter import L1Robot robot = L1Robot.connect() # Move left arm to approach pose robot.left_arm.move_to(x=0.45, y=0.15, z=0.30, roll=0, pitch=90, yaw=0) # Open left gripper robot.left_arm.gripper.open() # Move down to grasp robot.left_arm.move_to(x=0.45, y=0.15, z=0.05, roll=0, pitch=90, yaw=0) # Close gripper to grasp robot.left_arm.gripper.close(force=0.6) # Lift robot.left_arm.move_to(x=0.45, y=0.15, z=0.35, roll=0, pitch=90, yaw=0)
Téléopération VR (Developer Pro et Max)
Branchez un casque compatible OpenXR et exécutez rc vr --session RC-XXXX-XXXX pour cartographier la pose du contrôleur manuel directement sur l'effecteur final de chaque bras dans l'espace cartésien, avec un retour haptique proportionnel à la force de contact estimée.
Collecte de données et pipeline en un clic
Chaque rc connect session est une unité de collecte de données nommée. Les sessions sont automatiquement téléchargées sur votre espace de travail Fearless Platform à la fermeture – aucune étape d'exportation manuelle n'est requise.
Ce qui est capturé par image
- Données communes — Position, vitesse et effort pour les 16 DOF à ~ 500 Hz avec horodatage en microsecondes
- Flux de caméra — Poitrine RVB (Developer+), poignet RVB (Developer Max) — horodatés et synchronisés avec les données articulaires dans un délai de ± 1 ms
- Forcer/contacter — Estimation de la force des mâchoires de la pince à partir du courant du moteur
- État de base — Odomètre des roues, vitesse linéaire/angulaire, hauteur de levage
- Actions de l'opérateur — Flux de commandes téléop brut pour l'apprentissage par imitation
Étiquetage des épisodes lors de la collecte
- Presse Espace dans le panneau du navigateur pour marquer les limites des épisodes
- Presse L pour annoter le cadre actuel avec une chaîne d'étiquette personnalisée
Agent ROS2 pour le pont cloud
# Run on the L1's onboard computer to bridge topics to the platform
python l1_robot_agent.py \
--backend wss://platform.roboticscenter.ai \
--session RC-XXXX-XXXX \
--ros2
Formats d'exportation des ensembles de données
Les sessions nettoyées et annotées s'exportent au format LeRobot (manifeste HDF5 + JSON), RLDS ou JSONL + MP4 brut. Utilisez le Données dans la plateforme pour configurer l'exportation et le téléchargement.