ROS2 node and test application for YDLIDAR
Visit EAI Website for more details about YDLIDAR.
How to install ROS2
1) Clone this project to your ament's workspace src folder
2) Running ament to build ydlidar_node and ydlidar_client
3) Create the name "/dev/ydlidar" for YDLIDAR
--$ cd workspace/ydlidar_ros2/startup
--$ sudo chmod 777 ./*
--$ sudo sh initenv.sh
Note: Download and Build details here
$ros2 run ydlidar ydlidar_node
$ros2 run ydlidar ydlidar_client
Note: You should see YDLIDAR's scan result in the console
$launch $(ros2 pkg prefix ydlidar)/share/ydlidar/launch/ydlidar.py
$ros2 run ydldiar ydlidar_client or ros2 topic echo /scan
or
$ros2 launch ydlidar ydlidar_launch.py
LIDAR | Model | Baudrate | SampleRate(K) | Range(m) | Frequency(HZ) | Intenstiy(bit) | SingleChannel | voltage(V) |
---|---|---|---|---|---|---|---|---|
F4 | 1 | 115200 | 4 | 0.12~12 | 5~12 | false | false | 4.8~5.2 |
S4 | 4 | 115200 | 4 | 0.10~8.0 | 5~12 (PWM) | false | false | 4.8~5.2 |
S4B | 4/11 | 153600 | 4 | 0.10~8.0 | 5~12(PWM) | true(8) | false | 4.8~5.2 |
S2 | 4/12 | 115200 | 3 | 0.10~8.0 | 4~8(PWM) | false | true | 4.8~5.2 |
G4 | 5 | 230400 | 9/8/4 | 0.28/0.26/0.1~16 | 5~12 | false | false | 4.8~5.2 |
X4 | 6 | 128000 | 5 | 0.12~10 | 5~12(PWM) | false | false | 4.8~5.2 |
X2/X2L | 6 | 115200 | 3 | 0.10~8.0 | 4~8(PWM) | false | true | 4.8~5.2 |
G4PRO | 7 | 230400 | 9/8/4 | 0.28/0.26/0.1~16 | 5~12 | false | false | 4.8~5.2 |
F4PRO | 8 | 230400 | 4/6 | 0.12~12 | 5~12 | false | false | 4.8~5.2 |
R2 | 9 | 230400 | 5 | 0.12~16 | 5~12 | false | false | 4.8~5.2 |
G6 | 13 | 512000 | 18/16/8 | 0.28/0.26/0.1~25 | 5~12 | false | false | 4.8~5.2 |
G2A | 14 | 230400 | 5 | 0.12~12 | 5~12 | false | false | 4.8~5.2 |
G2 | 15 | 230400 | 5 | 0.28~16 | 5~12 | true(8) | false | 4.8~5.2 |
G2C | 16 | 115200 | 4 | 0.1~12 | 5~12 | false | false | 4.8~5.2 |
G4B | 17 | 512000 | 10 | 0.12~16 | 5~12 | true(10) | false | 4.8~5.2 |
G4C | 18 | 115200 | 4 | 0.1~12 | 5~12 | false | false | 4.8~5.2 |
G1 | 19 | 230400 | 9 | 0.28~16 | 5~12 | false | false | 4.8~5.2 |
TX8 | 100 | 115200 | 4 | 0.1~8 | 4~8(PWM) | false | true | 4.8~5.2 |
TX20 | 100 | 115200 | 4 | 0.1~20 | 4~8(PWM) | false | true | 4.8~5.2 |
TG15 | 100 | 512000 | 20/18/10 | 0.05~15 | 3~16 | false | false | 4.8~5.2 |
TG30 | 101 | 512000 | 20/18/10 | 0.05~30 | 3~16 | false | false | 4.8~5.2 |
TG50 | 102 | 512000 | 20/18/10 | 0.05~50 | 3~16 | false | false | 4.8~5.2 |
Note: PWM option speed control requires external PWM wave.
path: ydlidar.yaml
Topic | Type | Description |
---|---|---|
scan |
sensor_msgs/LaserScan | 2D laser scan of the 0-angle ring |
Parameter | Type | Description |
---|---|---|
port |
String | port of lidar (ex. /dev/ttyUSB0) |
baudrate |
int | baudrate of lidar (ex. 230400) |
frame_id |
String | TF frame of sensor, default: laser_frame |
singleChannel |
bool | Whether LiDAR is a single-channel, default: false |
resolution_fixed |
bool | Fixed angluar resolution, default: true |
auto_reconnect |
bool | Automatically reconnect the LiDAR, default: true |
reversion |
bool | Reversion LiDAR, default: true |
isToFLidar |
bool | Whether LiDAR is TOF Type, default: false |
angle_min |
float | Minimum Valid Angle, defalut: -180.0 |
angle_max |
float | Maximum Valid Angle, defalut: 180.0 |
range_min |
float | Minimum Valid range, defalut: 0.01m |
range_max |
float | Maximum Valid range, defalut: 64.0m |
ignore_array |
String | LiDAR filtering angle area, default: "" |
samp_rate |
int | sampling rate of lidar, default: 9 |
frequency |
float | scan frequency of lidar,default: 10.0 |
port (string, default: /dev/ydlidar)
serial port name used in your system.
baudrate (int, default: 230400)
serial port baud rate.
LiDAR | baudrate |
---|---|
F4/S2/X2/X2L/S4/TX8/TX20/G4C | 115200 |
X4 | 128000 |
S4B | 153600 |
G1/G2/R2/G4/G4PRO/F4PRO | 230400 |
G6/TG15/TG30/TG50 | 512000 |
frame_id (string, default: laser_frame)
frame ID for the device.
singleChannel (bool, default: false)
indicated whether the LIDAR is single communication(S2) lidar.
LiDAR | singleChannel |
---|---|
G1/G2/G4/G6/F4/F4PRO/S4/S4B/X4/R2/G4C | false |
S2/X2/X2L | true |
TG15/TG30/TG50 | false |
TX8/TX20 | true |
resolution_fixed (bool, default: true)
indicated whether the LIDAR has a fixed angular resolution.
auto_reconnect (bool, default: true)
indicated whether the LIDAR auto reconnection.
reversion (bool, default: false)
indicated whether the LIDAR data rotation 180°.
LiDAR | reversion |
---|---|
G1/G2/G4/G6/F4/F4PRO//R2/G4C/TG15/TG30/TG50 | true |
S2/X2/X2L/S4/S4B/X4/TX8/TX20 | false |
isToFLidar (bool, default: false)
indicated whether the LIDAR is TOF(TX8) lidar.
LiDAR | isToFLidar |
---|---|
G1/G2/G4/G6/F4/F4PRO/S4/S4B/X4/R2/G4C/S2/X2/X2L | false |
TG15/TG30/TG50/TX8/TX20 | true |
angle_min (double, default: -180)
Min valid angle (°) for LIDAR data.
angle_max (double, default: 180)
Max valid angle (°) for LIDAR data.
range_min (double, default: 0.08)
Min valid range (m) for LIDAR data.
range_max (double, default: 32.0)
Max valid range (m) for LIDAR data.
ignore_array (string, default: "")
Set the current angle range value to zero.
Note: ignore 10 to 20 and 50 to 80, ex: "10, 20, 50, 80"
samp_rate (int, default: 9)
the LIDAR sampling frequency.
LiDAR | samp_rate |
---|---|
G4/F4 | 4,8,9 |
F4PRO | 4,6 |
G6 | 8,16,18 |
G1/G2/R2/X4 | 5 |
S4/S4B/G4C/TX8/TX20 | 4 |
S2 | 3 |
TG15/TG30/TG50 | 10,18,20 |
frequency (double, default: 10)
the LIDAR scanning frequency.
Note: Specific LiDAR paramter configuration, refer to Dataset
2020-02-08 version:1.4.5
1.Update SDK to 1.4.5
2.fixed ROS2 Dashing and Eloquent.
2019-12-23 version:1.4.4
1.support all standards lidar
2018-07-16 version:1.3.6
1.Update SDK verison to 1.3.9
2.remove imu sync.
2018-07-16 version:1.3.5
1.Update SDK verison to 1.3.6
2.add imu sync.
2018-04-16 version:1.3.1
1.Update SDK verison to 1.3.1
2.Increase sampling frequency,scan frequency setting.
3.Unified coordinate system.
4.Repair X4,S4 LIDAR cannot be opened.
5.Increased G4 G4C F4Pro LIDAR power-off protection.
6.Increased S4B LIDAR low optical power setting.
7.Fix the wait time for closing ros node.
8.Compensate for each laser point timestamp.
9.Unified profile, automatic correction lidar model.
You can get support from YDLidar with the following methods:
- Send email to [email protected] with a clear description of your problem and your setup
- Github Issues
If you have any extra questions, please feel free to contact us