Robotique · Systèmes embarqués · HarmonyOS

AstraPlusCar

Une voiture intelligente reliant capteurs, logiciel embarqué et interface mobile. L’appareil collecte les données de la caméra et du lidar, puis pilote le châssis via un ESP32 ; une application HarmonyOS affiche l’image et envoie les commandes sur le réseau local.

Le projet en bref

AstraPlusCar est un système de véhicule piloté depuis un téléphone HarmonyOS. Le côté embarqué fonctionne sur un kit de développement Ascend auquel sont reliés une caméra et un lidar, et commande un châssis à roues Mecanum via un ESP32 ; le téléphone fournit l’aperçu vidéo, l’état du lidar et les commandes de conduite. Construit sur l’exemple E2E officiel de Huawei, le projet y apporte deux ajouts : le remplacement de la caméra par une caméra 3D à lumière structurée, et la mise au point d’un client de commande sur téléphone.

À propos de ce projet

Ce qu’il traite

Le projet porte sur la contrôlabilité lorsque téléphone, équipement Ascend et châssis coopèrent, et réalise deux modifications d’ingénierie sur l’exemple officiel : la connexion d’une caméra 3D à lumière structurée et la mise au point d’un client de commande sur téléphone.

Comment le système coopère

Le téléphone envoie une intention de conduite de haut niveau. L’équipement la reçoit, la combine avec l’état de la caméra, du lidar et du châssis, puis transmet l’action résultante à l’ESP32. Les données des capteurs circulent en sens inverse, ce qui maintient l’image et le relevé lidar à jour.

Ce qu’il utilise

Le côté embarqué est en Python sur un kit de développement Ascend, avec une inférence sur modèles hors ligne Ascend. Le côté téléphone est une application HarmonyOS écrite en ArkTS. Le châssis est un ESP32. Les deux communiquent en HTTP local et par liaison série.

État actuel

Le client téléphone a été installé sur un appareil réel et testé face au véhicule sur le même réseau : aperçu vidéo, lidar à trois directions, captures d’écran et galerie privée sont confirmés, tout comme la consultation d’état, les commandes de direction, le renouvellement et l’arrêt automatique en cas de coupure. Le comportement en conduite réelle reste à observer sur site.

Schéma de la voiture AstraPlusCar et de son contrôleur mobile

Présentation

Le projet comprend deux dépôts indépendants. La partie embarquée fonctionne sur Orange Pi AI Pro / Ascend et gère les capteurs, la voiture et l’API HTTP. L’application de conduite est écrite en ArkTS. Le code embarqué antérieur comprend aussi des expérimentations de suivi de voie et de suivi d’objets.

Appareil et châssis

L’appareil gère caméra, lidar et commandes. Il transmet les actions de haut niveau par liaison série à l’ESP32, qui pilote moteurs, servos et autres composants.

Contrôle mobile

L’application HarmonyOS propose l’aperçu caméra, l’état du lidar, les commandes de direction, le réglage de vitesse, l’arrêt et la capture de photos.

Trois modes autonomes

L’équipement embarque trois modes de comportement, commutables par commande externe ; un mode manuel permet également la commande directe.

Assistance par panneaux

Charge un modèle YOLOv5 hors ligne pour reconnaître les panneaux de virage à gauche, à droite et de demi-tour, et déclenche la rotation correspondante sur place selon le centre de détection et des seuils de surface.

Suivi de voie

Un réseau de régression produit une valeur de braquage par image, convertie par paliers en marche avant, virage à gauche ou à droite pour suivre le marquage de voie.

Poursuite de cible

La vitesse est ajustée selon la taille du cadre cible, le braquage suit l’écart de la cible par rapport au centre de l’image, et le véhicule s’arrête une fois une distance seuil atteinte.

Mode manuel

Commande au clavier : avant, arrière, gauche, droite, rotation sur place et déplacement latéral, avec réglage de vitesse, arrêt et capture d’image à tout moment.

Chaîne de commande

Le téléphone et la voiture partagent un réseau WLAN. Le téléphone envoie les commandes ; l’appareil les confirme et les exécute avant de piloter l’ESP32 par liaison série. Caméra et lidar renvoient leurs données à l’interface.

Application HarmonyOS
→
API HTTP locale
→
Appareil Ascend
→
Série · ESP32 · Châssis

Le projet embarqué

Le côté embarqué s’appuie sur l’exemple E2E officiel de Huawei, dont une copie non modifiée est conservée pour comparaison.

Version d’origine et version modifiée

Le projet d’origine est identique octet pour octet à l’exemple officiel. La version modifiée ajoute une caméra 3D à lumière structurée et porte la capture de 1280×720 à 1920×1080 ; la modification ne touche que sept fichiers, le reste demeurant inchangé.

Inférence embarquée

La reconnaissance s’exécute sur la carte avec des modèles Ascend hors ligne, couvrant la détection de panneaux, la régression de suivi de voie et la poursuite de cible, prétraitement et post-traitement inclus.

Lidar et cartographie

Comprend un projet d’essai RPLIDAR sous ROS2, utilisé pour collecter des nuages de points et valider la chaîne de cartographie.

Outils associés

Fournit le code d’entraînement et d’export du modèle de suivi de voie, un outil d’annotation automatique des marquages, ainsi qu’un firmware de véhicule ESP32 distinct avec son tutoriel en chinois.

Le client de commande sur téléphone

L’application HarmonyOS propose deux dispositions : en portrait, l’état de connexion, la vidéo, la barre lidar puis le pavé de commande se succèdent ; en paysage, la vidéo occupe l’écran et les joysticks comme les bandes lidar se superposent.

Vidéo et lidar

La vidéo arrive en un flux continu unique, sous lequel une barre lidar distincte affiche les distances gauche, avant et droite graduées par niveau d’alerte. En l’absence d’écho, l’application affiche « non mesuré » plutôt que de l’interpréter comme une distance sûre.

Commandes de conduite

Les quatre directions principales sont avant, virage à gauche, arrière et virage à droite ; les coins gèrent la rotation et le déplacement latéral. Une seule action est active à la fois, et glisser vers une nouvelle direction provoque d’abord l’arrêt. Le curseur de vitesse reste utilisable en mouvement.

Comportement sûr

Si la réception ou le décodage vidéo expire, le client abandonne la commande et arrête le véhicule, puis se reconnecte avec temporisation. Mouvement et réglage de vitesse sont bloqués jusqu’à l’arrivée d’une image live, et une ancienne session ne peut pas restaurer les touches ni les actions précédentes.

Captures et galerie

Les captures sont d’abord stockées sur le véhicule, puis téléchargées dans la galerie privée de l’application où elles subsistent après redémarrage. Les images ne rejoignent l’album système qu’après un téléchargement explicite et l’autorisation correspondante.

État du projet

Les deux parties disposent de code et de documentation. La compilation de l’application et les vérifications hors ligne ne prouvent pas le comportement réel. Le sens des roues, l’intégration caméra/lidar, le WLAN et l’arrêt lors d’une perte de contrôle restent à tester sur la voiture.

Technologies : Python · ArkTS · HarmonyOS · Orange Pi AI Pro / Ascend · ESP32 · API HTTP · Liaison série · Caméra · Lidar
Retour aux projets