📑 Sommaire
- → Un capteur dToF conçu pour les environnements exigeants
- → Un pilote ROS unifié : ROS 1 Noetic et ROS 2 Humble/Lyrical
- → Points clés du pilote :
- → Trois modes de transport, une API unifiée
- → Détails des transports :
- → Outils de visualisation et démonstrations
- → Pourquoi ce pilote est une révolution pour les développeurs ?
- → Benchmarks et performances
- → Comment l’essayer ?
- → Perspectives et limites
- → Verdict : un capteur prêt pour l’industrie 4.0
- Série (UART) : idéal pour les microcontrôleurs ou les systèmes embarqués légers.
- UDP : pour une intégration réseau, avec une configuration automatique de l’interface (nécessite des droits `CAP_NET_RAW` sous Linux).
- UVC : pour une utilisation comme périphérique vidéo standard (compatible avec les outils de vision par ordinateur comme OpenCV).
Un capteur dToF conçu pour les environnements exigeants
Le HM-LD1 est un lidar dToF (direct Time-of-Flight) conçu pour résister aux conditions extrêmes, notamment en extérieur sous un éclairement intense (jusqu’à 80 klux). Contrairement à de nombreux capteurs optiques, il maintient une portée stable de 8 mètres même dans ces conditions, et jusqu’à 25 mètres en intérieur. Son architecture repose sur une puce SSL (Single Shot LiDAR) qui permet de mesurer la distance en une seule impulsion, réduisant ainsi la latence et la consommation énergétique.
Ce module se distingue aussi par sa flexibilité : il supporte trois modes de transport pour transmettre ses données :
Un pilote ROS unifié : ROS 1 Noetic et ROS 2 Humble/Lyrical
Le cœur de l’innovation réside dans le pilote open source développé par myrobotproject, qui unifie la gestion du HM-LD1 sous ROS 1 (Noetic) et ROS 2 (Humble/Lyrical). Ce pilote permet de publier directement dans l’écosystème ROS :
Points clés du pilote :
Trois modes de transport, une API unifiée
Le SDK associé au pilote expose une API C++17 simple et cohérente, indépendante du transport utilisé. Voici un exemple minimal pour initialiser le capteur en mode UDP :
#include <hm_ld1_sdk/hm_ld1_sdk.hpp>
int main() {
hm_ld1::Camera camera;
hm_ld1::CameraConfig config;
// Configuration UDP
config.transportType = hm_ld1::TransportType::Udp;
config.udp.bindAddress = "0.0.0.0";
config.udp.port = 2368;
config.udp.interfaceName = "eth0";
if (!camera.Open(config)) {
std::cerr << "Échec de l'ouverture du capteur." << std::endl;
return 1;
}
// Boucle de lecture des trames
for (;;) {
hm_ld1::FrameSet frame;
if (!camera.Poll(&frame)) {
std::cerr << "Erreur de lecture." << std::endl;
break;
}
// Affichage des métadonnées
std::cout << "Trame #" << frame.sequence
<< " | Profondeur: " << frame.depth.width << "x" << frame.depth.height
<< " | Points: " << frame.pointCloud.size()
<< std::endl;
}
camera.Close();
return 0;
}Détails des transports :
| Transport | Plateforme | Remarques |
|---|---|---|
| Série | Windows/Linux | Débit par défaut : 921 600 bauds. |
| UDP | Linux uniquement | Nécessite des droits `root` ou `CAP_NET_RAW`. |
| UVC | Linux uniquement | Utilise le pilote V4L2 standard (ex: `/dev/video0`). |
Outils de visualisation et démonstrations
Pour faciliter le développement, myrobotproject fournit aussi des démonstrations OpenCV prêtes à l’emploi :
Exemple de lancement pour afficher un nuage de points en mode UVC :
./hm_ld1_pointcloud_viewer --transport uvc --uvc-device /dev/video0Pourquoi ce pilote est une révolution pour les développeurs ?
1. Réduction du temps d’intégration : Plus besoin de réécrire un pilote pour chaque projet. Le code est open source, documenté et maintenu activement.
2. Portabilité : Compatible avec les cartes embarquées populaires (Raspberry Pi, Jetson, etc.) et les systèmes Linux standards.
3. Robustesse : Gestion des erreurs, reconnexion automatique et diagnostics intégrés.
4. Flexibilité : Support des trois modes de transport, avec une API unifiée pour tous.
Benchmarks et performances
D’après les tests publiés par myrobotproject, le HM-LD1 avec le pilote ROS atteint :
Comment l’essayer ?
1. Cloner le dépôt :
git clone https://github.com/myrobotproject/HM-LD1-ROS1-ROS2-driver.git
cd HM-LD1-ROS1-ROS2-driver2. Installer les dépendances (ROS, CMake, OpenCV pour les démos).
3. Compiler et installer :
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local
make -j$(nproc)
sudo make install4. Lancer le nœud ROS :
ros2 run hm_ld1_ros2_node hm_ld1_node --ros-args -p transport:=udpPerspectives et limites
Verdict : un capteur prêt pour l’industrie 4.0
Le HM-LD1, couplé à son pilote ROS open source, devient un outil clé en main pour les intégrateurs de robots. Que ce soit pour la navigation autonome, la manipulation d’objets ou la cartographie 3D, ce module offre une solution fiable, flexible et économique.
Note de l’analyste :
> « Ce pilote unifié est un game-changer pour les développeurs. Il réduit les frictions entre ROS 1 et ROS 2, tout en offrant une API stable et documentée. » — openrobotics.org
Pour aller plus loin :