Giter Club home page Giter Club logo

llol's Introduction

😆 LLOL: Low-Latency Odometry for Spinning Lidars

Also see https://github.com/versatran01/rofl-beta.

Reference

LLOL: Low-Latency Odometry for Spinning Lidars

Chao Qu, Shreyas S. Shivakumar, Wenxin Liu, Camillo J. Taylor

https://arxiv.org/abs/2110.01725

https://youtu.be/MmiTMFt9YdU

Usage

Sample data at https://www.dropbox.com/s/v4cth3z7hrqjsvf/raw-perch-loop-2021-09-06-17-22-06.bag?dl=0

Clone https://github.com/KumarRobotics/ouster_decoder

Open rviz using the config in launch/llol.rviz

First run ouster driver

roslaunch ouster_decoder driver.launch

Then run ouster decoder

roslaunch ouster_decoder decoder.launch

Then run odom

roslaunch llol llol.launch

Run bag.

See CMakeLists.txt for dependencies. You may also check our Github Action build file for instructions on how to build LLOL in Ubuntu 20.04 with ROS Noetic.

To run multithread and show timing every 5s do

roslaunch llol llol.launch tbb:=1 log:=5

This is the open-source version, some advanced features may be missing.

llol's People

Contributors

versatran01 avatar iandouglas96 avatar fcladera avatar satyajitghana avatar

Stargazers

Manav Gagvani avatar Yuezhan Tao avatar  avatar LeiZHang avatar  avatar RUNHENG ZUO avatar  avatar MasterY avatar Saksham Sharma avatar Turcan Tuna avatar Ankit Prabhu avatar  avatar  avatar qianlihaoyue avatar xiaoshan423 avatar  avatar  avatar bigvipclub avatar HaoRui avatar JianyuanRuan avatar Aquablue avatar  avatar aqiuxx avatar huhupy avatar Jiajun Zhao avatar Mario avatar Shrijit Singh avatar Nick Luo avatar  avatar Patrick Pfreundschuh avatar  avatar  avatar ◤◢◤◢◤◢◤◢ avatar Abdelhak Bougouffa avatar lvruichen avatar  avatar Junu Hong avatar  avatar  avatar 然 avatar  avatar heshixiong avatar  avatar Wu Wenhong avatar leekeifon avatar  avatar hw avatar Spike avatar  avatar Dinesh Thakur avatar  avatar Yu-Kai Lin avatar  avatar Gavin Fang avatar  avatar Matthew avatar merlin.yoo avatar cyn avatar Deepak Talwar avatar  avatar  avatar ExtraMile avatar  avatar zhanghairong avatar  avatar ray wan  avatar zuowei avatar Soofiyan Atar avatar Shawn Feng avatar hitxiaomi avatar Skewen avatar 赵焕峰 avatar 曹明伟,Mingwei Cao avatar Zain  avatar Catalina avatar Patrick avatar 柒者 avatar  avatar yanzongt avatar  avatar Pengyu Yin avatar Haotian-Zh avatar  avatar Hongbo Zhu avatar  avatar  avatar SHINE avatar FredericBRHong avatar Baiyi Liao avatar 爱可可-爱生活 avatar  avatar xtao avatar  avatar Heethesh Vhavle avatar Yue Pan  avatar  avatar Giseop Kim avatar  avatar Bin Peng avatar HC avatar

Watchers

James Cloos avatar  avatar  avatar Chen Yao avatar Andrey Penkovskiy avatar

llol's Issues

ImuPreintegration::Integrate check dt failure

Hi there,

I was trying out your code with the provided data and repeatedly stumbled upon a failed check during ImuPreintegration:
CHECK_GT(dt, 0);
Before the failed check there is a message regarding:

"All imus are before time.... Imu buffer size is 30, and the last imu in buffer has time ..., t0 - imu1.time = 0.0518486, set ibuf to 29"

I could trace it back to ImuQueue::IndexAfter returning ibuf = size()-1 instead of size(), which would be needed in ImuPreintegration::Compute to detect this case.
Setting ibuf = size() in that case would be an easy fix. The same check for ibuf==size() is also used in Trajectory::UpdateBias.
But I saw that ImuQueue::IndexAfter is also used in traj.cpp for Trajectory::PredictNew and Trajectory::PredictFull without a further check.

Hence, I was wondering what would be the appropriate fix for this bug or what should be done in the Predict functions.
If I understood correctly, than it would suffice to use in the predict functions the same check ibuf==size() and returning 0. Is that correct?

Best, Jan

How to feed the Sample data to the system?

Sorry for asking this simple question. I'm new to this area and after I followed the instructions to run all the nodes, I don't know where to feed the Sample data to the odometry and visualize it.

I used the command

rosbag play raw-perch-loop-2021-09-06-17-22-06.bag

And it begin running
image


Then the terminal running

roslaunch llol llol.launch

displays
image


The terminal running

 roslaunch ouster_decoder decoder.launch

displays
image


The terminal running

roslaunch ouster_decoder driver.launch

displays
image


And the terminal running rviz displays
image


But there is no image shown on rviz.
image

Can you help me with that? Thanks!

can not target_link Eigen3::Eigen

The cmakelist file under the SV folder reports an error,can not target_link Eigen3::Eigen,like:Target "sv_node_viz" links to target "Eigen3::Eigen" but the target was not found.

Do you have any solution?
Uploading error.png…

ubantu 16.04

Advanced features?

The readme mentions

This is the open-source version, some advanced features may be missing.

What are the "advanced features" missing?

Build error fmt

Hi,

I'm trying to build the package, however I get the following build error related to fmt :

../fmt/include/fmt/core.h:1839:77:   required from ‘constexpr fmt::v8::format_arg_store<Context, Args>::format_arg_store(T&& ...) [with T = {const double&, const Eigen::Transpose<const Eigen::Matrix<double, 4, 1, 0, 4, 1> >&, const Eigen::Transpose<const Eigen::Matrix<double, 3, 1, 0, 3, 1> >&, const Eigen::Transpose<const Eigen::Matrix<double, 3, 1, 0, 3, 1> >&}; Context = fmt::v8::basic_format_context<fmt::v8::appender, char>; Args = {double, Eigen::Transpose<const Eigen::Matrix<double, 4, 1, 0, 4, 1> >, Eigen::Transpose<const Eigen::Matrix<double, 3, 1, 0, 3, 1> >, Eigen::Transpose<const Eigen::Matrix<double, 3, 1, 0, 3, 1> >}]’
../fmt/include/fmt/core.h:3128:17:   required from ‘std::__cxx11::string fmt::v8::format(fmt::v8::format_string<T ...>, T&& ...) [with T = {const double&, const Eigen::Transpose<const Eigen::Matrix<double, 4, 1, 0, 4, 1> >, const Eigen::Transpose<const Eigen::Matrix<double, 3, 1, 0, 3, 1> >, const Eigen::Transpose<const Eigen::Matrix<double, 3, 1, 0, 3, 1> >}; std::__cxx11::string = std::__cxx11::basic_string<char>; fmt::v8::format_string<T ...> = fmt::v8::basic_format_string<char, const double&, const Eigen::Transpose<const Eigen::Matrix<double, 4, 1, 0, 4, 1> >, const Eigen::Transpose<const Eigen::Matrix<double, 3, 1, 0, 3, 1> >, const Eigen::Transpose<const Eigen::Matrix<double, 3, 1, 0, 3, 1> > >]’
../llol/sv/llol/imu.cpp:75:37:   required from here
../fmt/include/fmt/core.h:3128:44:   in constexpr expansion of ‘fmt::v8::make_format_args<>((* & args#0), (* & args#1), (* & args#2), (* & args#3))’
../fmt/include/fmt/core.h:1711:3: error: static assertion failed: Cannot format an argument. To make type T formattable provide a formatter<T> specialization: https://fmt.dev/latest/api.html#udt

I'm running Ubuntu 18.04, with the latest master from fmt built from source. Note that this error happens at a couple of places in imu.cpp, I'm just showing you one for simplicity.

Any help or suggestion is appreciated!

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.