LiDAR ROS 2: como integrar o Hesai JT128 passo a passo
Guia de LiDAR com ROS 2: rede, driver oficial, config.yaml e validação no RViz 2 para integrar o Hesai JT128 ao seu robô.
Guia de LiDAR com ROS 2: rede, driver oficial, config.yaml e validação no RViz 2 para integrar o Hesai JT128 ao seu robô.
Para integrar um LiDAR Hesai ao ROS 2, você precisa de quatro coisas: alimentar o sensor, colocar o computador na mesma rede dele, compilar o driver oficial HesaiLidar_ROS_2.0 e apontar o arquivo de configuração para o IP do sensor. Com isso, o driver passa a publicar a nuvem de pontos no tópico /lidar_points, pronta para o RViz 2, o SLAM ou a pilha de navegação do robô.
Este guia usa como exemplo o Hesai JT128, um mini LiDAR 3D mecânico de 360° × 95° de campo de visão, mas o caminho é o mesmo para os modelos listados no repositório oficial, como JT64P, OT128, Pandar128 E3X, QT128C2X e AT128P. Todos os valores abaixo vêm do manual do JT128 (J01) e do repositório oficial no GitHub; confira sempre a versão mais recente antes de fechar o projeto.
Antes de começar, uma explicação rápida. ROS 2 (Robot Operating System 2) é a base de software mais usada em robótica móvel para trocar dados entre sensores, algoritmos e atuadores. Nuvem de pontos é o conjunto de pontos 3D (distância, ângulo e refletividade) que o LiDAR mede a cada volta. UDP é o protocolo de rede em que o sensor despeja esses dados continuamente, sem esperar confirmação do computador.

O fluxo completo cabe em cinco etapas. Cada uma é detalhada nas seções seguintes:
colcon;config.yaml com IP, portas e arquivo de calibração;O manual do JT128 indica tensão nominal de 9 a 32 V DC no conector do sensor e consumo típico de 8,4 W (a 25 °C e 10 Hz). A fonte externa deve entregar pelo menos 2,6 A e 30 W. O consumo não inclui acessórios como a caixa de conexão.
Na comunicação, o JT128 usa Ethernet padrão 100Base-TX. Em robôs, o cabo costuma ser o ponto mais frágil: o manual recomenda conectores bem fixados e, em ambientes com ruído elétrico, cabos Ethernet blindados com conectores aterrados. Evite emendas e tracionar o cabo na saída do sensor.
| Item | Valor (manual JT128 J01) |
|---|---|
| Tensão de entrada | 9 a 32 V DC |
| Consumo típico | 8,4 W (25 °C, 10 Hz) |
| Fonte recomendada | mínimo 2,6 A e 30 W |
| Interface de dados | Ethernet 100Base-TX |
| IP padrão do sensor | 192.168.1.201 |
| Porta UDP padrão (nuvem de pontos) | 2368 |
| Fontes de relógio | GNSS ou PTP (1588v2, 802.1AS) |
De fábrica, o JT128 sai com o IP 192.168.1.201, máscara 255.255.255.0 e gateway 192.168.1.1. O computador precisa ter um IP fixo na mesma faixa. O manual orienta usar 192.168.1.X, com X de 2 a 200 ou de 202 a 254 (o 201 é do sensor). No Ubuntu, que é a plataforma de referência do ROS 2, o comando é:
sudo ifconfig enp5s0 192.168.1.100
ping 192.168.1.201
Troque enp5s0 pelo nome da sua interface de rede (o comando ifconfig mostra qual interface tem pacotes recebidos). Se o ping responder, o cabo, a alimentação e a rede estão corretos. Se o seu projeto usa VLAN (rede virtual identificada por um número), o sensor e o computador precisam usar o mesmo VLAN ID; o manual traz os comandos ip link para criar a interface virtual.
O vídeo oficial do canal da Hesai mostra essa etapa na prática:
O driver é mantido pela própria Hesai e está em github.com/HesaiTechnology/HesaiLidar_ROS_2.0. Ele é construído sobre o HesaiLidar_SDK_2.0, escuta os pacotes UDP do sensor, interpreta os dados e publica cada volta completa como uma mensagem de nuvem de pontos. A lista de sensores compatíveis no README inclui JT128, JT64P e JT16 na série JT, além de OT128, Pandar128E3X, QT128C2X, AT128P, ATX e FTX, entre outros.
O README lista as combinações de sistema operacional e ROS 2 suportadas, como Ubuntu 22.04 com ROS 2 Humble e Ubuntu 24.04 com ROS 2 Jazzy. As dependências são as bibliotecas Boost e yaml-cpp. A sequência, copiada do README oficial, é esta:
sudo apt-get update
sudo apt-get install -y libboost-all-dev libyaml-cpp-dev
mkdir -p ~/hesai_ws/src && cd ~/hesai_ws/src
git clone --recurse-submodules https://github.com/HesaiTechnology/HesaiLidar_ROS_2.0.git
cd ~/hesai_ws
colcon build --symlink-install
. install/local_setup.bash
A opção --recurse-submodules é essencial: o SDK vem como submódulo, e sem ele a compilação falha. O colcon é a ferramenta de compilação padrão do ROS 2. Registre no seu projeto a versão (commit ou tag) do driver que você usou, para que a mesma compilação possa ser reproduzida em outros robôs.
Toda a configuração fica no arquivo config.yaml do pacote hesai_ros_driver. Para um sensor real conectado por cabo, defina source_type: 1 (conexão em tempo real) e preencha o bloco lidar_udp_type. Segundo o README, em geral basta configurar três campos:
| Parâmetro | O que faz | Valor típico |
|---|---|---|
device_ip_address | IP usado na recepção; se vazio, o driver usa o IP de origem dos pacotes UDP | 192.168.1.201 (padrão de fábrica do sensor) |
udp_port | Porta UDP de destino da nuvem de pontos | 2368 |
ptc_port | Porta do protocolo de controle (PTC) do sensor | 9347 |
correction_file_path | Caminho do arquivo de calibração angular do sensor | arquivo CSV do modelo |
Sobre o último campo: o README recomenda informar o arquivo de calibração para evitar falhas de interpretação caso o driver não consiga baixá-lo do sensor na partida. No caso do JT128, o arquivo de ângulos padrão (CSV) está disponível para download na página de produto e em Materiais, sem cadastro.
Os tópicos de saída também são configuráveis. Pelo README, o padrão é /lidar_points para a nuvem de pontos, /lidar_packets para os pacotes brutos, /lidar_imu para a IMU, nos modelos que a têm, e /lidar_packets_loss para monitorar perdas. O frame_id padrão é hesai_lidar; troque pelo nome do frame do sensor no seu URDF (descrição do robô). O driver também permite aplicar uma transformação fixa (x, y, z, roll, pitch, yaw) direto na nuvem de pontos.
Com tudo configurado, execute o lançamento do driver e, em outro terminal, confira o tópico:
ros2 launch hesai_ros_driver start.py
# em outro terminal
ros2 topic list
ros2 topic hz /lidar_points
O comando ros2 topic hz deve mostrar uma taxa próxima da configurada no sensor. O JT128 trabalha a 10 ou 20 Hz, ou seja, 10 ou 20 voltas completas por segundo. No RViz 2, adicione um display do tipo PointCloud2, escolha o tópico /lidar_points e defina o Fixed Frame com o mesmo valor do ros_frame_id. Se a imagem aparecer, a integração básica está pronta.
O tutorial oficial a seguir mostra a execução do driver com o sensor conectado:
A maior parte dos problemas de primeira integração vem da rede, não do ROS. Estes são os casos que mais aparecem, com a verificação correspondente:
| Sintoma | Causa provável | O que verificar |
|---|---|---|
ping não responde | IP do computador fora da faixa, cabo ou alimentação | IP 192.168.1.X (X diferente de 201), máscara 255.255.255.0, tensão de 9 a 32 V |
| Driver inicia, mas não há nuvem | Firewall bloqueando UDP ou porta divergente | Porta 2368 liberada e udp_port igual ao destino configurado no sensor |
| Taxa de pontos instável | Perda de pacotes UDP | Tópico /lidar_packets_loss, cabo, switch e carga da CPU |
| Nuvem deformada | Calibração angular ausente | Informar correction_file_path com o CSV do modelo |
| Vários sensores se misturam | Destino em broadcast compartilhado | Um IP e uma porta de destino distintos por sensor |
Em robôs com mais de um LiDAR, o README do driver traz exemplos de configuração com vários sensores, cada um com seus próprios tópicos (por exemplo, /lidar_points_2 para o segundo).
Para fusão de sensores (LiDAR com câmera, IMU ou odometria), os carimbos de tempo precisam estar alinhados. O JT128 aceita como fonte de relógio GNSS ou PTP, nas variantes 1588v2 sobre UDP/IP, 1588v2 sobre camada 2, 802.1AS e 802.1AS Automotive. PTP (Precision Time Protocol) é o protocolo que sincroniza relógios pela própria rede Ethernet, sem cabo extra de pulso por segundo (PPS).
No driver, o parâmetro use_timestamp_type define qual carimbo vai para a mensagem: o do próprio sensor (0) ou o de recepção no computador (1). Para fusão de sensores, prefira o carimbo do sensor, desde que ele esteja sincronizado com o resto do robô via PTP ou GNSS. Os detalhes de configuração do PTP estão no apêndice do manual do modelo.
O JT128 User Manual (J01-en) traz especificações, rede, formato dos pacotes UDP e ajustes de PTP. Ele está na página Materiais, junto com o modelo 3D (para projetar o suporte no CAD) e o arquivo de ângulos. Para comparar com outros mini LiDARs antes de decidir, use o comparador de modelos ou a tabela de especificações.
Se o seu projeto ainda está na fase de escolher a arquitetura do sensor, leia também os posts Robôs humanoides da Unitree usam LiDAR JT128 e Hesai apresenta a plataforma Kosmo e o LiDAR robótico série JT na WAIC 2026, que mostram a série JT em aplicações reais. São cases do fabricante e de parceiros internacionais. As especificações do JT128 citadas aqui são valores típicos de fábrica, sob condições de teste (alcance de 40 m @10% de refletividade); a certificação do sistema final do robô é responsabilidade do integrador.
Sim. O repositório oficial HesaiLidar_ROS_2.0 lista o JT128 entre os sensores compatíveis e publica a nuvem de pontos como mensagem PointCloud2. O README cita suporte a versões como Humble e Jazzy no Ubuntu; confira no repositório a combinação mais recente.
O IP de fábrica é 192.168.1.201, com máscara 255.255.255.0. Configure o computador com um IP fixo em 192.168.1.X (X diferente de 201) e teste a conexão com ping 192.168.1.201.
O README recomenda informar o correction_file_path para evitar falhas de interpretação da nuvem de pontos caso o arquivo não possa ser obtido do sensor. O CSV de ângulos do JT128 está disponível em Materiais.
Sim, o driver suporta vários modelos das séries Pandar, OT, QT, XT, AT, FT e JT. Mudam parâmetros específicos de cada sensor; consulte o manual do modelo e o README do repositório.
Use cabo e switch adequados, reserve a interface de rede para o LiDAR e monitore o tópico /lidar_packets_loss do driver. Se a CPU estiver saturada, reduza processamentos paralelos ou ajuste o número de threads do parser no config.yaml.
A distribuidora oficial TrackFY acompanha a integração do projeto, desde o posicionamento do sensor e o orçamento de energia até a primeira aquisição de nuvem de pontos, com suporte de engenharia em português.
Hesai Brasil — Distribuidor Oficial (TrackFY)
Nota fiscal brasileira, garantia de fábrica registrada, manutenção credenciada e suporte de engenharia em português, da especificação à integração.
👉 Conheça todos os sensores em hesaitech.com.br · Solicitar orçamento do JT128 · Falar no WhatsApp
Continue lendo

De portões de aeroporto e pátios logísticos a portos e terminais ferroviários, o posicionamento de precisão abre uma…

Hesai XT32: veja alcance, FOV, peso e precisão de ±1 cm do PandarXT32 e quando escolher o modelo…

Colaboração entre Bike-Facilities, Ursa Dynamics, FlashEye e Hesai transforma postes e estruturas já instalados em fontes de inteligência…
LiDAR Hesai em ação
Demonstrações de nuvem de pontos, projetos reais e integrações registradas pelo canal oficial da Hesai Technology.
Projeto
Evento
Evento
Escolha quais categorias de cookies você permite. Você pode mudar de ideia quando quiser, pelo link "Preferências de cookies" no rodapé do site. Política de Privacidade.
Mantêm o site seguro e funcionando: proteção contra spam nos formulários, segurança e o registro da sua escolha de cookies.
Ajudam a entender quais páginas são mais úteis e como melhorar o site (ferramentas de análise, como o Google Analytics). Podem incluir cookies _ga.
Permitem medir campanhas do Google Ads e lembrar de qual anúncio você veio, para atendermos melhor o seu contato. Podem incluir cookies _gcl_* e tf_attr.