Livox-SDK / livox_mapping

A mapping package for Livox LiDARs
Other
373 stars 113 forks source link

Support ROS2 Foxy, AVIA new features, Noetic and 20.04 #39

Open FPSychotic opened 2 years ago

FPSychotic commented 2 years ago

Surprised how bad is supported the AVIA lidar, ROS2, the last ROS and Ubuntu distributiones, so much issues unanswered. Software looks complicated, old and fragmented. Thinking in return my AVIA because the software, it doesnt look a LIDAR for users and robotics, it looks more for integrators for DJI drones as Geosun,Rock robotics etc.

rlabs-oss commented 2 years ago

Surprised how bad is supported the AVIA lidar, ROS2, the last ROS and Ubuntu distributiones, so much issues unanswered. Software looks complicated, old and fragmented. Thinking in return my AVIA because the software, it doesnt look a LIDAR for users and robotics, it looks more for integrators for DJI drones as Geosun,Rock robotics etc.

I was about to upgrade the Mid 40 to the AVIA but based on these comments will hold on that. One problem is lack of integrated mapping solution. ROS is complex and has multiple versions plus dependencies - a standalone application using the Livox SDK for both windows, Linux and macOS should be made and drop the dependency on ROS. Livox should make a "Livox Mapper" standalone binary or open source that uses the Livox SDK, that just works - plug in hit record and start mapping.

FPSychotic commented 2 years ago

Except by range and fov,.my Avia is almost working as a mid-40, no even the 3rd return and repetitive mode is supported by ROS. For me probably will work, not sure, the Avia itself I think is quite good, but thinking as final user and with ROS and ROS2, I cannot recommend it, probably will work for most cases, (in ROS1) but should be much better and the is functionalities without support. ROS2 have a driver, but I could not find a mapping software that suport AVIA and ROS2, not even from Livox. So yeah, the future doesn't look good if you are not a big company or you can make your own software solution, I can't

FPSychotic commented 2 years ago

To help above - I don't use ROS but based on the configuration files maybe:-

Is return mode set via: ```

"lidar_config": [
        {
            "return_mode": 0,   <<< this?
            "coordinate": 0,
            "imu_rate": 0,
            "extrinsic_parameter_source": 0,
            "enable_high_sensitivity": false
        },

Where return_mode can be enumerated to: (based on the SDK)

/** Point cloud return mode. */
typedef enum {
  kFirstReturn,             /**< First single return mode . */
  kStrongestReturn,         /**< Strongest single return mode. */
  kDualReturn,              /**< Dual return mode. */
  kTripleReturn,            /**< Triple return mode. */
} PointCloudReturnMode;

or "return_mode": 3 for triple return?

The actual return type is encoded in the reflectivity value. So this should show as a different intensity in the point cloud.

The scan pattern also based on the SDK:-

** Lidar Scan Pattern. */
typedef enum {
  kNoneRepetitiveScanPattern = 0,  /**< None Repetitive Scan Pattern. */
  kRepetitiveScanPattern = 1,      /**< Repetitive Scan Pattern. */
} LidarScanPattern;

Im not sure how that is used in the ros config, perhaps "scan_pattern" somewhere?

Confirm via Livox. - They do respond via email.

I'm not programmer, only lidar and ROS user,final user The parameter"s explanation in the ROS wrapper says, single and double return ,valors 1 and 2. Nothing of 3. So I asume, it is not supported whatever the reason.