Giter VIP home page Giter VIP logo

livox_cloud_undistortion's People

Contributors

livox-sdk 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

livox_cloud_undistortion's Issues

Points are only pushed in result cloud if dt to last point is zero

if (dt_bi == 0) laserCloudtmp->push_back(pt);
double ratio_bi = dt_bi / dt_be;
/// Rotation from i-e
double ratio_ie = 1 - ratio_bi;


Eigen::Vector3d rso3_ie = ratio_ie * rso3_be;
SO3d Rie = SO3d::exp(rso3_ie);


/// Transform to the 'end' frame, using only the rotation
/// Note: Compensation direction is INVERSE of Frame's moving direction
/// So if we want to compensate a point at timestamp-i to the frame-e
/// P_compensate = R_ei * Pi + t_ei
Eigen::Vector3d tie = ratio_ie * tbe;
// Eigen::Vector3d tei = Eigen::Vector3d::Zero();
Eigen::Vector3d v_pt_i(pt.x, pt.y, pt.z);
Eigen::Vector3d v_pt_comp_e = Rie.inverse() * (v_pt_i - tie);


/// Undistorted point
pt.x = v_pt_comp_e.x();
pt.y = v_pt_comp_e.y();
pt.z = v_pt_comp_e.z();

}
}

laserCloudTemp is only filled if dt is 0. Distorted points are never pushed back.

package.xml correction

livox_dedistortion_pkg 0.0.0

dekew

Livox Dev Team
BSD
Livox Dev Team

<buildtool_depend>catkin</buildtool_depend>
<build_depend>roscpp</build_depend>
<build_depend>std_msgs</build_depend>
<build_depend>sensor_msgs</build_depend>
<build_depend>livox_ros_driver</build_depend>
<build_depend>eigen_conversions</build_depend>
<build_depend>pcl_conversions</build_depend>
<build_depend>pcl_ros</build_depend>

<run_depend>sensor_msgs</run_depend>
<run_depend>roscpp</run_depend>
<run_depend>std_msgs</run_depend>
<run_depend>livox_ros_driver</run_depend>
<run_depend>eigen_conversions</run_depend>
<run_depend>pcl_conversions</run_depend>
<run_depend>pcl_ros</run_depend>

Intensity values in undistortet pointcloud are incorrect

The Intensity values in the pointcloud, published by the livox_repub.cpp node are incorrect.
Due to this line you use the line number to compute the intensity:
float s = livox_msg->points[i].offset_time / (float)time_end; pt.intensity = livox_msg->points[i].line + s*0.1; // The integer part is line number and the decimal part is timestamp
https://github.com/Livox-SDK/livox_cloud_undistortion/blob/d4df84681c075f5d2d5a9c677bef54c9a4a5d33e/src/livox_repub.cpp#L26C7-L26C125

Why not just using the curverture field?

How to test it?

I have a rosbag recorded by Livox HAP (CustomMsg), which includes two topics: "/livox/lidar" and "/livox/imu". I used rosbag play xx.bag after roslaunch livox_distration_pkg run. relaunch, but there was no result.

时间戳问题

为什么经过矫正的点云时间戳与原始输入点云的时间戳不同?

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.