Giter Site home page Giter Site logo

rikba / odometry_transformer Goto Github PK

View Code? Open in Web Editor NEW
8.0 2.0 7.0 47 KB

A ROS package to transform odometry messages between different robot coordinate frames.

License: MIT License

CMake 9.77% C++ 85.45% Python 4.79%
ros odometry body frame camera transformation node velocity angular rate position orientation calibration world map tf tf2

odometry_transformer's Introduction

odometry_transformer

A ROS package to transform odometry messages from source frame S to target frame T on a rigid body. For example this software transforms odometry from a tracking camera coordinate frame to a robot body frame.

Input: source odometry (T_IS, v_S, w_S), calibration source to target (T_ST)
Output: target odometry (T_IT, v_T, w_T)

Problem description of transforming odometry on a rigid body.

Features

  • Given known offset and rotation between odometry source and target frame, transform and publish odometry in target frame.
  • Pass sensor calibration either by ROS parameter server or TF tree.
  • Dynamically re-configure offset and orientation via rqt_reconfigure.
  • Integration as ROS node, all parameters accessible as roslaunch arguments.

How to use.

The odometry_transformer.launch file shows how to startup the ROS node and pass all relevant parameters. The user can pass the calibration between the odometry source frame and odometry target frame either via parameter array or via tf2_ros static_transform_publisher.

roslaunch odometry_transformer odometry_transformer.launch arg:=value

Example

Convert the odometry (position, orientation, linear and angular velocity) measured by the Realsense Tracking Camera T265 from the camera odometry frame to the robot base frame. For startup details see the test_realsense_t265.launch file.

roslaunch odometry_transformer test_realsense_t265.launch

Odometry transformation of Realsense Tracking Camera T265.

odometry_transformer's People

Contributors

rikba avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

odometry_transformer's Issues

No such file in import

Hi, I am trying to build this package but I am getting an error that in the file /odometry_transformer/include/odometry_transformer.h there is no such file OdometryTransformerConfig.h

Twist in parent or body frame?

Does this code assume that the twist is in the child/body frame rather than the parent/world/inertial frame?

https://github.com/rikba/odometry_transformer/blob/main/src/odometry_transformer.cc#L185-L193

I think the answer to 'not sure if this is necessary' is that it needs to be optional via a ros param, the odometry source could be either- for example I have two different imu+gps devices that publish odometry and one is publishing twist in the odom frame, the other in the base_link frame. (It seems like the best convention would be the body frame where linear x is saying how fast a vehicle is moving forwards regardless of what the heading is but that's not generally agreed upon, or there should be an enum field in the Odometry message to specify which convention is in use)

There could be second param to specify output twist frame as well, this node could be useful transforming into the same frame but just doing a twist convention conversion.

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.