NMS Driver for the Hitachi-LG LDS 360 degree lidar.
How to add the Hitachi-LG LDS Lidar robot skill
- Load the most recent release of ARC (Get ARC).
- Press the Project tab from the top menu bar in ARC.
- Press Add Robot Skill from the button ribbon bar in ARC.
- Choose the Navigation category tab.
- Press the Hitachi-LG LDS Lidar icon to add the robot skill to your project.
Don't have a robot yet?
Follow the Getting Started Guide to build a robot and use the Hitachi-LG LDS Lidar robot skill.
How to use the Hitachi-LG LDS Lidar robot skill
NMS Driver for the Hitachi-LG LDS 360-degree lidar. This robot skill connects to the Lidar and pushes the data into ARC's NMS (navigation messaging system) to be used with level 1 navigation viewers. To understand how this skill can be used, reference the NMS manual page.
Screenshot
Configuration
1) BaudRate value The baud rate for communication to the USB serial adapter or Arduino. By default, the baud rate for the lidar should be 230400. However, some USB serial converters use different baud rates between the PC's USB port. The baud rate between the lidar and USB adapter must be 230400.
2) Offset Degrees value Correct the angle that the lidar is mounted
3) Advanced communication parsing checkbox Include debug information in the log window. This is only recommended if asked by Synthiam to help debug a communication issue. Otherwise, this will use a lot of resources.
4) Set variables with location data checkbox If you're not using the NMS, check this option. The global variables will be created for the scan data if this checkbox is checked.
5) Fake NMS Pose hint event checkbox The Better Navigator can use the Hector SLAM pose hint, which will not require a pose sensor. You can enable this option if you have The Better Navigator configured to use Hector as the pose hint. This will send a "fake" pose hint of 0,0 to the NMS so that the pose event will run after every lidar scan.
6) RTS Enabled checkbox RTS (Ready To Send) is an optional signal line for UART communication. Some USB adapters, specifically some Arduinos, may require this to be enabled. If your USB Serial adapter is not responding, you may need to enable or disable this option.
7) DTR Enabled checkbox DTR (Data Terminal Ready) is an optional signal line for UART communication. Some USB adapters, specifically some Arduinos, may require this to be enabled. If your USB Serial adapter is not responding, you may need to enable or disable this option.
NMS (Navigation Messaging System)
This skill operates in Level #3 Group #1 and publishes obstacle detection to the NMS. While some SLAM systems will attempt to determine the robot's cartesian position without telemetry, it is best to combine this skill with a Group #2 sensor.A recommended navigation robot skill is The Better Navigator, which uses the NMS data.
Program the LIDAR in Blockly Like all Synthiam controls, the Blockly programming language can be used. In the example below, the robot will speak when an object has come close to it. It will also speak the degrees of where the object was. To see this program in action, click HERE.
Variables You can view the variables this skill creates in the configuration menu of this control. The variables hold the most recent values of the lidar's minimum/maximum distance, degrees, and running status. Here is a list showing the variables using the Variable Watcher robot skill.
Arduino Sketch
There are two ways to connect to this lidar. You can use a standard USB<->UART converter, such as those on Amazon or eBay. Or you can use a 32u4-based Arduino board (i.e., Micro) to make your own USB<->UART converter. The 32u4-based boards are necessary Arduino versions because they support emulating USB HID devices, such as serial devices.Here is a simple sketch that can be used on a 32u4-based board...
void setup() {
Serial1.begin(230400); // Init Hardware Serial port on pins 0 and 1
Serial.begin(230400); // Init Serial Port
}
void loop() {
if (Serial.available())
Serial1.write(Serial.read());
if (Serial1.available())
Serial.write(Serial1.read());
}
Wiring
GREY - Ground RED - +5 GREEN - RX (connects to TX on Arduino or USB Converter) BROWN - TX (connects to RX on Arduino or USB converter)Robotis USB <-> UART Converter
The Robotis version of this sensor may include their USB UART converter, which uses a CP210x chipset. The driver for Windows can be found by clicking here: CP210x_Windows_Drivers.zipVideos
Real-time SLAM mappingRoom Mapping
Near Object Detection
If it starts spinning, the rx on the lidar is correct. However it sounds like the tx from the lidar to the usb serial is not correct.
also ensure you have the correct baudrate in the robot skill as per the above manual. I think the lidar baudrate is 230400 but not sure about your serial usb adapter and what it supports or how it’s configured.
Something else that may be an issue - if you have the baudrate correct and 100% about the tx is that the usb serial adapter may not have enough power for the lidar on the 5v output. The motor on the lidar doesn’t draw much current, but it could brownout the usb serial adapter. Try a usb powered hub just in case. Or, power the lidar separately.
@DJ Sures
I tried using a separate 5V source with no luck. I also tried all other baud rates available for CH340. The CH340 supports the following common baud rates: 50, 75, 100, 110, 134.5, 150, 300, 600, 900, 1200, 1800, 2400, 3600, 4800, 9600, 14400, 19200, 28800, 33600, 38400, 56000, 57600, 76800, 115200, 128000, 153600, 230400, 460800, 921600, 1500000, and 2000000. However, it seems to only start spinning with no display data when I use the baud rate of 230400.
It still sounds like the tx is not connected correctly to the rx of the serial usb. Hmmm. I can add a debug option to the robot skill that shows if any information is being received. Let me think about that and I’ll let you know
in the meantime try to check the tx connected to rx because that’s the only thing that would be causing it. Even if bad data is received, you’d get a message in the log window about it
Oh wait I wonder if that usb serial device requires a flow control!! I bet that’s it. I can add it as an option to the skill. That’ll be better than a debug because the code already presents any incorrect received info as a warning.
stay tuned I can do it tomorrow for you
Updated with options to enable or disable RTS/DTR for communication. Read the manual above or the blue question marks for information on using these options.
The LIDAR is now working after you changed the USB UART adapter to the LINK V1.0 CP2104 with an external 5V power supply. Thank you so much, DJ, for your great support and fast response."
but I think the distance reading its not accurate do have to change to RP lidar ?
The 360 lidar does work with the software. I had it going nicely to multiple locations in my garage (8 months ago) and connected the lidar directly to the computer. Had to set it aside for a while because it was not processing quite quick enough for me- which may be on my end with my laptop that I use for experimenting. I tried using it outside but the results were not what I had hoped for.