Giter VIP home page Giter VIP 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

fcladera avatar iandouglas96 avatar satyajitghana avatar versatran01 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

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

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!

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!

Advanced features?

The readme mentions

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

What are the "advanced features" missing?

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

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.