Giter Site home page Giter Site logo

livox_ros_driver's Introduction

livox_ros_driver is a new ROS package, specially used to connect LiDAR products produced by Livox. The driver can be run under ubuntu 14.04/16.04/18.04 operating system with ROS environment (indigo, kinetic, melodic) installed. Tested hardware platforms that can run livox_ros_driver include: Intel x86 cpu platforms, and some ARM64 hardware platforms (such as nvida TX2 / Xavier, etc.).

0. Version and Release History

0.1 Current Version

v2.6.0

0.2 Release History

Release History

1. Install dependencies

Before running livox_ros_driver, ROS and Livox-SDK must be installed.

1.1 ROS installation

For ROS installation, please refer to the ROS installation guide :

ROS installation guide

    Note :

    (1) Be sure to install the full version of ROS (ros-distro-desktop-full);

    (2) There are 7 to 8 steps in ROS installation, please read the installation guide in detail;

1.2 Livox-SDK Installation

  1. Download or clone Livox-SDK from Github to local;

  2. Refer to the corresponding README.md document to install and run Livox-SDK;

2. Get and build livox_ros_driver

  1. Get livox_ros_driver from GitHub :

  git clone https://github.com/Livox-SDK/livox_ros_driver.git ws_livox/src

    Note :

    Be sure to use the above command to clone the code to the local, otherwise it will compile error due to the file path problem.

  1. Use the following command to build livox_ros_driver :

    cd ws_livox
    catkin_make
  2. Use the following command to update the current ROS package environment :

    source ./devel/setup.sh

3. Run livox_ros_driver

3.1 Use the ROS launch file to load livox_ros_driver

    The command format is as follows :

    roslaunch livox_ros_driver [launch file] [param]

  1. If the [param] parameter is empty, livox_ros_driver will connect to the corresponding device according to the configuration in the configuration file. The connection rules are as follows :

      When the connection status of the device specified in the configuration file is configured to enable connection (true), the livox_ros_driver will only connect to the device specified in the configuration file;

    Note :

    (1) the json configuration file is in the "ws_livox/src/livox_ros_driver/config" directory;

    (2) When the connection status of the devices specified in the configuration file is all configured to prohibit connection (false), livox_ros_driver will automatically connect all the devices that are scanned;

  1. If the [param] parameter is the broadcast code of LiDAR, take LiDAR (the broadcast code is 0TFDG3B006H2Z11) and LiDAR (the broadcast code is 1HDDG8M00100191) as an example, Use the command as follows :
   roslaunch livox_ros_driver livox_lidar_rviz.launch bd_list:="0TFDG3B006H2Z11&1HDDG8M00100191"

    Broadcast code introduction

    Each Livox LiDAR device has a unique broadcast code. The broadcast code consists of a 14-character serial number and an additional character (1, 2, or 3), for a total of 15 characters. The above serial number is located under the QR code of the LiDAR body shell (see the figure below). The broadcast code is used to specify the LiDAR device to be connected. The detailed format is as follows :

    Broadcast Code

    Note :

    X in the figure above corresponds to 1 in MID-100_Left/MID-40/Horizon/Tele products, 2 in MID-100_Middle, and 3 in MID-100_Right.

4. Launch file and livox_ros_driver internal parameter configuration instructions

4.1 Launch file configuration instructions

All launch files of livox_ros_driver are in the "ws_livox/src/livox_ros_driver/launch" directory. Different launch files have different configuration parameter values and are used in different scenarios :

launch file name Description
livox_lidar_rviz.launch Connect to Livox LiDAR device
Publish pointcloud2 format data
Autoload rviz
livox_hub_rviz.launch Connect to Livox Hub device
Publish pointcloud2 format data
Autoload rviz
livox_lidar.launch Connect to Livox LiDAR device
Publish pointcloud2 format data
livox_hub.launch Connect to Livox LiDAR device
Publish pointcloud2 format data
livox_lidar_msg.launch Connect to Livox LiDAR device
Publish livox customized pointcloud data
livox_hub_msg.launch Connect to Livox Hub device
Publish livox customized pointcloud data
lvx_to_rosbag.launch Convert lvx file to rosbag file
Convert lvx files to rosbag files directly
lvx_to_rosbag_rviz.launch Convert lvx file to rosbag file
Read raw pointcloud data from lvx file and convert to pointcloud2 format for publishing

4.2 Livox_ros_driver internal main parameter configuration instructions

All internal parameters of Livox_ros_driver are in the launch file. Below are detailed descriptions of the three commonly used parameters :

Parameter Detailed description Default
publish_freq Set the frequency of point cloud publish
Floating-point data type, recommended values 5.0, 10.0, 20.0, 50.0, etc.
10.0
multi_topic If the LiDAR device has an independent topic to publish pointcloud data
0 -- All LiDAR devices use the same topic to publish pointcloud data
1 -- Each LiDAR device has its own topic to publish point cloud data
0
xfer_format Set pointcloud format
0 -- Livox pointcloud2(PointXYZRTL) pointcloud format
1 -- Livox customized pointcloud format
2 -- Standard pointcloud2 (pcl :: PointXYZI) pointcloud format in the PCL library
0

    Livox_ros_driver pointcloud data detailed description :

  1. Livox pointcloud2 (PointXYZRTL) point cloud format, as follows :
float32 x               # X axis, unit:m
float32 y               # Y axis, unit:m
float32 z               # Z axis, unit:m
float32 intensity         # the value is reflectivity, 0.0~255.0
uint8 tag               # livox tag
uint8 line              # laser number in lidar
  1. Livox customized data package format, as follows :
Header header             # ROS standard message header
uint64 timebase           # The time of first point
uint32 point_num          # Total number of pointclouds
uint8  lidar_id           # Lidar device id number
uint8[3]  rsvd            # Reserved use
CustomPoint[] points      # Pointcloud data

    Customized Point Cloud (CustomPoint) format in the above customized data package :

uint32 offset_time      # offset time relative to the base time
float32 x               # X axis, unit:m
float32 y               # Y axis, unit:m
float32 z               # Z axis, unit:m
uint8 reflectivity      # reflectivity, 0~255
uint8 tag               # livox tag
uint8 line              # laser number in lidar
  1. The standard pointcloud2 (pcl :: PointXYZI) format in the PCL library :

    Please refer to the pcl :: PointXYZI data structure in the point_types.hpp file of the PCL library.

5. Configure LiDAR parameters

In the "ws_livox/src/livox_ros_driver/launch" path, there are two json files, livox_hub_config.json and livox_lidar_config.json.

  1. When connecting directly to LiDAR, use the livox_lidar_config.json file to configure LiDAR parameters. Examples of file contents are as follows :
{
   "lidar_config": [
      {
         "broadcast_code": "0TFDG3B006H2Z11",
         "enable_connect": true,
         "enable_fan": true,
         "return_mode": 0,
         "coordinate": 0,
         "imu_rate": 1,
         "extrinsic_parameter_source": 0
      }
   ]
}

    The parameter attributes in the above json file are described in the following table :

LiDAR configuration parameter

Parameter Type Description Default
broadcast_code String LiDAR broadcast code, 15 characters, consisting of a 14-character length serial number plus a character-length additional code 0TFDG3B006H2Z11
enable_connect Boolean Whether to connect to this LiDAR
true -- Connect this LiDAR
false --Do not connect this LiDAR
false
return_mode Int return mode
0 -- First single return mode
1 -- Strongest single return mode
2 -- Dual return mode
0
coordinate Int Coordinate
0 -- Cartesian
1 -- Spherical
0
imu_rate Int Push frequency of IMU sensor data
0 -- stop push
1 -- 200 Hz
Others -- undefined, it will cause unpredictable behavior
Currently only Horizon supports this, MID serials do not support it
0
extrinsic_parameter_source Int Whether to enable extrinsic parameter automatic compensation
0 -- Disable automatic compensation of LiDAR external reference
1 -- Automatic compensation of LiDAR external reference
0

    Note :

    When connecting multiple LiDAR, if you want to use the external parameter automatic compensation function, you must first use the livox viewer to calibrate the external parameters and save them to LiDAR.

  1. When connecting to the Hub, use livox_hub_config.json to configure the parameters of the Hub and LiDAR. Examples of file contents are as follows :
{
   "hub_config": {
      "broadcast_code": "13UUG1R00400170",
      "enable_connect": true,
      "coordinate": 0
   },
   "lidar_config": [
      {
         "broadcast_code": "0TFDG3B006H2Z11",
         "return_mode": 0,
         "imu_rate": 1
      }
   ]
}

    The main difference between the content of Hub json configuration file and the content of the LiDAR json configuration file is that the Hub configuration item "hub_config" is added, and the related configuration content of the Hub is shown in the following table :

HUB configuration parameter

Parameter Type Description Default
broadcast_code String HUB broadcast code, 15 characters, consisting of a 14-character length serial number plus a character-length additional code 13UUG1R00400170
enable_connect Boolean Whether to connect to this Hub
true -- Connecting to this Hub means that all LiDAR data connected to this Hub will be received
false -- Prohibition of connection to this Hub means that all LiDAR data connected to this Hub will not be received
false
coordinate Int Coordinate
0 -- Cartesian
1 -- Spherical
0

    Note :

    (1) The configuration parameters enable_connect and coordinate in the Hub configuration item "hub_config" are global and control the behavior of all LiDARs. Therefore, the LiDAR related configuration in the Hub json configuration file does not include these two contents.

    (2) The Hub itself supports compensation of LiDAR external parameters, and does not require livox_ros_driver to compensate.

6. livox_ros_driver timestamp synchronization function

6.1 Hardware requirements

Prepare a GPS device to ensure that the GPS can output UTC time information in GPRMC/GNRMC format through the serial port or USB virtual serial port, and support PPS signal output; then connect the GPS serial port to the host running livox_ros_driver, and connect the GPS PPS signal line to LiDAR. For detailed connection instructions and more introduction to time stamp synchronization, please refer to the following links:

Timestamp synchronization

    Note :

    (1) The time stamp synchronization function of livox_ros_driver is based on the LidarSetUtcSyncTime interface of Livox-SDK, and only supports GPS synchronization, which is one of many synchronization methods of livox devices.

    (2) Be sure to set the output frequency of GPRMC/GNRMC time information of GPS to 1Hz, other frequencies are not recommended.

    (3) Examples of GPRMC/GNRMC format strings are as follows :

$GNRMC,143909.00,A,5107.0020216,N,11402.3294835,W,0.036,348.3,210307,0.0,E,A*31
$GNRMC,021225.00,A,3016.60101,N,12007.84214,E,0.011,,260420,,,A*67
$GPRMC,010101.130,A,3606.6834,N,12021.7778,E,0.0,238.3,010807,,,A*6C
$GPRMC,092927.000,A,2235.9058,N,11400.0518,E,0.000,74.11,151216,,D*49
$GPRMC,190430,A,4812.3038,S,07330.7690,W,3.7,3.8,090210,13.7,E,D*26

6.2 Enable timestamp synchronization

livox_ros_driver only supports the timestamp synchronization function when connected to LiDAR. The timestamp related configuration item timesync_config is in the livox_lidar_config.json file. The detailed configuration content is shown in the table below :

Timestamp synchronization function configuration instructions

Parameter Type Description Default
enable_timesync Boolean Whether to enable the timestamp synchronization
true -- Enable timestamp synchronization
false -- Disable timestamp synchronization
false
device_name String Name of the serial device to be connected, take "/dev/ttyUSB0" as an example, indicating that the device sending timestamp information to livox_ros_driver is ttyUSB0 "/dev/ttyUSB0"
comm_device_type Int Type of device sending timestamp information
0 -- Serial port or USB virtual serial port device
other -- not support
0
baudrate_index Int Baud rate of serial device
0 -- 2400
1 -- 4800
2 -- 9600
3 -- 19200
4 -- 38400
5 -- 57600
6 -- 115200
7 -- 230400
8 -- 460800
9 -- 500000
10 -- 576000
11 -- 921600
2
parity_index Int parity type
0 -- 8bits data without parity
1 -- 7bits data 1bit even parity
2 -- 7bits data 1bit odd parity
3 -- 7bits data 1bit 0, without parity
0

7. Convert lvx point cloud data file (v1.0/v1.1) to rosbag file

livox_ros_driver supports the conversion of lvx pointcloud data files to rosbag files. Use the command as follows :

roslaunch livox_ros_driver lvx_to_rosbag.launch lvx_file_path:="/home/livox/test.lvx"

After replacing "/home/livox/test.lvx" in the above command with the local lvx data file path, you can simply run it; if the conversion is successful, a rosbag format file with the same name will be generated under the above path.

8. Application Documents

9. Support

You can get support from Livox with the following methods :

  • Send email to [email protected] with a clear description of your problem and your setup
  • Report issue on github

livox_ros_driver's People

Contributors

3noch avatar dk-sr avatar eboskma avatar kmiya avatar livox-infra avatar livox-sdk avatar taichih avatar xmba15 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

livox_ros_driver's Issues

激光频率和修改

请问一下,使用这个sdk的时候,livox的激光频率是多少?能不能修改频率?

What is the default setting when converting lvx file to bag file?

When converting an lvx file to a bag file, I am asking you how to use the parameter.
ex) roslaunch livox_ros_driver lvx_to_rosbag_rviz.launch lvx_file_path:="/home/livox/test.lvx"
If I don't use the parameter, does it not convert properly? What's the default setting?

Whether the original file size of lvx is large or small, it will be converted to 4.0 kb.

Mid-100设备无法订阅三个Mid-40的一帧

Livox Team, 你们好,我们的设备型号是Mid-100, 操作系统Ubuntu 18.04, 我们连接了设备,运行

roslaunch livox_ros_driver livox_lidar_msg.launch

进行/livox/lidar话题发布,我们订阅这个话题(/livox/lidar)的时候,发现在订阅回调函数里每次被调用的时候接收到的只是其中一个Mid-40的点云数据,观察发现,好像是这三个Mid-40分别按依次发布的。不能一次性在调用订阅的回调函数的直接返回三个Mid-40的一起的一帧点云数据吗?目前每次回调函数只能接收到其中某一个Mid-40返回的点云。怎样才能让回调函数接收的是Mid-100(三个Mid-40)的一帧点云数据呢?

我们的配置:
publish_freq:10
multi_topic:0
xfer_format:2

Horizon: Recording to rosbag including internal IMU data

Hi, i try to record to rosbag using the
livox_lidar_msg.launch file.
So I changed the arg "rosbag_enable" to true, which records succesfully to a file located in ~/.ros
When I want to play that file with the Livox-SDK/livox_horizon_loam package it works successfully only with the default launch file.

If I use the "_imu" version (changed line 24 in the launch file to use the internal IMU of horizon) nothing happens when playing the rosbag.

Is this an issue with the recorded bag, or with the loam package?

How to differentiate /livox/imu messages in case of hub configuration

Would like to check with Livox folks, that in case multi horizon lidars are installed with a hub unit, since every lidar unit publish the same /livox/imu message, which is of type sensor_msgs/Imu, how to seperate these imu messages so that we know which lidar unit there are attached to? Thanks

驱动的接口文档说明

你好:
请问你们有ros驱动接口的文档说明吗,我指的是驱动里面一些函数的说明文档。
谢谢!盼复。

build failed in livox_ros_driver/lddc.cpp

Hi,

I am build livox ros driver on my raspberry pi, it show me these error:

home/pi/ws_livox/src/livox_ros_driver/livox_ros_driver/lddc.cpp:31:10: fatal error: 'pcl_ros/point_cloud.h' file not found
#include <pcl_ros/point_cloud.h>
^~~~~~~~~~~~~~~~~~~~~~~
1 warning and 1 error generated.
make[2]: *** [livox_ros_driver/CMakeFiles/livox_ros_driver_node.dir/build.make:158: livox_ros_driver/CMakeFiles/livox_ros_driver_node.dir/livox_ros_driver/lddc.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:469: livox_ros_driver/CMakeFiles/livox_ros_driver_node.dir/all] Error 2
make: *** [Makefile:158: all] Error 2

I am already installed pcl 1.7.2 and ros kinetic.

Thanks

Failed to conert the lvx data file to rosbag file

Hi,
I excute the follow command roslaunch livox_ros_driver lvx_to_rosbag.launch lvx_file_path:="xxxxxx".
Throw the issue:
`Start to read lvx file.
[ INFO] [1584608695.672558908]: Support only one topic.
[ INFO] [1584608695.673374797]: livox/lidar publish use PointCloud2 format, publisher queue size [4096]
Read progress : 1
Read progress : 2
Read progress : 3
Read progress : 4
Read progress : 5
Read progress : 6
Read progress : 7
Read progress : 8
Read progress : 9
Read progress : 10
Read progress : 11
Read progress : 12
Read progress : 13
Read progress : 14
Read progress : 15
Read progress : 16
Read progress : 17
Read progress : 18
Read progress : 19
Read progress : 20
Read progress : 21
Read progress : 22
Read progress : 23
Read progress : 24
Read progress : 25
Read progress : 26
Read progress : 27
Read progress : 28
Read progress : 29
Read progress : 30
Read progress : 31
Read progress : 32
Read progress : 33
Read progress : 34
Read progress : 35
Read progress : 36
Read progress : 37
Read progress : 38
Read progress : 39
Read progress : 40
Read progress : 41
Read progress : 42
Read progress : 43
Read progress : 44
Read progress : 45
Read progress : 46
Read progress : 47
Read progress : 48
Read progress : 49
Read progress : 50
[ INFO] [1584608696.135814489]: Support only one topic.
[ INFO] [1584608696.136708602]: livox/imu publish imu data, Publisher QueueSize[4096]
terminate called after throwing an instance of 'std::runtime_error'
what(): Time is out of dual 32-bit range
================================================================================REQUIRED process [livox_lidar_publisher-2] has died!
process has died [pid 20133, exit code -6, cmd /home/vic/catkin_ws/src/ws_livox/devel/lib/livox_ros_driver/livox_ros_driver_node 100000000000000 __name:=livox_lidar_publisher __log:=/home/vic/.ros/log/b35834fe-69c0-11ea-bbe7-b42e992833a3/livox_lidar_publisher-2.log].
log file: /home/vic/.ros/log/b35834fe-69c0-11ea-bbe7-b42e992833a3/livox_lidar_publisher-2*.log
Initiating shutdown!

[livox_lidar_publisher-2] killing on exit
[rosout-1] killing on exit
[master] killing on exit
shutting down processing monitor...
... shutting down processing monitor complete
done`
The point_cloud_data.lvx file was downloaded from https://www.livoxtech.com/downloads
May I have your help to fixed it.
Thank you!

Ros2 driver

Hi! Do you have ros2 driver \ plans to implement it?

No tf data. Actual error: Fixed Frame [livox_frame] does not exist

Hello,

I am having trouble visualising the point cloud using the following ROS driver on the Jetson Tx2. The problem seems to be a result of the following message:

No tf data. Actual error: Fixed Frame [livox_frame] does not exist.

The following is the roslaunch console message which seems to show no errors:

SUMMARY

========

PARAMETERS

  • /cmdline_file_path: livox_test.lvx
  • /cmdline_str: 100000000000000
  • /data_src: 0
  • /frame_id: livox_frame
  • /multi_topic: 0
  • /output_data_type: 0
  • /publish_freq: 10.0
  • /rosdistro: melodic
  • /rosversion: 1.14.9
  • /user_config_path: /home/seymur/Docu...
  • /xfer_format: 0

NODES
/
livox_lidar_publisher (livox_ros_driver/livox_ros_driver_node)
rviz (rviz/rviz)

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

setting /run_id to 46dca2ea-f252-11ea-a8da-00044bf848ae
process[rosout-1]: started with pid [15563]
started core service [/rosout]
process[livox_lidar_publisher-2]: started with pid [15570]
[ INFO] [1599624580.401020910]: Livox Ros Driver Version: 2.5.0
[ INFO] [1599624580.413450077]: Data Source is raw lidar.
[ INFO] [1599624580.416246372]: Config file : /home/seymur/Documents/Projects/Livox_ROS/ws_livox/src/livox_ros_driver/config/livox_lidar_config.json
Commandline input bd:100000000000000
Invalid bd:100000000000000!
Livox SDK version 2.1.1
broadcast code[1HDDH1200104011] : 1 1 0 0 1 0
Add Raw user config : 1HDDH1200104011
Disable timesync
Disable auto connect mode!
List all broadcast code in whiltelist:
1HDDH1200104011
Livox-SDK init success!
[ INFO] [1599624580.417805909]: Init lds lidar success!
process[rviz-3]: started with pid [15572]

I will also include the config file params for reference:

{
"lidar_config": [
{
"broadcast_code": "1HDDH1200104011",
"enable_connect": true,
"enable_fan": true,
"return_mode": 0,
"coordinate": 0,
"imu_rate": 1,
"extrinsic_parameter_source": 0,
"enable_high_sensitivity": false
}
],

"timesync_config": {
    "enable_timesync": false,
    "device_name": "/dev/ttyUSB0",
    "comm_device_type": 0,
    "baudrate_index": 2,
    "parity_index": 0     
}

}

I did some research through the Google Conversation forums and just browsing some of the potential things that can cause this problem but I am not having any luck.

I will also include the Static IP config file and ifconfig output for eth0:

/etc/network/interfaces

This file describes the network interfaces available on your system
and how to activate them. For more information, see interfaces(5).

The loopback network interface
auto lo
iface lo inet loopback

The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 192.168.1.101
netmask 255.255.255.0
gateway 192.168.1.1

ifconfig:

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::12f9:4e8:1744:898 prefixlen 64 scopeid 0x20
ether 00:04:4b:f8:48:b0 txqueuelen 1000 (Ethernet)
RX packets 5752 bytes 356480 (356.4 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1856 bytes 322436 (322.4 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 41

I would really appreciate some assistance on this issue. Thanks

EDIT:

I managed to get the device to show the pointcloud running the following line

'sudo ifconfig eth0 192.168.1.50'

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.50 netmask 255.255.255.0 broadcast 192.168.1.255
ether 00:04:4b:f8:48:b0 txqueuelen 1000 (Ethernet)
RX packets 959233 bytes 1229490442 (1.2 GB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2647 bytes 404869 (404.8 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 41

I was wondering why we would run the following static IP 192.168.1.50 when the IP address in the manual is 192.168.1.1XX defines the specific LiDAR where XX is the last 2 digits on the serial. Setting that as the IP address doesnt seem to work.

The error below is still occuring:

No tf data. Actual error: Fixed Frame [livox_frame] does not exist.

Error: Received an invalid TCPROS header. Each line must have an equals sign.

I am running the roslaunch livox_ros_driver livox_lidar_rviz.launch bd_list="0TFDFCE00505101" from my Nvidia Xavier on ROS Melodic and Ubuntu 18.04, on an Arm64 processor.

I connected the Livox by Ethernet to my Xavier computer and confirmed that both my computer and Livox Mid-40 have static IP addresses. I also confirmed previously that I was able to see the Livox lidar when I used it separately on my Ubuntu 16.04 setup on my virtual machine on my Mac via VMWare.

Here, I saw Rviz open up but with no data points. I also couldn't test the Livox Viewer since I cannot open it, probably because I am on a computer with Arm64 processor. The error output from the Livox viewer was the following:

christopherkao@christopherkao-xavier:~/Downloads/Livox Viewer For Linux Ubuntu16.04_x64 0.5.0$ livox_viewer.sh: 11: livox_viewer.sh: ./so/livox_viewer: Exec format error
^C

Here is the output when I tried to run the roslaunch livox_ros_driver livox_lidar_rviz.launch bd_list="0TFDFCE00505101":

christopherkao@christopherkao-xavier:~/livox_ws/src/ws_livox$ roslaunch livox_ros_driver livox_lidar_rviz.launch bd_list:="0TFDFCE00505101"
... logging to /home/christopherkao/.ros/log/acd7bbd6-d848-11e9-a972-00044bcba063/roslaunch-christopherkao-xavier-7378.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://christopherkao-xavier:43629/

SUMMARY
========

PARAMETERS
 * /livox_msg_type: 0
 * /rosdistro: melodic
 * /rosversion: 1.14.3

NODES
  /
    livox_lidar_publisher (livox_ros_driver/livox_lidar_node)
    rviz (rviz/rviz)

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

setting /run_id to acd7bbd6-d848-11e9-a972-00044bcba063
process[rosout-1]: started with pid [7405]
started core service [/rosout]
process[livox_lidar_publisher-2]: started with pid [7412]
[ INFO] [1568614230.064185685]: Livox-SDK ros demo
[ INFO] [1568614230.064931554]: broadcast code list :000000000000001
[ INFO] [1568614230.065042537]: Invalid bd:000000000000001
[ INFO] [1568614230.065137455]: Commandline input 0TFDFCE00505101
[ INFO] [1568614230.065205939]: commandline input bd:0TFDFCE00505101
[ INFO] [1568614230.065286680]: list all valid bd:
[ INFO] [1568614230.065401183]: 0TFDFCE00505101
[ INFO] [1568614230.089117477]: Publish PointCloud2
process[rviz-3]: started with pid [7415]
[2019-09-15 23:10:31.071] [console] [info]  Boradcast broadcast code: 0TFDFCE00505101  [device_discovery.cpp] [OnBroadcast] [161]
[ INFO] [1568614231.071927816]: Receive Broadcast Code 0TFDFCE00505101, please add it to broacast_code_list if want to connect!

[2019-09-15 23:10:31.072] [console] [info]  LocalIP: 192.168.1.20  [device_discovery.cpp] [OnBroadcast] [213]
[2019-09-15 23:10:31.072] [console] [info] Command Port: 55501  [device_discovery.cpp] [OnBroadcast] [214]
[2019-09-15 23:10:31.073] [console] [info] Data Port: 56001  [device_discovery.cpp] [OnBroadcast] [215]
[2019-09-15 23:10:31.095] [console] [info] New Device  [device_discovery.cpp] [OnData] [110]
[2019-09-15 23:10:31.095] [console] [info] Handle: 0  [device_discovery.cpp] [OnData] [111]
[2019-09-15 23:10:31.095] [console] [info] Broadcast Code: 0TFDFCE00505101  [device_discovery.cpp] [OnData] [112]
[2019-09-15 23:10:31.095] [console] [info] Type: 1  [device_discovery.cpp] [OnData] [113]
[2019-09-15 23:10:31.095] [console] [info] IP: 192.168.1.80  [device_discovery.cpp] [OnData] [114]
[2019-09-15 23:10:31.095] [console] [info] Command Port: 55501  [device_discovery.cpp] [OnData] [115]
[2019-09-15 23:10:31.095] [console] [info] Data Port: 56001  [device_discovery.cpp] [OnData] [116]
[ INFO] [1568614231.096706414]: OnDeviceChange broadcast code 0TFDFCE00505101 update type 0
[ INFO] [1568614231.096946877]: Device State status_code 0
[ INFO] [1568614231.097053284]: Device State working state 5
[ INFO] [1568614231.097144873]: Device feature 0
[2019-09-15 23:10:31.097] [console] [info]  Send Command: Set 0 Id 2 Seq 3  [command_channel.cpp] [Send] [233]
[2019-09-15 23:10:31.119] [console] [info]  Recieve Ack: Set 0 Id 2 Seq 3  [command_handler.cpp] [OnCommand] [104]
[ INFO] [1568614231.119764076]: firm ver: 3.2.0.0
[2019-09-15 23:10:31.143] [console] [info]  Update State to 1, device connect true  [device_manager.cpp] [UpdateDeviceState] [224]
[ INFO] [1568614231.143560343]: OnDeviceChange broadcast code 0TFDFCE00505101 update type 2
[ INFO] [1568614231.143746595]: Device State status_code 0
[ INFO] [1568614231.145343748]: Device State working state 1
[ INFO] [1568614231.146114547]: Device feature 0
[2019-09-15 23:10:31.146] [console] [info]  Send Command: Set 0 Id 4 Seq 5  [command_channel.cpp] [Send] [233]
[2019-09-15 23:10:31.167] [console] [info]  Recieve Ack: Set 0 Id 4 Seq 5  [command_handler.cpp] [OnCommand] [104]
[ INFO] [1568614231.167695031]: OnSampleCallback statue 0 handle 0 response 0
[ INFO] [1568614231.193830961]: packet loss : 1689189507410
Error:   Received an invalid TCPROS header.  Each line must have an equals sign.
         at line 103 in /tmp/binarydeb/ros-melodic-cpp-common-0.6.12/src/header.cpp
[2019-09-15 23:11:38.032] [console] [info]  Update progress 64, device connect true  [device_manager.cpp] [UpdateDeviceState] [235]
[ INFO] [1568614298.032293569]: OnDeviceChange broadcast code 0TFDFCE00505101 update type 2
[2019-09-15 23:11:38.847] [console] [info]  Update progress 0, device connect true  [device_manager.cpp] [UpdateDeviceState] [235]
[ INFO] [1568614298.848107201]: OnDeviceChange broadcast code 0TFDFCE00505101 update type 2
[2019-09-15 23:11:50.272] [console] [info]  Update progress 64, device connect true  [device_manager.cpp] [UpdateDeviceState] [235]
[ INFO] [1568614310.272320971]: OnDeviceChange broadcast code 0TFDFCE00505101 update type 2
[2019-09-15 23:11:51.088] [console] [info]  Update progress 0, device connect true  [device_manager.cpp] [UpdateDeviceState] [235]
[ INFO] [1568614311.088939017]: OnDeviceChange broadcast code 0TFDFCE00505101 update type 2
[2019-09-15 23:12:52.852] [console] [info]  Device 0 removed   [device_manager.cpp] [RemoveDevice] [99]
[ INFO] [1568614372.853348666]: OnDeviceChange broadcast code 0TFDFCE00505101 update type 1

Build fail

Hello,

I am having trouble to build the driver.
Althought I have ros installed on my machine, the library can't be included.
Do you have any idea ?

/dev/ws_livox/src/livox_ros_driver/livox_ros_driver/lddc.cpp:39:10: fatal error: pcl_ros/point_cloud.h: No such file or directory
 #include <pcl_ros/point_cloud.h>

Horizon Imu message orientation all 0.0 values

I'm trying to get the imu orientation values from the ROS /livox/imu topic, and when looking at the message values, all quaternion values are 0.0. The configuration json file has set "imu_rate": 1. Not sure where to go next?

failed to load lvx file and show in rviz

Hi,

when I run the command "roslaunch livox_ros_driver lvx_to_rosbag_rviz.launch" throw the issue:

...
[INFO] [1582801801.888035630]: livox/imu publish imu data, Publisher QueueSize[4096]
terminate called after throwing an instance of 'std::runtime_error'
what(): Time is out of dual 32-bit range

REQUIRED process [livox_lidar_publisher-1] has died!
process has died [pid 7458, exit code -6, cmd /home/user/ws_livox/devel/lib/livox_ros_driver/livox_ros_driver_node 100000000000000 __name:=livox_lidar_publisher __log:=/home/lyh/.ros/log/a2764ea2-5942-11ea-8291-000c29292ea9/livox_lidar_publisher-1.log].
log file: /home/user/.ros/log/a2764ea2-5942-11ea-8291-000c29292ea9/livox_lidar_publisher-1*.log
Initiating shutdown!

[record-2] killing on exit
[livox_lidar_publisher-1] killing on exit
shutting down processing monitor...
... shutting down processing monitor complete
done

Don't know how to fix it

Thank you

Installation on Win10

Hi,

Is there any installation guidelines for Win10? I encountered a problem when building livox_ros_driver package:

fatal error C1083: Could not open file "unistd.h": No such file
NMAKE : fatal error U1077: “"E:\Visual Studio\VC\Tools\MSVC\14.23.28105\bin\Hostx64\x64\cl.exe"”: Return code“0x2” Stop.
NMAKE : fatal error U1077: “"E:\Visual Studio\VC\Tools\MSVC\14.23.28105\bin\HostX64\x64\nmake.exe"”: Return code“0x2” Stop.
NMAKE : fatal error U1077: “"E:\Visual Studio\VC\Tools\MSVC\14.23.28105\bin\HostX64\x64\nmake.exe"”: Return code“0x2” Stop.
Invoking "nmake" failed

Horizon使用livox_ros_driver点云存在拖影

我们在livox_viewer下显示Horizon数据时正常,但使用livox_ros_driver时在rviz中观察到有1S以上的拖影,请问需要修改驱动中什么参数来解决这个问题

rosbag does not contain original timestamps

Hi,

I just noticed that a created rosbag from a lvx file does not contain the correct timestamp (always starts from time since epoch)

Can you please set the correct timestamp from the original lvx file or just let me know, if I am doing something wrong?
Thanks in advance.

Error in lvx_to_rosbag.launch

I am trying to convert lvx files from LivoxViewer to rosbag files.
I'm using LivoxHorizon.
I use the command (roslaunch livox_ros_driver lvx_to_rosbag. launch lvx_file_path:="xxxxx")
Errors :

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://ubuntu:37899/

SUMMARY
========

PARAMETERS
 * /cmdline_file_path: test.lvx
 * /cmdline_str: 100000000000000
 * /data_src: 2
 * /multi_topic: 0
 * /output_data_type: 1
 * /publish_freq: 10.0
 * /rosdistro: kinetic
 * /rosversion: 1.12.14
 * /xfer_format: 1

NODES
  /
    livox_lidar_publisher (livox_ros_driver/livox_ros_driver_node)

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

setting /run_id to 3b98411e-b9d6-11ea-91e3-000c2904aa6a
process[rosout-1]: started with pid [17662]
started core service [/rosout]
process[livox_lidar_publisher-2]: started with pid [17671]
[ INFO] [1593414037.262532016]: Livox Ros Driver Version: 2.0.1
[ INFO] [1593414037.277491507]: Data Source is lvx file.
[ INFO] [1593414037.278872809]: Create bag file :test.bag!
Open test.lvx file fail[1]!
[ERROR] [1593414037.278990743]: Init lds lvx file fail!
^C[livox_lidar_publisher-2] killing on exit
[rosout-1] killing on exit
[master] killing on exit
shutting down processing monitor...
... shutting down processing monitor complete
done

Thank you.

support RainFogSupression in launch file

Could you please update the ros dirver package to support enable RainFogSuppression in the launch files (i.e. add enableRainFogSuppression in the livox_lidar_config.json just like the enableFanCtrl)?

Command Port and Data Port are constantly changing

After starting the livox_ros_driver, console prints the successful information of connecting Lidar, and prints the correct BD code. However, the Command Port and Data Port are always changing, and there is no topic published by the Lidar, at least I cant find it by "rostopic list".

What should I do in this situation?

Thanks in advance.

What is imu_rate?

Hello,
I am just testing mid-40 sensor and i see the imu_rate parameter in the config file?
What does this do? Is there an imu inside the sensor?

Thanks

How does the return_mode parameter works in the livox_lidar_config.json file?

Hello,

I'm trying to see the second return points in the point cloud that Livox mid 40 gives to me. When I use the standard firmware (not the multirreturn firmware), and set return_mode to 2, I can see via RVIZ and rostopic echo that there aren't second return points in the point cloud.

Then I tested the opposite, dual_return set to 0 and use the multirreturn special firmware. Now I can see the second return points. But it shouldn't work like that, I think.

I'm only using the LiDAR and a laptop to do this kind of experiments.

The question is, how does the return_mode works? Have I missed something?

synchronized or not

Hello here, recently I tried using Horizon together with other sensors, I have connected the sync cable with mine, and the state of horizon in livox_viewer is "PPS sync" which means sucessfully sychronized. However when I tried view the timestamp like velodyne in spreadsheet, the timestamp of first .lvx file with GPS sync is somewhat 310^12, while the same with the second .lvx file(without gps sync) starts from 110^13.
From one of the closed issues I got that if successfuly synchronized, the time stamp should be GPRMC format, and I connected Horizon sync cable with GPS, TTL to 485 connected with my PC, which do give the GPRMC format. So I am wondering whether I am synchronized or not.

It is converted to only 4 kb regardless of the original capacity.

Hello
Do I have to give an option to convert lvx file to bag file so that it can be converted normally?
If you check the information in the bag file after conversion, the version and size will be shown below. Regardless of the original size.(4.0kb)
Is there any way to solve this problem?

command

roslaunch livox_ros_driver lvx_to_rosbag_rviz.launch lvx_file_path:="/home/livox/test.lvx"

#rosbag info /home/livox/test.bag

result
path : /home/livox/test.bag
version : 2.0
size : 4.0kb

Make error with Melodic

Hi guys, I'm new to ROS and getting some trouble.
I get this compile error when compiling the ros driver.
The livox SDK itself works fine..

OS: ubuntu 18.04
ROS: Melodic

ws_livox/src/livox_ros_driver/livox_ros_driver/livox_ros_driver/lddc.cpp:372:39: error: expected primary-expression before ‘)’ token
   LivoxImuPoint* imu = (LivoxImuPoint*)point_buf;
                                       ^
livox_ros_driver/livox_ros_driver/CMakeFiles/livox_ros_driver_node.dir/build.make:206: recipe for target 'livox_ros_driver/livox_ros_driver/CMakeFiles/livox_ros_driver_node.dir/livox_ros_driver/lddc.cpp.o' failed
make[2]: *** [livox_ros_driver/livox_ros_driver/CMakeFiles/livox_ros_driver_node.dir/livox_ros_driver/lddc.cpp.o] Error 1
CMakeFiles/Makefile2:579: recipe for target 'livox_ros_driver/livox_ros_driver/CMakeFiles/livox_ros_driver_node.dir/all' failed
make[1]: *** [livox_ros_driver/livox_ros_driver/CMakeFiles/livox_ros_driver_node.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2

set high sensitivity fail and topic is empty

The /lidar/livox topic is empty and rviz shows nothing. The terminal print ""enable_high_sensitivity": false", however, I have set "enable_high_sensitivity": false in the configure json. The lidar is tele 15.
Terminal info:
[2020-07-26 16:43:45.342] [console] [info] Recieve Ack: Set 0 Id 11 Seq 17 [command_handler.cpp] [OnCommand] [129]
Set high sensitivity fail, try again!

Problems setting spherical coordinates on Livox Horizon

Hello,

I want to use a point cloud with spherical coordinates, so as it says in the livox_ros_driver github, I set coordinate parameter to "1" and then I see what kind of coordinates I find. I always see cartesian coordinates instead of spherical.

I use a script to see the type of coordinates that the LiDAR is giving to me . So that I see (p.x, p.y, p.z, p.intensity) to see what kind of points are recorded (because that is the composition of a point in the pointcloud). As I am recording a wall, I see that x is almost constant, and the other parameters are variable.

Could you please tell me what I have done wrong?

Thanks in advance.

在线切换激光雷达的运行状态

您好:
我可以在驱动运行的时候接受指令来动态地切换激光雷达的运行状态吗?
状态具体指的是:

/** Lidar mode. */
typedef enum {
  kLidarModeNormal = 1,      /**< Normal mode. */
  kLidarModePowerSaving = 2, /**< Power-saving mode. */
  kLidarModeStandby = 3      /**< Standby mode. */
} LidarMode;

而不是让激光雷达一直处于 kLidarModeNormal状态。
请问有类似功能的demo吗?
谢谢,盼复。

timestamp表示什么时间?

您好!我需要对Livox mid-40与其他传感器(camera or IMU)的数据进行时间同步,其他传感器数据的时间戳一般是unix time(从1970-01-01至今的秒数),但是livox发布的数据的时间戳比较特殊,导致无法进行同步。livox驱动中的时间戳是这样的:
timestamp = GetStoragePacketTimestamp(&storage_packet, data_source);
cloud.header.stamp = ros::Time(timestamp / 1000000000.0); // to ros time stamp
我不太明白GetStoragePacketTimestamp获取的时间代表什么含义呢?麻烦您解答一下,谢谢!

Build failing in 16.04/Kinetic due to PCL bug

Build fails with the following errors:

:0:15: error: ISO C++11 requires whitespace after the macro name [-Werror]
:0:15: error: ISO C++11 requires whitespace after the macro name [-Werror]
:0:15: error: ISO C++11 requires whitespace after the macro name [-Werror]

These are caused because of some bug with PCL and the cmake definitions that include the following:

-DDISABLE_LIBUSB-1.0

The dash after LIBUSB is an invalid character. See: PointCloudLibrary/pcl#1406

This issue was closed, but I'm guessing that PCL in 16.04 doesn't have the fix. I've verified this with a clean environment and brand new installs of everything.

Suggested fix: instead of using PCL directly in package.xml/CMakeLists.txt, use pcl_ros. This works fine. For example, remove find_package(PCL REQUIRED) and just use find_package(catkin REQUIRED COMPONENTS pcl_ros ...). You're also missing any PCL depends statements in package.xml, so add in a pcl_ros.

How to get the Lidar caliberation parameters into ROS

The original Livox visualization software has a feature to do extrinsic calibration of the lidar, which can be stored to the Lidar itself.

When I try to receive the lidar information in ROS, the calibration doesn't seem to take effect and each time, the orientation of each lidar changes arbitrarily.

How can I get calibrated Lidar data from the Livox via ROS?

Question about ros lvx_to_bag

Hi, we have a windows sdk collected lvx file contains 8 horizon lidar. Now i am trying to convert it to rosbag. While the conversion was successful, I did not see any data published on /livox/lidar topic. On the other hand, I downloaded a lvx file from your website, in this case there were data published on /livox/lidar.

Question is:
is it possible to convert windows collected lvx file to rosbag through livox_ros_driver? if yes, what is the key element that i need to take care? to change the config of hub.json?

Simple tf causes "Message removed because it is too old"

Hi,

I have added very simple static tf publisher in "livox_lidar_rviz.launch" but PointCloud2(/livox/lidar) is not published with the error saying "Message removed because it is too old".

This is the 1-line code I added to the launch file.
<node pkg="tf" type="static_transform_publisher" name="cab_livox_tf" args="1 0 1 0 0.785398 0 cab_frame livox_frame 100"/>

The PointCloud2 was displayed without this single line. Only this single line is causing error somehow.

I have checked tf tree but it looks fine. As this is not rosbag, typical answer to this error such as "set /use_simu_time true" does not work.

It would be highly appreciated if someone can provide a solution to this issue.

remove werror option in release mode

Hello,

I am building your library with the latest version of pcl , where I get

/opt/ros/melodic/include/pcl_ros/point_cloud.h:51:18:` error: ‘using uint32_t = uint32_t’ is deprecated: use std::uint32_t instead of pcl::uint32_t [-Werror=deprecated-declarations]`

warnings. So I had to remove the -werror compiler flag for the compilation to work.
I understand why you develop with werror, but since users won't be fixing this stuff could you turn it off in release mode?

Thank you

Livox-hardware on WSL2 Ubuntsu

WSL2 is very useful application for testing linux applications.
I tried to use Livox-mapping on Ubuntsu18.04 and WSL2.
The rosbag example worked well.

But the example with horizon-hardware does not work.
The application could not find the device.
Are there good way to run the horizon hardware on WSL2 system of windows10?

Question about ros lvx_to_bag

Hello, thanks to give us the livox_ros_driver sdk. I have use this convert lvx to bag. However, there are many packet loss in the switching process. The .lvx file contains about 2 minutes of radar data, which is converted to a .bag file with only a few seconds of data. I want to know if I have missed some configuration. Thx to your answer.
1

Failed to convert the lvx data file to rosbag file

Hi,
I excute the follow command roslaunch livox_ros_driver lvx_to_rosbag.launch lvx_file_path:="xxxxxx".
Throw the issue:

Start to read lvx file.
[ INFO] [1584608695.672558908]: Support only one topic.
[ INFO] [1584608695.673374797]: livox/lidar publish use PointCloud2 format, publisher queue size [4096]
Read progress : 1
Read progress : 2
Read progress : 3
Read progress : 4
Read progress : 5
Read progress : 6
Read progress : 7
Read progress : 8
Read progress : 9
Read progress : 10
Read progress : 11
Read progress : 12
Read progress : 13
Read progress : 14
Read progress : 15
Read progress : 16
Read progress : 17
Read progress : 18
Read progress : 19
Read progress : 20
Read progress : 21
Read progress : 22
Read progress : 23
Read progress : 24
Read progress : 25
Read progress : 26
Read progress : 27
Read progress : 28
Read progress : 29
Read progress : 30
Read progress : 31
Read progress : 32
Read progress : 33
Read progress : 34
Read progress : 35
Read progress : 36
Read progress : 37
Read progress : 38
Read progress : 39
Read progress : 40
Read progress : 41
Read progress : 42
Read progress : 43
Read progress : 44
Read progress : 45
Read progress : 46
Read progress : 47
Read progress : 48
Read progress : 49
Read progress : 50
[ INFO] [1584608696.135814489]: Support only one topic.
[ INFO] [1584608696.136708602]: livox/imu publish imu data, Publisher QueueSize[4096]
terminate called after throwing an instance of 'std::runtime_error'
what(): Time is out of dual 32-bit range
================================================================================REQUIRED process [livox_lidar_publisher-2] has died!
process has died [pid 20133, exit code -6, cmd /home/vic/catkin_ws/src/ws_livox/devel/lib/livox_ros_driver/livox_ros_driver_node 100000000000000 __name:=livox_lidar_publisher __log:=/home/vic/.ros/log/b35834fe-69c0-11ea-bbe7-b42e992833a3/livox_lidar_publisher-2.log].
log file: /home/vic/.ros/log/b35834fe-69c0-11ea-bbe7-b42e992833a3/livox_lidar_publisher-2*.log
Initiating shutdown!

[livox_lidar_publisher-2] killing on exit
[rosout-1] killing on exit
[master] killing on exit
shutting down processing monitor...
... shutting down processing monitor complete
done

The point_cloud_data.lvx file was downloaded from [https://www.livoxtech.com/downloads].
May I have your help to fixed it.
Thank you!

cant connect and update my livox 40

Hello here, I am now tetsing a livox mid-40 with DJI manifold2, while the rviz gives me no output data, with “firm_ware_err = 1” in Ubuntu. Thus I turn to my windows and try updating this lidar, however, it shows”critical error! 0x80000100” in my livox viewer window, and further “firmware abnormal, No PPS signal, No 1588 signal No synchronicity”. I can’t get my firmware updated anyway. I guess that's because no sychronicity within my PC and livox, thus I tried changing different routers with Manifold 2C always the power supply (connected with a 22.8v battery).
Any suggestions?

How to create a depth image ?

The majority of object segmentation methods utilise a depth image in their learning and inference.
Is there a way to specify the dimensions of the depth image from livox horizon pointcloud data?
Is there a method to create depth images in the SDK?

Client [/rviz] wants topic /livox/lidar to have datatype/md5sum

Running a livox_lidar_msg.launch in one PC, I get the following error

Set coordinate success!
[2020-07-02 20:07:13.516] [console] [info] Recieve Ack: Set 1 Id 6 Seq 7 [command_handler.cpp] [OnCommand] [129]
Set return mode success!
[2020-07-02 20:07:13.516] [console] [info] Recieve Ack: Set 1 Id 8 Seq 8 [command_handler.cpp] [OnCommand] [129]
Set imu rate success!
[2020-07-02 20:07:13.517] [console] [info] Send Command: Set 0 Id 4 Seq 9 [command_channel.cpp] [Send] [241]
Lidar00[1HDDGC500100821] queue size : 4000 4096
Lidar00[1HDDGC500100821] imu queue size : 256 256
[ INFO] [1593734833.539689247]: Support only one topic.
[2020-07-02 20:07:13.540] [console] [info] Recieve Ack: Set 0 Id 4 Seq 9 [command_handler.cpp] [OnCommand] [129]
Lidar start sample success
[ INFO] [1593734833.544097289]: livox/imu publish imu data, set ROS publisher queue size 128
[ INFO] [1593734833.645416044]: Support only one topic.
[ INFO] [1593734833.647921107]: livox/lidar publish use livox custom format, set ROS publisher queue size 256
[ERROR] [1593734849.259791528]: Client [/rviz] wants topic /livox/lidar to have datatype/md5sum [sensor_msgs/PointCloud2/1158d486dd51d683ce2f1be655c3c181], but our version has [livox_ros_driver/CustomMsg/e4d6829bdfe657cb6c21a746c86b21a6]. Dropping connection.
[ERROR] [1593734891.463433635]: Client [/rviz] wants topic /livox/lidar to have datatype/md5sum [sensor_msgs/PointCloud2/1158d486dd51d683ce2f1be655c3c181], but our version has [livox_ros_driver/CustomMsg/e4d6829bdfe657cb6c21a746c86b21a6]. Dropping connection.
[ERROR] [1593735250.868341960]: Client [/rviz] wants topic /livox/lidar to have datatype/md5sum [sensor_msgs/PointCloud2/1158d486dd51d683ce2f1be655c3c181], but our version has [livox_ros_driver/CustomMsg/e4d6829bdfe657cb6c21a746c86b21a6]. Dropping connection.
[ERROR] [1593735384.721011751]: Client [/rviz] wants topic /livox/lidar to have datatype/md5sum [sensor_msgs/PointCloud2/1158d486dd51d683ce2f1be655c3c181], but our version has [livox_ros_driver/CustomMsg/e4d6829bdfe657cb6c21a746c86b21a6]. Dropping connection.

image

when open the same(same commit) rviz config file in a different PC.
Any suggestions ?

catkin_make error

In file included from /home/dfg/Livox/ws_livox/src/livox_ros_driver/livox_ros_driver/lds_lidar.cpp:25:0:
/home/dfg/Livox/ws_livox/src/livox_ros_driver/livox_ros_driver/lds_lidar.h:92:7: error: ‘DeviceParameterResponse’ has not been declared
       DeviceParameterResponse *response, void *clent_data);
       ^
/home/dfg/Livox/ws_livox/src/livox_ros_driver/livox_ros_driver/lds_lidar.cpp: In static member function ‘static void livox_ros::LdsLidar::OnDeviceChange(const DeviceInfo*, DeviceEvent)’:
/home/dfg/Livox/ws_livox/src/livox_ros_driver/livox_ros_driver/lds_lidar.cpp:369:49: error: ‘LidarEnableHighSensitivity’ was not declared in this scope
                                      g_lds_ldiar);
                                                 ^
/home/dfg/Livox/ws_livox/src/livox_ros_driver/livox_ros_driver/lds_lidar.cpp:373:50: error: ‘LidarDisableHighSensitivity’ was not declared in this scope
                                       g_lds_ldiar);
                                                  ^
/home/dfg/Livox/ws_livox/src/livox_ros_driver/livox_ros_driver/lds_lidar.cpp: At global scope:
/home/dfg/Livox/ws_livox/src/livox_ros_driver/livox_ros_driver/lds_lidar.cpp:547:5: error: ‘DeviceParameterResponse’ has not been declared
     DeviceParameterResponse *response, void *clent_data) {
     ^
/home/dfg/Livox/ws_livox/src/livox_ros_driver/livox_ros_driver/lds_lidar.cpp: In static member function ‘static void livox_ros::LdsLidar::SetHighSensitivityCb(livox_status, uint8_t, int*, void*)’:
/home/dfg/Livox/ws_livox/src/livox_ros_driver/livox_ros_driver/lds_lidar.cpp:567:45: error: ‘LidarEnableHighSensitivity’ was not declared in this scope
                                  g_lds_ldiar);
                                             ^
/home/dfg/Livox/ws_livox/src/livox_ros_driver/livox_ros_driver/lds_lidar.cpp:570:46: error: ‘LidarDisableHighSensitivity’ was not declared in this scope
                                   g_lds_ldiar);
                                              ^
[ 84%] Building CXX object livox_ros_driver/CMakeFiles/livox_ros_driver_node.dir/timesync/user_uart/user_uart.cpp.o
livox_ros_driver/CMakeFiles/livox_ros_driver_node.dir/build.make:158: recipe for target 'livox_ros_driver/CMakeFiles/livox_ros_driver_node.dir/livox_ros_driver/lds_lidar.cpp.o' failed
make[2]: *** [livox_ros_driver/CMakeFiles/livox_ros_driver_node.dir/livox_ros_driver/lds_lidar.cpp.o] Error 1
make[2]: *** 正在等待未完成的任务....
In file included from /home/dfg/Livox/ws_livox/src/livox_ros_driver/livox_ros_driver/livox_ros_driver.cpp:32:0:
/home/dfg/Livox/ws_livox/src/livox_ros_driver/livox_ros_driver/lds_lidar.h:92:7: error: ‘DeviceParameterResponse’ has not been declared
       DeviceParameterResponse *response, void *clent_data);
       ^
livox_ros_driver/CMakeFiles/livox_ros_driver_node.dir/build.make:230: recipe for target 'livox_ros_driver/CMakeFiles/livox_ros_driver_node.dir/livox_ros_driver/livox_ros_driver.cpp.o' failed
make[2]: *** [livox_ros_driver/CMakeFiles/livox_ros_driver_node.dir/livox_ros_driver/livox_ros_driver.cpp.o] Error 1
In file included from /home/dfg/Livox/ws_livox/src/livox_ros_driver/livox_ros_driver/lddc.cpp:37:0:
/home/dfg/Livox/ws_livox/src/livox_ros_driver/livox_ros_driver/lds_lidar.h:92:7: error: ‘DeviceParameterResponse’ has not been declared
       DeviceParameterResponse *response, void *clent_data);
       ^
livox_ros_driver/CMakeFiles/livox_ros_driver_node.dir/build.make:206: recipe for target 'livox_ros_driver/CMakeFiles/livox_ros_driver_node.dir/livox_ros_driver/lddc.cpp.o' failed
make[2]: *** [livox_ros_driver/CMakeFiles/livox_ros_driver_node.dir/livox_ros_driver/lddc.cpp.o] Error 1
CMakeFiles/Makefile2:3403: recipe for target 'livox_ros_driver/CMakeFiles/livox_ros_driver_node.dir/all' failed
make[1]: *** [livox_ros_driver/CMakeFiles/livox_ros_driver_node.dir/all] Error 2
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j8 -l8" failed

hello, when I use catkin_make to make this package, I meet this problem, do you know how to solve it, thank you!

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.