- Merge RSBPV4 into RSBP
- Support CRC32 check on MSOP/DIFOP packets.
- Support parsing DIFOP packets to get config/status data.
- Filter MOSP/DIFOP messages with two bytes instead of one byte.
- clear current cloud point when stop the instance of rs_driver.
- Recover frame_id field for C user.
- Fix pcl point cloud message. Adapt it to the format of the output file of rslidar_sdk.
- Fix timestamp value of XYZIRT for RS128
- Add User's guide document
- Rename RSEOS as RSE1
- Let user's distance values cover LiDAR's
- Revert "Report error ERRCODE_MSOP_TIMEOUT if only DIFOP packet is received", to avoid incorrect error report.
- Fix error distance of RSM2. Change it to 250m.
- Add tool to save as PCD file
- Seperate RSBPV4 from RSBP
- Add demo app demo_online_multi_lidars
- Disable error report in case of wrong block id for RS128/RS80 temporarily
- Fix distance range of helios series. Also update distance ranges of other lidars
- Report error ERRCODE_MSOP_TIMEOUT if only DIFOP packet is received
- Add option ENABLE_DOUBLE_RCVBUF to solve the packet-loss problem
- Add option ENABLE_WAIT_IF_QUEUE_EMPTY to reduce CPU usage.
- Add option ENABLE_STAMP_WITH_LOCAL to convert point cloud's timestamp to local time
- Make ERRCODEs different for MSOP/DIFOP Packet
- Rename error code CLOUDOVERFLOW
- For RSM2, recover its coordinate to ROS-compatible
- For RSM2, adapt to increased MSOP packet len
- Update
demo_pcap
andrs_driver_viewer
with cloud queue - Accept angle.csv with vert angle only
- Update help documents
- For Ruby and Ruby Plus, fix the problem of parsing point cloud' timestamp.
- Fix ERRCODE_MSOPTIMEOUT problem of input_sock_epoll
- Remove option ENABLE_RCVMMSG
- Compiled rs_driver_viewer on Windows, and add help doc
- Add option to double RECVBUF of UDP sockets
- Update demo_online to exit orderly.
- Fix runtime error of Eigen in case of ENABLE_TRANSFORM
- Fix Compiling error on QNX
- Fix pcap_rate
- Fix the problem with repeated stop and start of driver
- Remove option of high priority thread
- Support Ruby_3.0_48
- Add option to stamp point cloud with first point
- Distinguish 80/80v with lidar model
- Use ROS coordinate for EOS
- Enable PCAP file parsing in default mode
- Parse DIFOP packet in case of jumbo pcap file
- Update demo_online example to use ponit cloud queue
- Update help documents
- Fix lidar temperature
- Add option to receive packet with epoll()
- Support Jumbo Mode
- Check overflow of point cloud
- Fix compiling error of multiple definition
- Support RSP128/RSP80/RSP48 lidars
- Support EOS lidar
- Add option to usleep() when no packets to be handled
- Limit error information when error happens
- Use raw buffer for packet callback
- Split frame by seq 1 (for MEMS lidars)
- Remove difop handle thread
- When replay MSOP/DIFOP file, use the timestamp when it is recording. For Mechanical LiDARs,
- Split frame by block instead of by packet
- Let every point has its own timestamp, instead of using the block's one.
-- Refactory the coder part
- Check msop timeout
- Support M2
- add cmake option ENABLE_RECVMMSG
- Optimize point cloud transform
- Support dense attribute
- Support to bind to a specifed ip
- Limit max size of packet queue
- Apply SO_REUSEADDR option to the receiving socket
- Support user layer and tail layer
- add macro option to disable the PCAP function.
- Join multicast group with code instead of shell script
- Fix memory leaks problem
- Fix temperature calculation (for M1 only)
Optimazation to decrease CPU uage, includes:
- Replace point with point cloud as template parameter
- Instead of alloc/free packet, use packet pool
- Instead of alloc/free point cloud, always keep point cloud memory
- By default, use conditional macro to disable scan_msg/camera_trigger related code
- Add vlan support
- Add somip support
- Add split frame when pkt_cnt < last_pkt_cnt in mems
- Add temperature in mems
- Add ROCK support
- Fix don't get time when PointType doesn't have timestamp member
- Fix ROCK light center compensation algorithm
- Remove redundance condition code in vec.emplace_back(std::move(point)) in mech lidars
- Add RSHELIOS support
- Add RSM1 (B3) support
- Add Windows support
- Add rs_driver_viewer, a small tool to show point cloud
- Add save_by_rows argument
- Add multi-cast support
- Add points transformation function
- Update some decoding part for LiDARs
- Change the definition of packet message
- Update documents
- Fix the timestamp calculation for RS16,RS32 & RSBP. Now the output lidar timestamp will be UTC time and will not be affected by system time zone.
- Add interface in driver core to get lidar temperature
- Add support for point type XYZIRT (R - ring id)(T - timestamp)
- Add RS80 support
- Add interface in driver core to get camera trigger info
- Update the decoding part for ruby in echo-dual mode
- Update the compiler version from C++11 to C++14
- Add the limit of the length of the msop queue
- Add the exception capture when loading .csv file
- Fix the bug in calculating the timestamp of 128
- Fix the bug in calculating RPM
- Update some functions' names
- Update the program structure
- Remove unused variables in point cloud message
-
New program structure
-
Easy to do advanced development
-
Remove the redundant code in old driver.