GithubHelp home page GithubHelp logo

rslidar_sdk's People

Contributors

baoxianzhang avatar crazytomx avatar felixhuang18 avatar haoqchen avatar luhuadong avatar mtlazaro avatar quchunlei avatar ronzheng1006 avatar timple avatar zhenshenglee avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rslidar_sdk's Issues

Can LidarPointCloudMsg convert to PointCloudMsg?

robosense::lidar::LidarPointCloudMsg怎么转成robosense::lidar::PointCloudMsg?
前者是sdk中的消息格式,后者是demo中的消息格式,在msg中只有lidarPointCloudMsg转成ROS消息的函数,而没有pointCloudMsg转ROS消息的函数?

Feature Request: Organized Point Cloud

ROS's PointCloud2.msg message format supports an organized 2d (image-like) point cloud format. For some applications it might be beneficial to work with such an organized point cloud, where the point cloud are organized according to their ring and their firing cycle / azimuth.

Best Regads

RS BPearl publishes more points than it is supposed to

Hello,
I'm working with a RS Bpearl 3d lidar at 10 Hz, so it should publish 57600 per sensor_msgs::PointCloud2 message. But around every second I receive a message with 57984 points. I looked the data sent by the lidar through wireshark and I found the same thing : from time to time there is an extra packet of data.

Is this normal ? And if so what is the use of this extra packet ?

Below is a few headers from the sensor_msgs::PointCloud2 message where the extras points appears

header: 
  seq: 10895
  stamp: 
    secs: 1610721842
    nsecs: 488307476
  frame_id: "rslidar_optical_center"
height: 32
width: 1800
fields: "<array type: sensor_msgs/PointField, length: 6>"
is_bigendian: False
point_step: 32
row_step: 57600
data: "<array type: uint8, length: 1843200>"
is_dense: False
---
header: 
  seq: 10896
  stamp: 
    secs: 1610721842
    nsecs: 588924408
  frame_id: "rslidar_optical_center"
height: 32
width: 1812
fields: "<array type: sensor_msgs/PointField, length: 6>"
is_bigendian: False
point_step: 32
row_step: 57984
data: "<array type: uint8, length: 1855488>"
is_dense: False
---
header: 
  seq: 10897
  stamp: 
    secs: 1610721842
    nsecs: 688874483
  frame_id: "rslidar_optical_center"
height: 32
width: 1800
fields: "<array type: sensor_msgs/PointField, length: 6>"
is_bigendian: False
point_step: 32
row_step: 57600
data: "<array type: uint8, length: 1843200>"
is_dense: False
---

Can it trigger camera¿

Hi!
Saw that there is a file named CameraTrigger something. Can this sdk trigger an industrial camera? How to achieve that?
Thank you!

Timestamping of the Pointcloud in ROS

Hello,
With the paramerter use_lidar_clock = true, the timestamping of the ROS sensor_msgs::PointCloud2 message. The call to get the lidar clock is executed on the first packed of the scan or the last packet of the scan ?

Thank you for your help

Crash on start: Floating point exception in rslidar_sdk_node with RS-LiDAR-M1

Hardware Unit: Robosense RS-LiDAR-M1
Environment: Ubuntu 20.04, ROS 1 Noetic
Version: RSLidar_SDK Version: v1.2.1, git commit 73b4c66.

Issue: rslidar_sdk_node crashes on reciept of data from lidar unit.

Console output:

duncan@rosvm:~/catkin_ws$ roslaunch rslidar_sdk start.launch
... logging to /home/duncan/.ros/log/9b2ce678-08b1-11eb-90d4-5b195771cb2a/roslaunch-rosvm-2308.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://rosvm:38683/

SUMMARY
========

PARAMETERS
 * /rosdistro: noetic
 * /rosversion: 1.15.8

NODES
  /
    rslidar_sdk_node (rslidar_sdk/rslidar_sdk_node)
    rviz (rviz/rviz)

auto-starting new master
process[master]: started with pid [2316]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to 9b2ce678-08b1-11eb-90d4-5b195771cb2a
process[rosout-1]: started with pid [2326]
started core service [/rosout]
process[rslidar_sdk_node-2]: started with pid [2329]
process[rviz-3]: started with pid [2334]
********************************************************
**********                                    **********
**********    RSLidar_SDK Version: v1.2.1     **********
**********                                    **********
********************************************************
------------------------------------------------------
Receive Packets From : Online LiDAR
Msop Port: 6699
Difop Port: 7788
------------------------------------------------------
RoboSense-LiDAR-Driver is running.....
[rslidar_sdk_node-2] process has died [pid 2329, exit code -8, cmd /home/duncan/catkin_ws/devel/lib/rslidar_sdk/rslidar_sdk_node __name:=rslidar_sdk_node __log:=/home/duncan/.ros/log/9b2ce678-08b1-11eb-90d4-5b195771cb2a/rslidar_sdk_node-2.log].
log file: /home/duncan/.ros/log/9b2ce678-08b1-11eb-90d4-5b195771cb2a/rslidar_sdk_node-2*.log
[rviz-3] process has finished cleanly
log file: /home/duncan/.ros/log/9b2ce678-08b1-11eb-90d4-5b195771cb2a/rviz-3*.log

However there is no file rslidar_sdk_node-2*.log.
Running the command directly shows a floating point error, but only once the Lidar has started to send data.

duncan@rosvm:~/catkin_ws$ /home/duncan/catkin_ws/devel/lib/rslidar_sdk/rslidar_sdk_node
********************************************************
**********                                    **********
**********    RSLidar_SDK Version: v1.2.1     **********
**********                                    **********
********************************************************
------------------------------------------------------
Receive Packets From : Online LiDAR
Msop Port: 6699
Difop Port: 7788
------------------------------------------------------
RoboSense-LiDAR-Driver is running.....
Floating point exception (core dumped)

Which looks like an arithmetic error in rslidar_sdk_node, or one of the libraries.

Wireshark shows valid UDP data streamed from port 6699 from the Lidar unit continuing after node crashes.

robosense_crash_wireshark

How to define IP and MSOP DIFOP?

Hello,
I have the same issue as this: #17 (comment)

I'm trying to connect multiple M1 to my system. RSView is mentioned in the documentation but the software does not seem to support the M1.

The sensors will be used on a system with Ubuntu 20.04 with ROS 1 but I also have access to a Windows machine if necessary for the configuration steps.

Thanks!

RS Ruby packets loss

Hi all,

We recorded a ROS bag with our RS Ruby using the rslidar_sdk and containing only the packets.

When we use later the same rslidar_sdk to produce the pointclouds we observe a strange spiral pattern of missed points.
image

The RS Ruby is mounted on the top of a car.
We don't know if this is due to a decoding problem, a malfunctioning of the laser or if it could be some effect of the synchronization of the beams and the velocity of the car (around ~30km/h). We haven't been able to check if this pattern is observed also in an online mode since we recorded only the packets.

I share here a short bag (670MB) containing few seconds from the original bag, with the packets and the produced pointclouds so you can see the effect in movement.

ERRCODE_WRONGPKTHEADER

Hi, I had this trouble when I ran RS-LIDAR-16
ERRCODE_WRONGPKTHEADER
what should I do?

Build fails due to PointCloudLibrary needing C++14

Following a fresh install on Ubuntu 20.04 on ROS Noetic. The build failed with both cmake and catkin_make. It appears that PointCloudLibrary requires C++14, but C++11 is set by default. I have created this bug to associate it with the pull request generated here:
#1

Reflection issue with RS16

Hi all,

we are experiencing an issue related to reflectivity where some points are missed, especially those from lower planes.
We observe this issue in our indoor environment but not in an outdoor environment.
We are wondering if there is a way to tune the reflection properties so it can work better with our indoor floor.
I attach two figures (indoor/outdoor) showing what is happening.
Indoor: close beams miss points.
reflective_ground_issue
Outdoor: perfect projection pattern in all beams
image

Unable to Visualize RS80 PCAP data in RVIZ

Hello,

I am trying to run Visualize the RS lidars data recorded in PCAP format using ROS workspace.
By configuring the below config.yaml am able to visualize data of RS128 and RS32 without any issues.

Similiarly, If i configure configue.yaml file for RS80 (RSRubyLite) Lidar am getting points like this.

image

lidar:
  - driver:
      lidar_type: RS80           #LiDAR type - RS16, RS32, RSBP, RS128, RS80, RSM1, RSHELIOS
      frame_id: /rslidar           #Frame id of message
      msop_port: 6699              #Msop port of lidar
      difop_port: 7788             #Difop port of lidar
      start_angle: 0               #Start angle of point cloud
      end_angle: 360               #End angle of point cloud 
      min_distance: 0.2            #Minimum distance of point cloud
      max_distance: 200            #Maximum distance of point cloud
      use_lidar_clock: false       #True--Use the lidar clock as the message timestamp
                                                   #False-- Use the system clock as the timestamp  

Any help is much appreciated. Thanks

Regards,
Ajay

Protobuf Fails

Hello,

I am writing to you since I am using your driver with one of your sensors (RS32). I am using the Ubuntu 18 operating system with Ros Melodic. I have configured the driver so that my personal computer is the one that sends the information and an instance of Amazon Web Service is the one that consumes this information. They are connected through a VPN, with AWS being the master in the entire operation.
The driver configuration has been set as indicated in the document "how_to_use_protobuf_function.md" provided with the sdk.

The problem I find is that no sending or receiving of data is established.

Sender:



********** RSLidar_SDK Version: v1.3.0 **********



process [rviz-2]: started with pid [15697]


Receive Packets From: Online LiDAR
Msop Port: 6699
Difop Port: 7788



Send Packets To: Protobuf-UDP
Msop Port: 60022
Difop Port: 60023
Target IP: X.X.X.X


RoboSense-LiDAR-Driver is running .....

Receiver:



********** RSLidar_SDK Version: v1.3.0 **********




Receive Packets From: Online LiDAR
Msop Port: 6699
Difop Port: 7788



Send PointCloud To: ROS
PointCloud Topic: / rslidar_points


RoboSense-LiDAR-Driver is running .....
ERRCODE_MSOPTIMEOUT
ERRCODE_DIFOPTIMEOUT
ERRCODE_MSOPTIMEOUT
ERRCODE_MSOPTIMEOUT
ERRCODE_DIFOPTIMEOUT
ERRCODE_MSOPTIMEOUT
ERRCODE_MSOPTIMEOUT
ERRCODE_DIFOPTIMEOUT
ERRCODE_MSOPTIMEOUT
ERRCODE_MSOPTIMEOUT
ERRCODE_DIFOPTIMEOUT
ERRCODE_MSOPTIMEOUT
ERRCODE_MSOPTIMEOUT
ERRCODE_DIFOPTIMEOUT
ERRCODE_MSOPTIMEOUT
ERRCODE_MSOPTIMEOUT

I have checked the correct sensor operation using ROS and I have been able to observe the point cloud without any problem.

Point timestamps are in computer time when running old recordings without sync.

Timestamps for points are incorrect when data, pcap/packets is given to the sdk and use_lidar_time is not used. Always on computer time, not on the packet time.

Offset can be seen from the difference of header time and first/last point time depending on configuration.

decoder_base.hpp uses getTime() for get_point_time_func_, when use_lidar_clock is false, which uses system clock.
Result is that the header of messages are in correct time but the points time are wrong when playing recordings through the node.

rviz flat pointcloud + message built error

Hey everyone,

we are using the Robosense Ruby (RS128) and want to publish and record the data via ROS (Ubuntu 18.04 and Melodic). However, after setting all necessary configs in the config.yaml and starting roslaunch rslidar_sdk start.launch, we receive the following rviz output:
Issue_0
Issue_1

We also checked the published topics via rostopic list, and all are visible. (/rslidar_packets /rslidar_packets_difop /rslidar_points)
When we use rostopic echo, only /rslidar_points are visible, whereas /rslidar_packets and /rslidar_packets_difop give the following output:
ERROR: Cannot load message class for [rslidar_msgs/rslidarScan]. Are your messages built?

We also checked the pointcloud via RSView and that seems to work totally fine.

Do you have any hints/ ideas what could solve our problem?

Thanks.

PS: Attached the config.yaml file content we use:

common:
  msg_source: 1                                         #0: not use Lidar
                                                        #1: packet message comes from online Lidar
                                                        #2: packet message comes from ROS or ROS2
                                                        #3: packet message comes from Pcap file
                                                        #4: packet message comes from Protobuf-UDP
                                                        #5: point cloud comes from Protobuf-UDP
  send_packet_ros: true                                 #true: Send packets through ROS or ROS2(Used to record packet)
  send_point_cloud_ros: true                            #true: Send point cloud through ROS or ROS2
  send_packet_proto: false                              #true: Send packets through Protobuf-UDP
  send_point_cloud_proto: false                         #true: Send point cloud through Protobuf-UDP
  pcap_path: /home/robosense/lidar.pcap                 #The path of pcap file

lidar:
  - driver:
      lidar_type: RS128            #LiDAR type - RS16, RS32, RSBP, RS128, RS80, RSM1, RSHELIOS
      frame_id: /rslidar           #Frame id of message
      msop_port: 6699              #Msop port of lidar
      difop_port: 7788             #Difop port of lidar
      start_angle: 0               #Start angle of point cloud
      end_angle: 360               #End angle of point cloud 
      min_distance: 0.2            #Minimum distance of point cloud
      max_distance: 200            #Maximum distance of point cloud
      use_lidar_clock: true       #True--Use the lidar clock as the message timestamp
                                   #False-- Use the system clock as the timestamp  
    ros:
      ros_recv_packet_topic: /rslidar_packets          #Topic used to receive lidar packets from ROS
      ros_send_packet_topic: /rslidar_packets          #Topic used to send lidar packets through ROS
      ros_send_point_cloud_topic: /rslidar_points      #Topic used to send point cloud through ROS
    proto:
      point_cloud_recv_port: 60021                     #Port number used for receiving point cloud 
      point_cloud_send_port: 60021                     #Port number which the point cloud will be send to
      msop_recv_port: 60022                            #Port number used for receiving lidar msop packets
      msop_send_port: 60022                            #Port number which the msop packets will be send to 
      difop_recv_port: 60023                           #Port number used for receiving lidar difop packets
      difop_send_port: 60023                           #Port number which the difop packets will be send to 
      point_cloud_send_ip: 127.0.0.1                   #Ip address which the point cloud will be send to 
      packet_send_ip: 127.0.0.1                        #Ip address which the lidar packets will be send to

Add Ring Field

Hi,

thanks for the new sdk. I am using your kit along with the RS32, however I am missing the ring information field for the point cloud when I am using the "rslidar_sdk_node". I am using the "offline mode" where my packet and difop messages come from a ROS bag. I know that the sdk can decode the ring field but how can I add that field ?

Best Regards

UCWP packet port number

Hello,

I would want to send an UCWP packet to modify the lidar configuration while the driver is launched.
I tried to find the port number for the UCWP connection but it was not listed in the documentation.

Is it possible to know which port it is ?

Thanks

dense pointcloud

Hi,
Can we get dense pointcloud directly from 1.3 sdk by changing some config parameters?
When I work with rslidar 16, I need remove NaN from the pointcloud first.

Wrong returned distances in RS16

Hi,

We are trying to use the rslidar_sdk package with our RS16 instead of the old ros_rslidar.

We are using the provided "start.launch" in this package. We manage to connect with the RS16 and visualize its data.

However we are observing a problem regarding the range data returned by the sensor, as you can observe from the attached images, the ranges (colored pointcloud) are much shorter than the real distances measured with a 2D laserscan (white points).
In the images we have limited the FOV of the LiDAR but we observe the same problem if we use the full 360 degrees.

When we use the ros_rslidar package the distances are correct.

MicrosoftTeams-image (1)
MicrosoftTeams-image

ERRCODE_MSOPTIMEOUT

Hi,

I'm trying to set up an RS Helios lidar. I updated the config.yaml file as follows:

common:
  msg_source: 1                                         #0: not use Lidar
                                                        #1: packet message comes from online Lidar
                                                        #2: packet message comes from ROS or ROS2
                                                        #3: packet message comes from Pcap file
                                                        #4: packet message comes from Protobuf-UDP
                                                        #5: point cloud comes from Protobuf-UDP
  send_packet_ros: false                                #true: Send packets through ROS or ROS2(Used to record packet)
  send_point_cloud_ros: true                            #true: Send point cloud through ROS or ROS2
  send_packet_proto: false                              #true: Send packets through Protobuf-UDP
  send_point_cloud_proto: false                         #true: Send point cloud through Protobuf-UDP
  pcap_path: /home/robosense/lidar.pcap                 #The path of pcap file

lidar:
  - driver:
      lidar_type: RSHELIOS            #LiDAR type - RS16, RS32, RSBP, RS128, RS80, RSM1, RSHELIOS
      frame_id: /rslidar           #Frame id of message
      msop_port: 6699              #Msop port of lidar
      difop_port: 7788             #Difop port of lidar
      start_angle: 0               #Start angle of point cloud
      end_angle: 360               #End angle of point cloud 
      min_distance: 0.2            #Minimum distance of point cloud
      max_distance: 200            #Maximum distance of point cloud
      use_lidar_clock: false       #True--Use the lidar clock as the message timestamp
                                   #False-- Use the system clock as the timestamp  
    ros:
      ros_recv_packet_topic: /rslidar_packets          #Topic used to receive lidar packets from ROS
      ros_send_packet_topic: /rslidar_packets          #Topic used to send lidar packets through ROS
      ros_send_point_cloud_topic: /rslidar_points      #Topic used to send point cloud through ROS
    proto:
      point_cloud_recv_port: 60021                     #Port number used for receiving point cloud 
      point_cloud_send_port: 60021                     #Port number which the point cloud will be send to
      msop_recv_port: 60022                            #Port number used for receiving lidar msop packets
      msop_send_port: 60022                            #Port number which the msop packets will be send to 
      difop_recv_port: 60023                           #Port number used for receiving lidar difop packets
      difop_send_port: 60023                           #Port number which the difop packets will be send to 
      point_cloud_send_ip: 127.0.0.1                   #Ip address which the point cloud will be send to 
      packet_send_ip: 127.0.0.1                        #Ip address which the lidar packets will be send to

Still getting the error shown above.
This is what my Helios config looks like:

image

Any help would be appreciated.

Thanks!
Vimal

Regarding custom IP and MSOP DIFOP on M1B3

Hi!

I was trying to connect multiple M1B3 on my device, but I could not find and resources to set custom IP, MSOP, and DIFOP to avoid device confusion. I noticed that for Ruby and other devices, I can do this in RSVIEW. However, there are no tools for M1B3 at the moment.

I am running the platform on ROS1 with Ubuntu 16.04, can someone help? Thanks!

Pb when using the sdk on 20.04LTS

I tried to use the sdk on 20.04LTS Following the Readme file. Compilation was ok. Lauching was no error
When using either RS16 or RS80 Rviz shows
Global status : Warn
Fixed frame: No TF data
Point cloud (forbbiden symbol)
==>Status: Error
Any idea?

RS16 point cloud looks flat

These are the version and settings I'm using:
Ubuntu: 18.04
Ros: Melodic
Lidar: RS16
Point type: XYZIRT and XYZI

I followed all steps to install the sdk with ROS (Section 4.2 from the readme) but the point cloud I watch in Rviz looks flat.
rviz-1
rviz-2

Besides, the values from the PointCloud2 message are always zero for Ring and Z
rviz-3

When I use the previous version of the driver:
https://github.com/RoboSense-LiDAR/ros_rslidar
Rviz shows the point cloud correctly.
image

This is the config.yaml file I am using
image

Do you know what might be the cause of this issue?
Any help would be appreciated.
Thanks!

Feature Request: Account for ego motion during one rotation of the sensor

The rolling shutter effect of a rotating sensor is well known. The ego motion may induce some undesirable artifacts for some applications. For example, sensor fusion of LiDAR and camera. Hence, I would like to request an implementation similar to the Velodyne driver, where each packet of a rotation can be transformed to a fixed frame to account for the ego motion.

RS80 calibration issue

hello,

I run RS80 "Ruby Lite" 80ch LIDAR in my desktop (ubntu 18.04, ros-melodic) using rslidar_sdk
I change config.ymal for RS80 LIDAR setting
example
Screenshot from 2021-09-06 14-49-14

Screenshot from 2021-09-06 14-40-52

  • msg source 1 (use ROS driver)
  • angle_path: home/dgist($USER)/angle.csv

캡처
Screenshot from 2021-09-06 09-46-54
calibration param is seem good work in the my Windows laptop (RSview)
but in the ROS with linux

calibration param is not influence.... in the RVIZ

can I help.
what is happen. and what i shoud do?

thanks for reading

Failed to find match for field 'intensity'.

Hello, I use pcl_conversion to convert sensor_ msgs::PointCloud2 type to pcl::PointCloudpcl::PointXYZI type. However, in the console , it output " failed to find match for fileld 'intensity' ". As a result, intensity value is 0 in PointXYZI. I check the /rslidar_points in Rviz. It can visualize in intensity mode. Anybody know to fix this? Thank you.

rs-16 and rs-m1 supporting problem

  1. Configuration rslidar_sdk
common:
msg_source: 1                                         #0: not use Lidar
                                                      #1: packet message comes from online Lidar
                                                      #2: packet message comes from ROS or ROS2
                                                      #3: packet message comes from Pcap file
                                                      #4: packet message comes from Protobuf-UDP
                                                      #5: point cloud comes from Protobuf-UDP
send_packet_ros: false                                #true: Send packets through ROS or ROS2(Used to record packet)
send_point_cloud_ros: true                            #true: Send point cloud through ROS or ROS2
send_packet_proto: false                              #true: Send packets through Protobuf-UDP
send_point_cloud_proto: false                         #true: Send point cloud through Protobuf-UDP
pcap_path: /home/robosense/lidar.pcap                 #The path of pcap file

lidar:

#top lidr info

- driver:
    lidar_type: RS32             #LiDAR type - RS16, RS32, RSBP, RS128, RS80, RSM1, RSHELIOS
    frame_id: /lidar_top         #Frame id of message
    msop_port: 6690              #Msop port of lidar
    difop_port: 7789             #Difop port of lidar
    start_angle: 0               #Start angle of point cloud
    end_angle: 360               #End angle of point cloud 
    min_distance: 0.2            #Minimum distance of point cloud
    max_distance: 200            #Maximum distance of point cloud
    use_lidar_clock: false       #True--Use the lidar clock as the message timestamp
                                 #False-- Use the system clock as the timestamp  
  ros:
    ros_recv_packet_topic: /rslidar_top_packets          #Topic used to receive lidar packets from ROS
    ros_send_packet_topic: /rslidar_top_packets          #Topic used to send lidar packets through ROS
    ros_send_point_cloud_topic: /lidar_top/points      #Topic used to send point cloud through ROS
  proto:
    point_cloud_recv_port: 60021                     #Port number used for receiving point cloud 
    point_cloud_send_port: 60021                     #Port number which the point cloud will be send to
    msop_recv_port: 60022                            #Port number used for receiving lidar msop packets
    msop_send_port: 60022                            #Port number which the msop packets will be send to 
    difop_recv_port: 60023                           #Port number used for receiving lidar difop packets
    difop_send_port: 60023                           #Port number which the difop packets will be send to 
    point_cloud_send_ip: 127.0.0.1                   #Ip address which the point cloud will be send to 
    packet_send_ip: 127.0.0.1                        #Ip address which the lidar packets will be send to

# left lidar info

- driver:
    lidar_type: RS16             #LiDAR type - RS16, RS32, RSBP, RS128, RS80, RSM1, RSHELIOS
    frame_id: /lidar_left         #Frame id of message
    msop_port: 5590              #Msop port of lidar
    difop_port: 6689             #Difop port of lidar
    start_angle: 0               #Start angle of point cloud
    end_angle: 360               #End angle of point cloud 
    min_distance: 0.2            #Minimum distance of point cloud
    max_distance: 200            #Maximum distance of point cloud
    use_lidar_clock: false       #True--Use the lidar clock as the message timestamp
                                 #False-- Use the system clock as the timestamp  
  ros:
    ros_recv_packet_topic: /rslidar_left_packets          #Topic used to receive lidar packets from ROS
    ros_send_packet_topic: /rslidar_left_packets          #Topic used to send lidar packets through ROS
    ros_send_point_cloud_topic: /lidar_left/points      #Topic used to send point cloud through ROS
  proto:
    point_cloud_recv_port: 60021                     #Port number used for receiving point cloud 
    point_cloud_send_port: 60021                     #Port number which the point cloud will be send to
    msop_recv_port: 60022                            #Port number used for receiving lidar msop packets
    msop_send_port: 60022                            #Port number which the msop packets will be send to 
    difop_recv_port: 60023                           #Port number used for receiving lidar difop packets
    difop_send_port: 60023                           #Port number which the difop packets will be send to 
    point_cloud_send_ip: 127.0.0.1                   #Ip address which the point cloud will be send to 
    packet_send_ip: 127.0.0.1                        #Ip address which the lidar packets will be send to

# right lidar info

- driver:
    lidar_type: RS16             #LiDAR type - RS16, RS32, RSBP, RS128, RS80, RSM1, RSHELIOS
    frame_id: /lidar_right         #Frame id of message
    msop_port: 4490              #Msop port of lidar
    difop_port: 5589             #Difop port of lidar
    start_angle: 0               #Start angle of point cloud
    end_angle: 360               #End angle of point cloud 
    min_distance: 0.2            #Minimum distance of point cloud
    max_distance: 200            #Maximum distance of point cloud
    use_lidar_clock: false       #True--Use the lidar clock as the message timestamp
                                 #False-- Use the system clock as the timestamp  
  ros:
    ros_recv_packet_topic: /rslidar_right_packets          #Topic used to receive lidar packets from ROS
    ros_send_packet_topic: /rslidar_right_packets          #Topic used to send lidar packets through ROS
    ros_send_point_cloud_topic: /lidar_right/points      #Topic used to send point cloud through ROS
  proto:
    point_cloud_recv_port: 60021                     #Port number used for receiving point cloud 
    point_cloud_send_port: 60021                     #Port number which the point cloud will be send to
    msop_recv_port: 60022                            #Port number used for receiving lidar msop packets
    msop_send_port: 60022                            #Port number which the msop packets will be send to 
    difop_recv_port: 60023                           #Port number used for receiving lidar difop packets
    difop_send_port: 60023                           #Port number which the difop packets will be send to 
    point_cloud_send_ip: 127.0.0.1                   #Ip address which the point cloud will be send to 
    packet_send_ip: 127.0.0.1                        #Ip address which the lidar packets will be send to


# front lidar info

- driver:
    lidar_type: RSM1             #LiDAR type - RS16, RS32, RSBP, RS128, RS80, RSM1, RSHELIOS
    frame_id: /lidar_front         #Frame id of message
    msop_port: 6699              #Msop port of lidar
    difop_port: 7788             #Difop port of lidar
    start_angle: 0               #Start angle of point cloud
    end_angle: 360               #End angle of point cloud 
    min_distance: 0.2            #Minimum distance of point cloud
    max_distance: 200            #Maximum distance of point cloud
    use_lidar_clock: false       #True--Use the lidar clock as the message timestamp
                                 #False-- Use the system clock as the timestamp  
  ros:
    ros_recv_packet_topic: /rslidar_front_packets          #Topic used to receive lidar packets from ROS
    ros_send_packet_topic: /rslidar_front_packets          #Topic used to send lidar packets through ROS
    ros_send_point_cloud_topic: /lidar_front/points      #Topic used to send point cloud through ROS
  proto:
    point_cloud_recv_port: 60021                     #Port number used for receiving point cloud 
    point_cloud_send_port: 60021                     #Port number which the point cloud will be send to
    msop_recv_port: 60022                            #Port number used for receiving lidar msop packets
    msop_send_port: 60022                            #Port number which the msop packets will be send to 
    difop_recv_port: 60023                           #Port number used for receiving lidar difop packets
    difop_send_port: 60023                           #Port number which the difop packets will be send to 
    point_cloud_send_ip: 127.0.0.1                   #Ip address which the point cloud will be send to 
    packet_send_ip: 127.0.0.1                        #Ip address which the lidar packets will be send to

robosense sdk release 1.3.0.

  1. RS-16

After roslaunch rslidar_sdk start.launch and opening rviz i was confusing by periodically disappearing part of points.
(View 1.pcd, 2.pcd, 1.png, 2.png).

1.pcd

1

2.pcd

2

Interesting that RSView show scans correctly

  1. RS m1

There is some problem with correcting reading poins from RS MEMS by rslidar_sdk

3.pcd

4

RSView show correcting scans

3

Output of /ros2 topic hz /rslidar_points is NOT stable around 10HZ

Hi Tom,

I am evaluating RoboSense 16 ray Lidar on ROS2 (eloquent/foxy) platform with rslidar_sdk, rslidar_msg and rs_driver. After following the instruction from the github README, the /rslidar_points could be displayed on ROS2 Rviz2, however, topic hz /rslidar_points is NOT stable around 10HZ as the RoboSense package did on ROS1 melodic platform.

Could you give a hand on this problem? Thanks.

My evaluation work as below:

  1. On ROS2 Eloquent and Foxy:
    terminal #1: ros2 run rslidar_sdk rslidar_sdk_node
    terminal #2: ros2 topic hz /rslidar_points
    output of #2:
    average rate: 2.356
    min: 0.099s max: 0.801s std dev: 0.32720s window: 4
    average rate: 2.224
    min: 0.099s max: 0.801s std dev: 0.26955s window: 6
    average rate: 3.334
    min: 0.096s max: 0.801s std dev: 0.23878s window: 13
    average rate: 3.265
    min: 0.096s max: 0.801s std dev: 0.22209s window: 16
    average rate: 4.001
    min: 0.096s max: 0.801s std dev: 0.20008s window: 24
    average rate: 4.133
    min: 0.096s max: 0.801s std dev: 0.19484s window: 31
    average rate: 3.933
    min: 0.096s max: 0.801s std dev: 0.19476s window: 35
    average rate: 4.001
    min: 0.096s max: 0.801s std dev: 0.18703s window: 40
    average rate: 4.273
    min: 0.096s max: 0.801s std dev: 0.17906s window: 47
    average rate: 4.499
    min: 0.096s max: 0.801s std dev: 0.17184s window: 54
  2. On ROS1 melodic:
    terminal #1: roslaunch rslidar_pointcloud rs_lidar_16.launch
    terminal #2: rostopic hz /rslidar_points
    subscribed to [/rslidar_points]
    average rate: 10.088
    min: 0.092s max: 0.104s std dev: 0.00395s window: 9
    average rate: 10.025
    min: 0.092s max: 0.104s std dev: 0.00298s window: 19
    average rate: 10.020
    min: 0.092s max: 0.104s std dev: 0.00243s window: 29
    average rate: 10.018
    min: 0.092s max: 0.104s std dev: 0.00220s window: 40
    average rate: 10.011
    min: 0.092s max: 0.104s std dev: 0.00206s window: 50
    ^Caverage rate: 10.011
    min: 0.092s max: 0.104s std dev: 0.00203s window: 53

Problem about flat point cloud

I foundd closed issues #20 and got that the reason why the point cloud became flat in my CP using rslidar_sdk might was that my RS16 was so old. After I added the CSV data, it became vertical but sparser than old one using old driver. I found that you gave the user in #20 a specified data and I sincerely hope that you can give me that data. Thanks for your reading!

ros2 lidar data won‘t work for pcl filter

hi:
when use rs16 lidar ,I got the an issus like below:
use pointcloud data in ros2 can't work with pcl::VoxelGrid, while it works well in ros1
also while use pcl::ApproximateVoxelGrid with ros2 pointcloud data,it dosen't work very well.

Lidar frequency parameters (RS_BPearl)

Hello,

I didn't saw a parameter to change the LIDAR frequency in the config.yaml file. It also did not appear in the hidden parameters. Is there a way to change the frequency from the driver or do I need to set it with another method ?

Thank you for your time

"ERRCODE_WRONGPKTHEADER"

After I compiled this package, it didn't work

=================== =================================================================
roslaunch rslidar_sdk start.launch 20-11-25 - 0:29:43
... logging to /home/nvidia/.ros/log/a8e42758-2e73-11eb-b1df-48b02d0e3d9f/roslaunch-tegra-ubuntu-13507.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.
started roslaunch server http://tegra-ubuntu:34452/
SUMMARY
PARAMETERS

  • /rosdistro: kinetic
  • /rosversion: 1.12.16
    NODES
    /
    rslidar_sdk_node (rslidar_sdk/rslidar_sdk_node)
    viz (rviz/rviz)
    auto-starting new master
    process[master]: started with pid [13517]
    ROS_MASTER_URI=http://localhost:11311

setting /run_id to a8e42758-2e73-11eb-b1df-48b02d0e3d9f
process[rosout-1]: started with pid [13530]
started core service [/rosout]
process[rslidar_sdk_node-2]: started with pid [13541]
RSLidar_SDK Version: v1.3.0
process[rviz-3]: started with pid [13552]
Receive Packets From : Online LiDAR
Msop Port: 6699
Difop Port: 7788
Send PointCloud To : ROS
PointCloud Topic: /rslidar_points
RoboSense-LiDAR-Driver is running.....
ERRCODE_WRONGPKTHEADER
ERRCODE_WRONGPKTHEADER
ERRCODE_WRONGPKTHEADER
ERRCODE_WRONGPKTHEADER
ERRCODE_WRONGPKTHEADER
ERRCODE_WRONGPKTHEADER
ERRCODE_WRONGPKTHEADER
ERRCODE_WRONGPKTHEADER
ERRCODE_WRONGPKTHEADER
ERRCODE_WRONGPKTHEADER
ERRCODE_WRONGPKTHEADER

Error while executing launch file : can't locate node

Hi everyone,
I cloned the driver's git in the catkin workspace of my raspberry pi 4. I followed the instructions in the readme file but couldn't launch the start_launch.launch file. I keep on getting this error :

ERROR: cannot launch node of type [rslidar_sdk/rslidar_sdk_node]: Cannot locate node of type [rslidar_sdk_node] in package [rslidar_sdk]. Make sure file exists in package path and permission is set to executable (chmod +x)

Even though I run "chmod +x" on the node itself and I successfully compiled the package. Do you have any clue what might be causing this problem ?

Also, i'm working on an acquisition unit and i'd like to save the raw data of lidar into rosbag automatically using the driver. If you have any quick ideas to do that it'll be helpful too !

Timestamping per point

Hello,

When digging into the driver and the timestamping per point, I noticed that in reality it is a timestamping per datablock instead of a timestamping per point.
Is it planned to have one day a true timestamping per point ?

Thanks for your help

How to decode the packet and save data into a bag?

Right now I have followed the instruction to decode packet data into point cloud (by running roslaunch rslidar_sdk start.launch and rosbag play my own bag), and I could see the results in the rviz which worked just fine. But how can I save the decoded point cloud data into a new bag ?

[ROS1]timestamp of each packet of /rslidar_packets is zero

Hi,

We are trying to verify new rslidar SDK from RoboSense.
The version of the SDK is the latest release version which is tagged as v1.3.0.
We figured out that timestamp of each packet of /rslidar_packets is zero, which blocked our further verification.
Could you kind give a hand on it? Thanks in advance.

# rostopic echo -n 1 /rslidar_packets | more
header: 
  seq: 564
  stamp: 
    secs: 1483229108
    nsecs: 801424026
  frame_id: "/rslidar"
packets: 
  - 
    stamp: 
      secs: 0
      nsecs:         0
    data: [85, 170, 5, 90, 0, 1, 0, 0, 249, 252, 255, 2, 0, 6, 149, 160, 0, 1, 0, 0, 0, 0, 88, 104, 71, 180, 0, 10, 182, 136, 6, 0, 0, 0, 0, 0, 0, 0, 19, 16, 0, 0, 255, 238, 1, 100, 

BTW, the legacy https://github.com/RoboSense-LiDAR/ros_rslidar works well on the issue.

Looking forward to your reply. Thanks.

Regards,
Ben

ROS1 packets produced by the node have wrong information and recorded bags have wrong metadata.

The packet topics produced by the driver do not contain all the information needed for proper operation.
When bags are recorded, the description and md5sum of the packet messages are d41d8cd98f00b204e9800998ecf8427e (empty string) and some programs do not operate on the bags.
rosbag check on a bagfile gives following:


WARNING: For type [rslidar_msgs/rslidarScan] stored md5sum [ff6baa58985b528481871cbaf1bb342f] has invalid message definition."                                                            
WARNING: For type [rslidar_msgs/rslidarPacket] stored md5sum [1e4288e00b9222ea477b73350bf24f51] has invalid message definition."                                                          
The following migrations need to occur:                                                      
 * From: rslidar_msgs/rslidarScan [d41d8cd98f00b204e9800998ecf8427e]                         
   To:   rslidar_msgs/rslidarScan [ff6baa58985b528481871cbaf1bb342f]                         
    1 rules missing:                                                                         
     * From: rslidar_msgs/rslidarScan [d41d8cd98f00b204e9800998ecf8427e]
       To:   rslidar_msgs/rslidarScan [ff6baa58985b528481871cbaf1bb342f]
 * From: rslidar_msgs/rslidarPacket [d41d8cd98f00b204e9800998ecf8427e]
   To:   rslidar_msgs/rslidarPacket [1e4288e00b9222ea477b73350bf24f51]
    1 rules missing:
     * From: rslidar_msgs/rslidarPacket [d41d8cd98f00b204e9800998ecf8427e]
       To:   rslidar_msgs/rslidarPacket [1e4288e00b9222ea477b73350bf24f51]

The rules can be generated to fix the bag and are attached, but should be fixed on the node to avoid this.

fix_packets-bmr.txt

rosbag play for example will work with the node listening on packets, but for example bag filtering cannot be done as the message definition is broken.

Compile with ROS catkin tools

Hello,

in the instructions on step 2 says to rename package_ros1.xml to package.xml but when im catkin_make i have the following errors:

-- ROS Found, Ros Support is turned On!

CMake Error: File /media/geo/d057a6b6-f590-4870-a4f8-13b392d0f9eb/geo/catkin_ws/src/rslidar_sdk/package_ros1.xml does not exist.
CMake Error at rslidar_sdk/CMakeLists.txt:34 (configure_file):
configure_file Problem configuring file

edit

as i was looking inside the CmakeList i found this on line 34

configure_file(${CMAKE_CURRENT_SOURCE_DIR}/package_ros1.xml ${CMAKE_CURRENT_SOURCE_DIR}/package.xml COPYONLY)

so i have to copy and rename the file and not just rename it right?

20.04?

Is 20.04 supported yet?
Is there likely to be another release in the near future?

Multilidar Time Synchronization

I am trying to connect multiple lidars to synchronize with the same GPS time. Is it possible to synchronize multiple lidar with the same timestamp?

Driver Initialize Error

Hi,
I went through the installation process (readme: 2.1,3.3, 3.4,3.5,4.1) and everything was successful except ././rslidar_sdk_node.

This is the second time I installed it. The first installation was successful and was giving the warning ERRCODE_MSOPPORTBUZY repeatedly as expected (no lidar was connected ).
For the second installation, I had to delete the folder of the first installation and reinstall everything in a different directory.

[100%] Linking CXX executable rslidar_sdk_node
[100%] Built target rslidar_sdk_node

When I run ./rslidar_sdk_node


********** RSLidar_SDK Version: v1.3.0 **********



Receive Packets From : Online LiDAR
Msop Port: 6699
Difop Port: 7788

ERRCODE_MSOPPORTBUZY
Driver Initialize Error....

Thank you in advance

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.