SCRAPER est un système modulable permettant de modifier tout type de machine de chantier en véhicule pilotable à distance. En fonction des besoins, le pilotage peut se faire à vue ou au travers d'une cabine en réalité virtuelle.
J'ai eu la chance et le plaisir de pouvoir développer une partie importante des systèmes impliqués , allant des différentes type d'application utilisateurs (Web, Desktop), des différents réseaux de communication (RF, IP, CANBus), jusqu'aux électroniques embarquées dans les machines
Applications Desktop et Web
Remote Cockpit : Unity 3D (C#)
Le pilotage à distance s’effectue à travers l’utilisation de Joystick et d’un casque de réalité virtuelle permettant une immersion complète. La caméra stéréoscopique montée dans le véhicule transmet à travers un réseau IP (switch, wifi) un flux vidéo pour chaque œil que l’on projette respective sur chaque lentille du casque VR permettant de retranscrire fidèlement la profondeur. Au sein du cockpit virtuelle il est aussi possible d’effectuer des actions directement (allumage/extinction d'élements, affichage panneau de diagnostic), de visualiser les états de la machine.
- Gestion des flux vidéo principaux (cameras stéréos : H.264) et secondaires (camera simple : RTSP)
- Affichage en temps réel des données de la machine (capteurs, états interne du logiciel de l’électronique de contrôle) de la machine distante.
- Panneau de diagnostic éléments du réseau IP (switch, wifi) permettant le rapatriement des flux vidéo et capteurs.
- Interaction avec des éléments non critique sur la machine : phares, caméra
- Affichage sur écrans conventionnelles d'interfaces complémentaires utilisés par le copilot

Pour des raisons de sécurité la transmission des commandes de pilotage (allumage/extinction moteur, régime moteur, bouton arrêt d'urgence, commandes de pilotages,...)se fait à travers un canal RF dédié. Dans les premières versions de SCRAPER la transmission RF étaient réalisés par des électroniques que j’ai conçus. Par la suite nous nous sommes tournés vers des systèmes proposé par Hetronic
KEYWORDS : .NET , C#, Unity 3D, Visual Studio, Oculus Rift, H.264, RTCP, IP
Outil de développement et d'analyse : .NET WPF (C#) et Unity 3D (C#)
Afin de répondre aux besoins apparaissant durant le développement , la production, et le suivi SAV j'ai conçu une suite logiciel permettant de:
- Faire des tests d'intégration en continu de nos électronique de contrôle basé sur TTC580
- Simuler nos machines dans un environnement virtuel
- Faire des analyses temps réels des systèmes critiques : Logiciel embarqué, capteurs, elements réseau CAN
Pour cela j'ai développé une application WPF qui communique en temps réel avec le microcontrôleur au travers du programmeur LauterBach, aux éléments réseau par l'interface ethernet/Wifi, au réseau CAN avec une sonde Peak PCAN. Cette application seule suffit à couvrir la majorité des besoins. Elle peut être utilisée en conjonction avec un autre logiciel via une passerelle TCP/IP dédiée, en conséquence nous pouvons transmettre/recevoir des données à un autre logiciel type python, ou Matlab Simulink. Dans notre cas j'ai développé une autre application sous Unity 3D ou je simule des machines de chantier et déminage. Ce logiciel Unity est le seul dont je puisse vous partager une capture car je l'ai fait à titre privé, ..Ci-dessous un descriptions des features de ces logiciels

Digger D-DEBUG : WPF
- Communication en temps réel avec la mémoire du microcontrôleur TMS570 en utilisant l'API Trace 32 fourni par le programmeur LauterBach
- Communication temps réel avec élements réseau IP
- Communication temps réel avec éléments réseaux CAN
- Conception d'un IDE intégré permettant d'écrire des script C# que l'on compile ensuite à la volée (Runtime Compilation) pour obtenir des DLL. Ceci permet d'étendre les fonctionnalités existantes facilement, d'écrire des tests, de simuler des comportements etc.
- Possibilité de remplacer tous les capteurs, actuateurs physique par des virtuelles en créant dynamiquement des panneaux de contrôle. Ces entrées virtuelles sont ensuite soit écrites dans la mémoire du microcontrôleur, soit transmises sur le CAN . En conséquence ,du point de vue du microcontrôleur ces entrées sont considérées comme réelles.
- Affichage de toutes les données pertinentes en temps réel sous forme de graphe. Les états logiciels peuvent être représentés sous forme de diagramme de séquence, les valeurs de capteurs sous forme de courbe ou de gauges, etc. Ceci encore une fois complètement de manière dynamique
- Possibilité de communiquer avec un autre logiciel en temps réel par IP pour étendre les possibilité de simulation
Digger D-SIM: UNITY 3D
- Pilotage dans un environnement virtuelle 3D de machine de chantiers ou déminage
- Renvoie de valeurs de capteurs virtuelle (vitesse,régime moteur, forces verrins hydrauliques, inclinomètre,....)
- Définition d'une API pour le pilotage de l'application au travers d'une autre application
KEYWORDS : .NET , WPF, Unity 3D, C# , Visual Studio, IP, CAN, Microcontroleur, Test,
Outil de configuration et de monitoring pour client : Application Web
Les clients souhaitaient pouvoir suivre en temps réel la mise en route des systèmes (connectivité IP, status caméra, ...), avoir un retour en cas de panne , ou encore pouvoir configurer des profils de pilotage. Pour cela j'ai créé une application Web
- Frontend : HTML,CSS, Javascript, Bootstrap
- Backend : API Web sur Node.JS hébergé dans un RaspBerry PI embarquée dans la machine. Pas de base de données, les valeurs étaient sauvegardés dans la mémoire de l'électronique de contrôle (EEPROM), la mémoire des élement du réseau IP ou des caméras (NVRAM)
- Le serveur embarqué Node.JS effectué de manière autonome des test réseaux, et communiquait avec l'électronique de contrôle par le réseau CAN et les éléments IP par Ethernet
KEYWORDS : Single Page Application , HTML,CSS,Javascript, Node.JS, RaspBerry PI, Linux, Can, Réseau IP
Telecommunication
Réseau IP
Utilisé pour le rapatriement vidéo et capteurs, les échanges avec le serveur embarqué relatif a l’application Web cité plus haut. Ce réseau IP à été réalisé avec des produits Ubiquiti
- VLAN: Routage inter-vlan , trunking
- Bridge Wifi longue portée
- Services DHCP et DNS
Réseau CAN avec norme J1939
Standard technologique pour la communication dans les machines industrielles, notamment en automobile. Nous utilisions la norme SAE J1939
- Dimensionnement du Bus et configuration des paramètres de communication (Baud Rate, Type de Frame ,Adressage, ...)
- Développement d'un analyseur J1939 avec WPF comme mentionné plus haut
- Configuration du comportements des élements CAN (valeurs de seuil, pattern de communication,,,)
Communication RF
Pour des raisons de sécurité ce type de transmission est utilisé pour l’envoie des données de pilotage. SCRAPER a eu différentes versions, dans les premières la transmission se faisait grâce des radio-modems que j’avais conçu (voir section électronique). Dans les dernières nous achetions ce transmetteur auprès de Hetronic. Dans les deux cas le récepteur opéré des vérifications sur les données puis convertissait ces dernières avant de les transmettre sur le réseau CAN Bus
Electronique
RF Remote Cockpit
Conception hardware et software d’une électronique qui acquiert les données des joysticks CAN et autres actuateurs (switches, potentiomètre, ...) avant de les transmettre via un canal RF.
- Prototypage puis conception de la carte sous Altium Designer
- Programmation Bare-Metal du microcontrôleur en C sur cible Atmega128RFA1
- Les joysticks sont les mêmes que ceux qu’on peut trouver dans une vraie cabine. Ils sont interfacés sur le CAN. L’acquisition des données sur le microcontrôleur se faisait via SPI au travers d’un convertisseur CAN-SPI MCP2515
- Algorithmes et machines d’états pour la gestion la communication (puissance d’émission, retransmission) basé sur des valeurs renvoyées par le récepteur (RSSI, Erreur de transmission, Ping)
KEYWORDS : .Atmega128RFA1, C, Atmel Studio, SPI, CAN, MCP2515, AD, RF 433 MHZ, ALTIUM DESIGNER
Récepteur RF sur machine
Même carte décrite ci-dessus mais la conversion se faisant dans l’autre sens
Electronique de contrôle
Il s’agit de l'électronique qui pilote la machine (moteur, électrovannes,..) et qui la monitor via l'acquisition de capteurs. Dans les premières versions de SCRAPER nous utilisions des électroniques développer entièrement chez nous, les MIO2, puis nous avons migrer vers les électroniques TTC580
- Programmation en C type Bare-Metal sur MIO2 et FreeRTOS (SaferRTOS) sur TTC580
- Utilisations de divers types d’interfaces pour l’acquisition capteurs, le pilotage des actuateurs, et la communication avec serveur Web
embarqué : PWM, tout ou rien, Analog to Digital, SPI, I2C, CANBus - API Can pour la lecture et écriture de configurations
- Stockages des données de configuration dans EEPROM
- Contrôle des données de pilotage (intégrité CRC, respect séquence et timing inter-frame,)
- Test d'intégration réalisé avec l'application WPF mentionné plus haut
- Test unitaire avec Google Test
KEYWORDS : TMS570, ATMEGA128CAN , CAN, PWM, SPI, AD, C , I2C, PID, EEPROM, RTOS, BARE-METAL , Google Test
Electronique d'extension ou de conversion
A certaines occasions les électroniques de contrôle ci-dessus ne couvraient pas tout nos besoins, il a fallu donc étendre celle-ci avec des électronique d’extension ou d'adaptation.
- Conception de prototypes
- Réalisation des PCB avec Altium Designer
- Développement logiciel microcontrôleur Atmega128CAN






