Chromium icon Chromium Configurable Chromium browser skill for ARC: navigate URLs, print, open in PC browser, maximize/restore, set page content to a global variable. Try it →
Japan
Asked

Roli LDS Lidar NMS Alignment

I mounted a Hitachi-LG LDS on my Roli Rover and I’m trying to feed it into ARC’s NMS for mapping with Better Navigator, but the map heading is consistently off by about 90 degrees when the rover turns. Hardware: Roli Rover (EZ-B v4 over Wi-Fi for drive control), Windows laptop USB to the LDS via a CP2102 adapter, LDS powered from a 5V BEC off Roli’s main battery. Robot skills in ARC: Hitachi-LG LDS Lidar and Better Navigator, plus the Roli Continuous servo Movement Panel. In the Hitachi-LG LDS Lidar skill I have: COM5, BaudRate 230400, Advanced parsing off, Set variables with location data off, Fake NMS Pose hint on, Offset Degrees set to +15 (the sensor is physically about 15 yawed relative to the chassis due to the bracket). Better Navigator is using Hector SLAM with no separate pose sensor. What I expect: when I rotate Roli in place 90 to the right using the Movement Panel arrows, the obstacles in the NMS viewer should rotate accordingly and maintain correct bearing. What I observe: the map rotates, but it’s roughly a right-angle out of sync; walls that were in front end up shown to the left. If I hand-rotate the LDS while Roli is stationary, the orientation in the viewer looks correct (Offset tweakable), so the raw scan seems fine. Things I tried: flipping the Offset Degrees through -180..+180 in 5 steps; turning Fake NMS Pose hint off (then Better Navigator stops tracking pose); starting Better Navigator before/after the Lidar skill; power-cycling the EZ-B and the LDS; verifying 230400 by opening the COM port with a terminal (data streams cleanly). Is there a recommended configuration/order of operations for Roli (no wheel encoders) so that Better Navigator’s heading matches the rover, and how should I set Offset Degrees and the Fake NMS Pose hint to avoid the consistent 90 misalignment?



Related Hardware (view all EZB hardware)
Roli Rover by EZ-Robot
Roli WiFi planetary rover kit, customizable with 13 ez-bit ports for add-ons, built to traverse varied surfaces. Sold by EZ-Robot
Wi-Fi / USB
Servos 24
Camera
Audio
UART 3
I2C
ADC 8
Digital 24

Related Robot Skills (view all robot skills)
Hitachi-LG LDS 360-degree LiDAR driver streaming scans into ARC NMS for obstacle detection, SLAM use, Arduino hookup, config options and variables.
Hector SLAM-based ARC navigator that maps with lidar/depth, saves waypoints, plans paths and autonomously navigates while avoiding obstacles.

ARC Pro

Upgrade to ARC Pro

Join the ARC Pro community and gain access to a wealth of resources and support, ensuring your robot's success.

Author Avatar
PRO
Canada
Twitter YouTube GitHub
#1  

Yes - for a 360 LiDAR only setup on Roli Rover, the usual approach is:

  • Hitachi-LG LDS Lidar skill:
    • Fake NMS Pose hint = On
    • Offset Degrees = used only to align the scan to the robot’s forward direction
  • The Better Navigator:
    • Pose Hint Source = Hector
    • No separate pose sensor needed

Since your raw scan looks correct when you manually rotate the LDS, the LiDAR itself is likely fine. The 90 mismatch when the rover turns usually means the pose heading and scan origin are not using the same forward reference.

What to try first

1) Keep Fake NMS Pose hint enabled

That part is correct for a LiDAR-only mapping setup.

2) Set Offset Degrees so the LiDAR "front" matches the rover front

Offset Degrees should compensate for the sensor’s physical mounting angle, not the robot’s navigation heading.
If the bracket is only 15 yawed, then +15 sounds reasonable.

But if the whole map is rotating 90 off when the robot turns, that often means the system is treating the LiDAR’s zero-degree reference as being sideways relative to the chassis.

Try these checks:

  • If walls that are in front appear on the left, your LiDAR forward reference may need a +90 or -90 correction somewhere.
  • Since the scan looks right when you hand-rotate the LDS, the more likely issue is not the laser scan offset, but how the robot heading is being interpreted by the pose source.

Hitachi-LG LDS Lidar

  • COM5
  • 230400
  • Advanced parsing = off
  • Set variables with location data = off unless you’re scripting from them
  • Fake NMS Pose hint = on
  • Offset Degrees = set so degree 0 points directly out the robot’s front

The Better Navigator

  • Pose Hint Source = Hector
  • Use the 360 lidar only
  • Do not add a wheel-encoder pose sensor if you don’t have one

Order of operations

A stable startup order is:

  1. Connect the EZ-B v4 / movement panel
  2. Start the Hitachi-LG LDS Lidar skill
  3. Confirm the scan is publishing
  4. Start The Better Navigator
  5. Let the map initialize, then rotate the rover slowly to build the map

That said, startup order usually won’t fix a clean 90 offset if the coordinate reference is off.

Why this happens

In ARC’s NMS, the LiDAR scan angle and the robot pose heading are separate things:

  • Offset Degrees = where the LiDAR’s scan "front" points
  • Pose heading = where the robot is facing in the world

If those two references don’t agree, the map can look rotated even though the scan itself is correct.

Best next test

Try this exact experiment:

  1. Set Offset Degrees = 0
  2. Keep Fake NMS Pose hint = on
  3. Start the LiDAR and Better Navigator
  4. Point the rover straight ahead into a known wall
  5. Rotate the rover exactly 90 right
  6. See if the wall now appears where expected

Then test:

  • +90
  • -90

If one of those instantly fixes the heading, then the issue is simply the scan reference being 90 off.

Important note for Roli

Because the Roli Continuous servo Movement Panel doesn’t provide true odometry, Hector-only navigation can still drift during turns. That’s normal. For cleaner results, move slowly when building the map.

Helpful docs

My recommendation

For your case, I would:

  • keep Fake NMS Pose hint = on
  • keep Better Navigator = Hector
  • leave the lidar skill running first
  • test Offset Degrees at 0, +90, -90 before assuming the bracket’s 15 needs to be preserved

If you want, I can help you narrow this down with a step-by-step calibration procedure for finding the exact offset on your Roli setup.

I am a customer support AI and still learning. Please verify important answers in our support documentation. For advanced AI features, use the AI Script Agent built into ARC.