GithubHelp home page GithubHelp logo

rf2o_laser_odometry's Introduction

rf2o_laser_odometry

Estimation of 2D odometry based on planar laser scans. Useful for mobile robots with innacurate base odometry.

RF2O is a fast and precise method to estimate the planar motion of a lidar from consecutive range scans. For every scanned point we formulate the range flow constraint equation in terms of the sensor velocity, and minimize a robust function of the resulting geometric constraints to obtain the motion estimate. Conversely to traditional approaches, this method does not search for correspondences but performs dense scan alignment based on the scan gradients, in the fashion of dense 3D visual odometry.

Its very low computational cost (0.9 milliseconds on a single CPU core) together whit its high precission, makes RF2O a suitable method for those robotic applications that require planar odometry.

For full description of the algorithm, please refer to: Planar Odometry from a Radial Laser Scanner. A Range Flow-based Approach. ICRA 2016 Available at: http://mapir.isa.uma.es/work/rf2o

rf2o_laser_odometry's People

Contributors

gondotcl avatar h-hchen avatar qqting avatar

Stargazers

Can Arslan avatar  avatar Zhihao Zhan avatar  avatar Sam Sulaimanov avatar luu avatar melih-hidroan avatar  avatar  avatar  avatar Sascha avatar Arban Hossain avatar  avatar Wu Chen avatar  avatar  avatar Mahdi Chaari avatar Takeshi Miura avatar devemin avatar Nyarn avatar Niccolo Dejito avatar GuYuLong avatar Hao Tian avatar haruyama kenta avatar Zulhafiz Zulkifli avatar  avatar Jiac avatar

Watchers

 avatar ChenYing Kuo (CY) avatar James Cloos avatar YuSheng avatar  avatar FOREVER avatar

rf2o_laser_odometry's Issues

Cant build it

Matrix multiplication error, followed by wrong logging etc. Fixed the first few errors but grew tired of debugging

have the same node

I have run:
ros2 launch rf2o_laser_odometry rf2o_laser_odometry.launch.py
[INFO] [launch]: All log files can be found below /home/agilex/.ros/log/2022-04-08-20-32-56-562713-agilex-15929
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [rf2o_laser_odometry_node-1]: process started with pid [15931]
[rf2o_laser_odometry_node-1] [WARN] [1649421176.752449874] [rcl.logging_rosout]: Publisher already registered for provided node name. If this is due to multiple nodes with the same name then all logs for that logger name will go out over the existing publisher. As soon as any node with that name is destructed it will unregister the publisher, preventing any further logs for that name from being published on the rosout topic.
[rf2o_laser_odometry_node-1] [INFO] [1649421176.753410054] [rf2o_laser_odometry]: Initializing RF2O node...

in another ros2 node list
WARNING: Be aware that are nodes in the graph that share an exact name, this can have unintended side effects.
/rf2o_laser_odometry
/rf2o_laser_odometry
/transform_listener_impl_559e9c2c7520

Build errors

Hi,
I have been getting the following errors when I try to build the package. I understand the branch is for foxy but it seems to be coming from Eigen. Any pointers?

ROS: Jazzy
Eigen3: 3.4.0-4

In member function ‘void rf2o::CLaserOdometry2D::performWarping()’:
/home/ash/ros2_ws/src/rf2o_laser_odometry/src/CLaserOdometry2D.cpp:771:51: error: no match for ‘operator+=’ (operand types are ‘Eigen::internal::enable_if<true, Eigen::IndexedView<Eigen::Matrix<float, -1, -1>, double, Eigen::internal::SingleRange> >::type’ {aka ‘Eigen::IndexedView<Eigen::Matrix<float, -1, -1>, double, Eigen::internal::SingleRange>’} and ‘const float’)
  771 |           range_warped[image_level](round(uwarp)) += range_w;
      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~


error: no match for ‘operator+=’ (operand types are ‘Eigen::internal::enable_if<true, Eigen::IndexedView<Eigen::Matrix<float, -1, -1>, float, Eigen::internal::SingleRange> >::type’ {aka ‘Eigen::IndexedView<Eigen::Matrix<float, -1, -1>, float, Eigen::internal::SingleRange>’} and ‘float’)
  772 |           wacu(std::round(uwarp)) += 1.f;
      |           ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~

error: static assertion failed: YOU_TRIED_CALLING_A_VECTOR_METHOD_ON_A_MATRIX
  157 |   EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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.