NMS Lidar driver for Slamtec RPLidar A1
How to add the Rplidar (A1) 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 Rplidar (A1) 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 Rplidar (A1) robot skill.
How to use the Rplidar (A1) robot skill
NMS Lidar driver for Slamtec RPLidar A1. This pushes scan data to the ARC NMS (Navigation Messaging System) as a level #3 Group #1 sensor. 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. Read the NMS manual page to understand how this skill can be used.
That might sound more confusing than it needs to be. But, all that means is this sensor will detect the distances of objects using a laser in a 360-degree circle around the robot. It takes that data and pushes it to another robot skill that can display the data and use the information for navigation. The NMS manual explains more about how to set it up. Some videos also demonstrate how to set it up with similar hardware.
Main Window
Configuration
1) BaudRate The baud rate for the communication. By default, the controller included by the manufacturer is 115200. There are two other advanced settings for the serial port:
- RTS Enable: some USB adapters may require this enabled (Ready To Send), a flow control feature.
- DTS Enable: Data Terminal Ready is often not required. Generally, the RTS would need to be enabled, but not this. However, if you have issues with your USB adapter, you may try it.
2) Offset Degrees Correct the angle that the lidar is mounted
3) Advanced communication parsing 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 If you're not using the NMS, check this option to create global variables for the scan data. Otherwise, keep this unchecked because it will use a significant CPU.
5) Fake NMS Pose hint event 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.
NMS (Navigation Messaging System) Stack
This skill operates in Level #3 Group #1. It publishes obstacle detection to the NMS. While some SLAM systems will attempt to determine the cartesian position of the robot without telemetry, it is best to combine this skill with a Group #2 sensor.How to Use
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 a similar lidar program in action, click HERE.Cheat Sheet Shortcuts There are several ControlCommand() commands for this robot skill. For a complete list, view the Cheat Sheet of this control. The commands will start and stop.
Variables In the configuration menu of this control, you can view the variables this skill creates. The variables hold the most recent values of the lidar's minimum/maximum distance, degrees, and running status.
It's great to have this Skill available, but until now I just got this screen
I push Start and only takes a couple to seconds to return again to Start with that message. I appreciate any suggestion to continue. Also any video showing how this works together with the new Navigator would be great.
Pablo
Try the latest version - see if that works for your model. There's a few differences amongst RPI models
The Better navigator is probably a smarter choice for this device. You can read about it on it's manual page and the NMS page. There's about 5-6 videos related to the NMS that you can watch on it. Also it's the same as using the Hitachi Lidar, so the videos and hack videos will be the same for this.
Thanks DJ for the very fast reply!!, unfortunately I am having the same result. I checked the lidar with the serial terminal and is answering the Hex commands like reset, start scan etc. , also the Frame Grabber app and is displaying ok the scan. I Appreciate any other comment or suggestions. Pablo
I don't have one to test with - so i ordered one. It'll be here this week. I can take a closer look in a week to find out what is going on
That sounds good. Thank you!
Keep your eye on this robot skill instead of the navigator: https://synthiam.com/Support/Skills/Navigation/The-Better-Navigator?id=20956
This one is The Better Navigator and has more innovative path planning - and fuses multiple telemetry sensors to get a better pose estimation. It's still in development, and I'm working on it tonight while I type this. There are a few tweaks I'm finishing. I think it'll be awesome.
Excellent. By the way I have the intel realsense 435 and T265 to feed the navigator also. I will be ready to test it!.
Nice - you can try The Better Navigator now if you wish. It "sort of" works but doesn't have auto path planning with the current version.
Actually, you can add all three sensors (realsense & lidar) for The Better Navigator to get even more data fusing lol.
I can not wait to have those 3 working!. Also auto path planning will be something great.
The RPI Lidar A1 arrived today, and I got it working. Big surprise, but the example opensource code was broken that I built the skill from. What else is new
I can't update the robot skill until I update ARC. The ARC NMS is being updated to a new revision, so all of the NMS robot skills need to be updated simultaneously.
Thanks DJ, I will be waiting for the NMS update.
Hi, I tested this new skill version and Is working now!! Thanks DJ for the prompt fix. Tomorrow I will test the updated navigator. Impresive work done with all the recent updates.!
Updated with performance improvement
Hi DJ. My COM port for the Lidar is usually COM20 ( but always starts in the interface in COM1) is possible to define a default port or remember the last one used? this is to be able to autostart the Lidar with a script. Thanks in advance for any help.
The COM port saves with the project. Select your COM port and press the SAVE button in ARC to save the project.
Yes, I always save the project with the selected port (COM20) but each time I Open it, it selects COM1.
Sure you’re using the latest version?
I updated the version because maybe it was out of sync on my side somehow
So this Lidar is working good now,it is a great price!
Thanks DJ. Now is saving COM port with version7.
v8 Updated with minor performance improvement
v9 - updated with option to disable setting variable to save on performance
v11
v14
Hi, everyone,
I have a question about lidar, does a 360 degree clear view have to be available? What if, for example, the view to the rear on the robot is blocked (Servo Cam), does it still work to the front?
And one more question, if this would be the right one: RPLidar A1M8
Regards Uwe
This robot skill doesn’t use any mapping. It provides data to the NMS for another robot skill to use the data for mapping. The other robot skill that compliments this would be The Better Navigator.
in The Better Navigator, you can specify the min distance to register. That way, if something blocks the sensor, the values are ignored.
That lidar looks like the correct one.
great, thanks for the info.
.... Well, if you can read, you have an advantage, the answer to my question is already there:
It shows up again, read everything first ;-)
Hahaha - there’s a lot of information to take in. You’ve already accomplished a lot with few questions.
Updated v15 to fix an issue when saving a project while no lidar is connected to the PC.
Is there a way to specify a certain degree of lidar readings to be put into two different variables. Here is the scenario- going in reverse and trying to get the robot squared up (equal distance at 160 degrees and 200 degrees) say 6" and then go straight backwards to connect. Having the availability to access certain degree values would be a big plus.
Will do it a different way. Sometimes just talking about it brings up different avenues on how to do things. Have to work with what you have available!
Updated with options in the settings for RTS and DTR if required. Some USB devices may require RTS enabled. Often RTS is required before DTR, so verify with the documentation of your USB or UART device. If you experience connection issues, RTS may be required to have set enabled.