rpg_svo_example icon indicating copy to clipboard operation
rpg_svo_example copied to clipboard

ROS publish Odom

Open gftabor opened this issue 7 years ago • 2 comments

Currently to run a lot of ros built in systems /odom needs to be published in addition to TF. Could the live position and velocity estimate be published there as well? The velocity is the important part I am looking for.

Explanation can be seen here

The navigation stack uses tf to determine the robot's location in the world and relate sensor data to a static map. However, tf does not provide any information about the velocity of the robot. Because of this, the navigation stack requires that any odometry source publish both a transform and a nav_msgs/Odometry message over ROS that contains velocity information. This tutorial explains the nav_msgs/Odometry message and provides example code for publishing both the message and transform over ROS and tf respectively.

http://wiki.ros.org/navigation/Tutorials/RobotSetup/Odom

gftabor avatar Feb 07 '18 22:02 gftabor

Hi, if you need a specific message type, you can change the publisher in the visualizer, for example https://github.com/uzh-rpg/rpg_svo_example/blob/master/svo_ros/src/visualizer.cpp#L138

Publishing messages is independent of the binaries, so you should be able to adapt the code in this repository according to your own needs.

Regarding velocity, SVO2.0 is not a full VIO, therefore there is no velocity estimation maintained. The best we can do is probably to run a Kalman filter for velocity, similar to what is described in the paper: http://rpg.ifi.uzh.ch/docs/JFR16_Faessler.pdf

zhangzichao avatar Feb 08 '18 16:02 zhangzichao

Yup I understood the system was not trying to produce an accurate velocity but had assumed there had to be some internal representation of movement or position step since last frame that could be used to produce some velocity information. Would expect this velocity to be unfiltered and noisy.

gftabor avatar Feb 08 '18 18:02 gftabor