  * [1]  D. Fox, “Kld-sampling: Adaptive particle filters and mobile robot localization,” _Advances in Neural Information Processing Systems (NIPS)_ , 2002.
  * [2]  W. Hess, D. Kohler, H. Rapp, and D. Andor, “Real-time loop closure in 2D LIDAR SLAM,” in _2016 IEEE International Conference on Robotics and Automation (ICRA)_ . Stockholm, Sweden: IEEE, May 2016, pp. 1271–1278.
  * [3]  L. Mozzarelli, M. Corno, and S. M. Savaresi, “A comparative experimental study of LiDAR, camera, and LiDAR-camera localization algorithms for autonomous mobile robots on urban sidewalks,” in _2023 IEEE Conference on Control Technology and Applications (CCTA)_ , Aug. 2023, pp. 53–58.
  * [4]  T. Shan, B. Englot, D. Meyers, W. Wang, C. Ratti, and D. Rus, “LIO-SAM: Tightly-coupled Lidar Inertial Odometry via Smoothing and Mapping,” in _2020 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)_ , Oct. 2020, pp. 5135–5142.
  * [5]  B. Boberg and S.-L. Wirkander, “Integrating GPS and INS: comparing the Kalman estimator and particle estimator,” in _7th International Conference on Control, Automation, Robotics and Vision, 2002. ICARCV 2002._ , vol. 1, Dec. 2002, pp. 484–490 vol.1.
  * [6]  S. Rezaei and R. Sengupta, “Kalman Filter-Based Integration of DGPS and Vehicle Sensors for Localization,” _IEEE Transactions on Control Systems Technology_ , vol. 15, no. 6, pp. 1080–1088, Nov. 2007.
  * [7]  A. M. Sabatini and V. Genovese, “A Sensor Fusion Method for Tracking Vertical Velocity and Height Based on Inertial and Barometric Altimeter Measurements,” _Sensors_ , vol. 14, no. 8, pp. 13 324–13 347, Aug. 2014.
  * [8]  S. Pizzocaro, M. Corno, M. Pantano, and S. Savaresi, “Magnetometer Aided GPS-free Localization of an Autonomous Vineyard Drone,” in _2021 European Control Conference (ECC)_ , Jun. 2021, pp. 1132–1137.
  * [9]  A. Wischnewski, T. Stahl, J. Betz, and B. Lohmann, “Vehicle Dynamics State Estimation and Localization for High Performance Race Cars,” _IFAC-PapersOnLine_ , vol. 52, no. 8, pp. 154–161, 2019.
  * [10]  B. K. P. Horn, H. M. Hilden, and S. Negahdaripour, “Closed-form solution of absolute orientation using orthonormal matrices,” _Journal of the Optical Society of America A_ , vol. 5, no. 7, p. 1127, Jul. 1988.
  * [11]  S. Sabatini, M. Carno, S. Fiorenti, and S. M. Savaresi, “Improving Occupancy Grid Mapping via Dithering for a Mobile Robot Equipped with Solid-State LiDAR Sensors,” in _2018 IEEE Conference on Control Technology and Applications (CCTA)_ . Copenhagen: IEEE, Aug. 2018, pp. 1145–1150.
  * [12]  S. Sabatini, M. Corno, S. Fiorenti, and S. M. Savaresi, “Vision-Based Pole-Like Obstacle Detection and Localization for Urban Mobile Robots,” in _2018 IEEE Intelligent Vehicles Symposium (IV)_ . Changshu: IEEE, Jun. 2018, pp. 1209–1214.
  * [13]  F. Parravicini, M. Corno, and S. Savaresi, “Robust State Observers for Two Wheeled Inverted Pendulum under wheel-slip,” in _2019 IEEE Intelligent Transportation Systems Conference (ITSC)_ . Auckland, New Zealand: IEEE, Oct. 2019, pp. 1525–1530.
  * [14]  ——, “Extended target tracking for autonomous street crossing,” _IFAC-PapersOnLine_ , vol. 53, no. 2, pp. 15 440–15 445, 2020.
  * [15]  M. Corno and S. Savaresi, “Measuring Urban Sidewalk Practicability: a Sidewalk Robot Feasibility Index,” _IFAC-PapersOnLine_ , vol. 53, no. 2, pp. 15 053–15 058, Jan. 2020.
  * [16]  M. Quigley, B. Gerkey, K. Conley, J. Faust, T. Foote, J. Leibs, E. Berger, R. Wheeler, and A. Ng, “ROS: an open-source Robot Operating System,” in _Proc. of the IEEE Intl. Conf. on Robotics and Automation (ICRA) Workshop on Open Source Robotics_ , Kobe, Japan, May 2009, p. 6.
  * [17]  A. Katriniok and D. Abel, “Adaptive EKF-Based Vehicle State Estimation With Online Assessment of Local Observability,” _IEEE Transactions on Control Systems Technology_ , vol. 24, no. 4, pp. 1368–1381, Jul. 2016.
  * [18]  P.-J. Bristeau, N. Petit, and L. Praly, “Design of a navigation filter by analysis of local observability,” in _49th IEEE Conference on Decision and Control (CDC)_ . Atlanta, GA, USA: IEEE, Dec. 2010, pp. 1298–1305.
  * [19]  A. Rebecchi, M. Farina, G. Andreoni, S. Capolongo, M. Corno, P. Perego, and E. Lettieri, “Shaping accessible public spaces for visually impaired people. The BUDD-e research experience,” _TECHNE - Journal of Technology for Architecture and Environment_ , no. 25, pp. 192–203, May 2023.


#  [ Robot Localization Package: Transform was unavailable for the time
requested. Using latest instead.
](//question3152.rssing.com/chan-47151955/article438-live.html)


This paper presented a localization architecture for autonomous mobile robots.
Structured on two layers, the first one encompasses localization sources
including both physical sensors (IMU, encoders and GNSS) and fully-featured
off-the-shelf localization algorithms (Cartographer). The second layer is a
fusion filter based on the Extended Kalman Filter framework and tailored to
the vehicle motion model, allowing the estimation of model uncertainties and
the subsequent improvement of odometry estimates. This represents a relevant
improvement with respect of vehicle-agnostic localization algorithms, which
despite their undoubtable usefulness, can fail in unrealistic ways. The filter
is capable of handling multi-rate and unavailable measurements by adapting the
estimated state online based on to the time-varying observability properties.
Robustness to complete loss of position measurements is demonstrated by
disabling Cartographer and GNSS corrections for more than two minutes,
resulting in a cumulated error of  0.35    m  0.35  𝑚  0.35~{}m  0.35
italic_m  , with respect to the  5.3    m  5.3  𝑚  5.3~{}m  5.3 italic_m
achieved without uncertainties estimation.


Repositories


[ ](javascript:; "Like") 0


###  [ Noise Industries FxFactory Pro 3.0.2 [MAC]
](////heroturko111.rssing.com/chan-16832457/article82.html#c16832457a82i1004730930)


For


[ .gitignore ](/facontidavide/PlotJuggler/blob/main/.gitignore ".gitignore")

|


[ ](//www.rssing.com/index.php?zw=2123 "Home") [ $ ](javascript:; "MoMoney")


[ ](javascript:; "Share Article") [
](//www.rssing.com/contact.php?r=o6&u=%2F%2Fquestion3152.rssing.com%2Fchan-47151955%2Farticle430-live.html
"Article Support")


###  [ PANASONIC SC AKX50LB - CD Stereo system - Power Amp - Main power SMPS -
Schematic (Circuit Diagram) - C1BA00000497 (Power Amp IC) -[TDA 8950J]
](////electro404.rssing.com/chan-13553321/article484.html#c13553321a484i592237786)


[ _≪_ Previous: what should the frame_id of "poseX" be, before use
robot_localization package?
](//question3152.rssing.com/chan-47151955/all_p22.html#c47151955a434 "Previous
Article")


    * [ Actions  Automate any workflow  ](/features/actions)
    * [ Packages  Host and manage packages  ](/features/packages)
    * [ Security  Find and fix vulnerabilities  ](/features/security)
    * [ Codespaces  Instant dev environments  ](/features/codespaces)
    * [ Copilot  Write better code with AI  ](/features/copilot)
    * [ Code review  Manage code changes  ](/features/code-review)
    * [ Issues  Plan and track work  ](/features/issues)
    * [ Discussions  Collaborate outside of code  ](/features/discussions)


[ appimage ](/facontidavide/PlotJuggler/tree/main/appimage "appimage")

|


[ ](javascript:; "Share Article") [
](//www.rssing.com/contact.php?r=o6&u=%2F%2Fquestion3152.rssing.com%2Fchan-47151955%2Farticle440-live.html
"Article Support")


###  [ Giant Crop Cheat Sheet
](////starve149.rssing.com/chan-67795027/article12985.html#c67795027a12985i625842650)


The pose of the robot will be given as (x,y,θ), where x, y
describe the position and θ the orientation. The goal of
localization is to estimate this pose in a global coordinate
frame.
A. Odometry Localization
Odometry estimates the robot’s position and orientation by
monitoring the robot’s drive. For most drives, this information
comes out-of-the-box and is published at a high frequency.
Hence, odometry can be seen as a localization method that
comes for “free”. Odometry computes changes in pose, which
2012 12th International Conference on Control, Automation, Robotics & Vision
Guangzhou, China, 5-7th December 2012 (ICARCV 2012)
978-1-4673-1872-3/12/$31.00 ©2012 IEEE
We44.6
347
Fig. 1. Service robot platform Robotino with omni-directional drive
used for evaluation. On top there are camera and markers required for
the reference positioning system Dtrack.
yw
xw
world frame
yr
xr
robot frame
R
Lw θ
Fig. 2. The figure shows a three wheeled omni-directional drive in a
world coordinate frame. The shaded rectangles symbolize the wheels,
the point R is the center of mass.
need to be integrated in order to obtain the robot’s pose estimation. However, one disadvantage of such relative localization
methods is the increasing pose error over time.
The Robotino, as used in this work, has an omni-directional
drive consisting of three mecanum wheels. Figure 2 shows
the setup of the Robotino drive. The wheels are aligned
symmetrically with a displacement of 120◦, the engines allow
movement speed of about 2.8 m/s. Incremental encoders are
attached to each engine and measure the rotations of the
electric engine. We denote the rotation speeds of the three
wheels by ˙q = [q˙1, q˙2, q˙3]
T , Lw is the distance between each


[ ](javascript:; "Share Chan")


[ ](//question3152.rssing.com/chan-47151955/all_p21.html "older") First Page
...  Page 20  Page 21  Page 22  Page 23  Page 24  ...  Last Page  [
](//question3152.rssing.com/chan-47151955/all_p23.html "newer")


[ vcpkg.json ](/facontidavide/PlotJuggler/blob/main/vcpkg.json "vcpkg.json")

|

|

View all files


facontidavide/PlotJuggler&Date)


![PANASONIC SC AKX50LB - CD Stereo system - Power Amp - Main power SMPS -
Schematic \(Circuit Diagram\) - C1BA00000497 \(Power Amp IC\) -\[TDA 8950J\]
](//4.bp.blogspot.com/-QQbgcQ8R1MM/UicZj96-4MI/AAAAAAAA4No/YLSvbnvbK5I/s1600/Power+Amp+Circuit.bmp)


**[ takahiko-hasegawa-hdjp ](/takahiko-hasegawa-hdjp) ** commented  Dec 27,
2022


developed over the years  [ [ 7
](https://arxiv.org/html/2403.13452v1#bib.bib7) , [ 8
](https://arxiv.org/html/2403.13452v1#bib.bib8) ]  , GNSS receivers have long
remained the only source of absolute localization data, with few application
and environment-specific exceptions  [ [ 9
](https://arxiv.org/html/2403.13452v1#bib.bib9) ]  .


By Solution


[ _≪_ Previous: Indoor localization with 2D lidar and IMU
](//question3152.rssing.com/chan-47151955/all_p22.html#c47151955a435 "Previous
Article")


###  [ Highlights - Bringing young people to the forefront of EU policy making
-...
](////europees185.rssing.com/chan-78228109/article559.html#c78228109a559i1335926349)


[ Dockerfile ](/facontidavide/PlotJuggler/blob/main/Dockerfile "Dockerfile")

|


  About

The Time Series Visualization Tool that you deserve.

[ www.plotjuggler.io ](https://www.plotjuggler.io
"https://www.plotjuggler.io")


#  [ robot_localization estimate (using only IMU) drifts for a stationary
robot (Gazebo Model)
](//question3152.rssing.com/chan-47151955/article429-live.html)


  Supported plugins

Some plugins can be found in a different repository. The individual README
files _should_ include all the information needed to compile and use the
plugin.

Please submit specific issues, Pull Requests and questions on the related
Github repository:

  * [ MQTT DataStreamer ](https://github.com/PlotJuggler/plotjuggler-mqtt) .
  * [ Lab Streaming Layer DataStreamer ](https://github.com/PlotJuggler/plotjuggler-lsl) .
  * [ ROS plugins ](https://github.com/PlotJuggler/plotjuggler-ros-plugins) .
  * [ CAN .dbg DataLoader ](https://github.com/PlotJuggler/plotjuggler-CAN-dbs) .

If you want a simple example to learn how to write your own plugins, have a
look at [ PlotJuggler/plotjuggler-sample-plugins
](https://github.com/PlotJuggler/plotjuggler-sample-plugins)


[ ↂ
](////murder540.rssing.com/chan-6412619/article1.html#c6412619a1i1155785771
"Murder in Australia: 2010")


Generated on Wed Mar 20 09:53:36 2024 by [ L  A  T  E  xml
![\[LOGO\]](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAOCAYAAAD5YeaVAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9wKExQZLWTEaOUAAAAddEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIFRoZSBHSU1Q72QlbgAAAdpJREFUKM9tkL+L2nAARz9fPZNCKFapUn8kyI0e4iRHSR1Kb8ng0lJw6FYHFwv2LwhOpcWxTjeUunYqOmqd6hEoRDhtDWdA8ApRYsSUCDHNt5ul13vz4w0vWCgUnnEc975arX6ORqN3VqtVZbfbTQC4uEHANM3jSqXymFI6yWazP2KxWAXAL9zCUa1Wy2tXVxheKA9YNoR8Pt+aTqe4FVVVvz05O6MBhqUIBGk8Hn8HAOVy+T+XLJfLS4ZhTiRJgqIoVBRFIoric47jPnmeB1mW/9rr9ZpSSn3Lsmir1fJZlqWlUonKsvwWwD8ymc/nXwVBeLjf7xEKhdBut9Hr9WgmkyGEkJwsy5eHG5vN5g0AKIoCAEgkEkin0wQAfN9/cXPdheu6P33fBwB4ngcAcByHJpPJl+fn54mD3Gg0NrquXxeLRQAAwzAYj8cwTZPwPH9/sVg8PXweDAauqqr2cDjEer1GJBLBZDJBs9mE4zjwfZ85lAGg2+06hmGgXq+j3+/DsixYlgVN03a9Xu8jgCNCyIegIAgx13Vfd7vdu+FweG8YRkjXdWy329+dTgeSJD3ieZ7RNO0VAXAPwDEAO5VKndi2fWrb9jWl9Esul6PZbDY9Go1OZ7PZ9z/lyuD3OozU2wAAAABJRU5ErkJggg==)
](http://dlmf.nist.gov/LaTeXML/)


Hello, I want to record data from a tripod, so I started by creating a *urdf*
file, where I say that *laser_base* is 1m above of *base_link*, like this:
After this, I want to move the tripod around, so I need to keep track of its
XYZ position, as well as orientation, so that the data I record is properly
located. For that, I am using an ArduPilot board for retrieving IMU and GPS
information, which I am fusing with the robot_localization_package
([Wiki](http://docs.ros.org/melodic/api/robot_localization/html/index.html))
(ekf and navsat_transform_node). The launch file for this is as follows:
[true, true, true, false, false, false, false, false, false, false, false,
false, false, false, false]  [false, false, false, true, true, true, false,
false, false, true, true, true, false, false, false]  So, I walked around with
the ArduPilot board and recorded a [bag
file](https://drive.google.com/file/d/1M2MFGphi7RlgL0C9nhJLVwJTc55kpS05/view?usp=sharing)
with the IMU and GPS topics (*/mavros/imu/data* and
*/mavros/global_position/raw/fix*). I have also created another [bag
file](https://drive.google.com/file/d/1Ak7llCgtoWKseN6uswIcInIN5MbLBjCd/view?usp=sharing)
where I am running the launch file above and recorded all topics. So, I have
two problems: **1ST:** When I do `rostopic hz` with the 2 topics above, it
shows a rate of approximately 1Hz. That is very slow, isn't it? I have tried
[this](https://github.com/mavlink/mavros/blob/master/mavros/launch/px4_pluginlists.yaml),
but it didn't work, showing the message: RLException: unused args
[config_yaml, pluginlists_yaml] for include of
[/opt/ros/kinetic/share/mavros/launch/apm2.launch] **2ND:** When I use the
launch file above, it starts by showing: [ INFO] [1534032142.676696240]:
Initial odometry pose is Origin: (0 0 0) Rotation (RPY):
(0.061743952333927182297, -0.017582930624485095666, -0.89866225322219372984) [
INFO] [1534032142.776689397]: Initial odometry pose is Origin: (0 0 0)
Rotation (RPY): (0.061743952333927182297, -0.017582930624485095666,
-0.89866225322219372984) ... And, after a couple of this messages, it shows: [
INFO] [1534032142.878153405]: World frame->utm transform is Origin:
(-475554.63263590750284 -4278148.5965311238542 -133980.14933940110495)
Rotation (RPY): (0.024644147360516073519, -0.059266088787775804414,
-0.00012297369933011960061) [ WARN] [1534032143.376845932]: Transform from
base_link to odom_combined was unavailable for the time requested. Using
latest instead. And the latter line starts repeating. Once this happens, the
Output on RViz also gets strange, Where the transform between *odom* and
*base_link* starts changing randomly. Any idea of what the problem with the
transforms might be? Thank you.


Channel: ROS Answers: Open Source Q&A Forum - RSS feed


**[ takahiko-hasegawa-hdjp ](/takahiko-hasegawa-hdjp) ** commented  Dec 21,
2022


[ ](//www.rssing.com/index.php?zw=2123 "Home") [ $ ](javascript:; "MoMoney")


#  Using IMU data to improve the trajectory  #857


  Languages

  * [ C++  94.4%  ](/facontidavide/PlotJuggler/search?l=c%2B%2B)
  * [ CMake  3.4%  ](/facontidavide/PlotJuggler/search?l=cmake)
  * [ C  1.2%  ](/facontidavide/PlotJuggler/search?l=c)
  * [ QMake  0.3%  ](/facontidavide/PlotJuggler/search?l=qmake)
  * [ Python  0.3%  ](/facontidavide/PlotJuggler/search?l=python)
  * [ Qt Script  0.2%  ](/facontidavide/PlotJuggler/search?l=qt-script)
  * Other  0.2%


September 10, 2018, 4:34 pm


[ CMakeLists.txt ](/facontidavide/PlotJuggler/blob/main/CMakeLists.txt
"CMakeLists.txt")

|

|


August 29, 2018, 6:32 am


Toggle navigation


[ X ](javascript:;) 0


##  Comments


![Kerala Christian Convention Maramon 2018 Songs
Lyrics](//2.bp.blogspot.com/-3Ma00SZ4B5c/WsT8cNOvj7I/AAAAAAAAFTg/ddTpRksYfOQ7lhUTgOQr6HdEcVcWHjkxQCLcBGAs/s1600/Maramon%2BConvention%2B2018%2BSongs%2BLyrics8.jpg)


![Refer to caption](x10.png) (a)


![Refer to caption](x2.png) (a)


[ ](javascript:; "Like") 0


![The Umbrella Academy’s Justin Min shares adorable first selfie with new
boyfriend](//metro.co.uk/wp-content/uploads/2020/03/JUSTIN-MIN-2-0be4.png)


To recap, the main contribution of this paper is the development of a
localization architecture which is:


[ plotjuggler.png ](/facontidavide/PlotJuggler/blob/main/plotjuggler.png
"plotjuggler.png")

|

|


###  [ Pumas 2022/2023 Font (TTF & OTF)
](////fonts1404.rssing.com/chan-57741102/article185.html#c57741102a185i1833605640)


edited


Member


RSSing.com


[ _≪_ Previous: Robot Localization with Odometry and UM7
](//question3152.rssing.com/chan-47151955/all_p22.html#c47151955a439 "Previous
Article")


[ English  ](javascript:; "English")


[ ](javascript:; "Ouch") 0


The next set of experiments shows the effect of the model uncertainty
estimation on the velocity states. The goal of this analysis is to show how
estimating the wheel radii and IMU yaw rate bias is necessary to achieve
coherency between the position and velocity states of the filter. Two
experiments were performed, with and without model uncertainty estimation, and
for each one the position outputs were used to compute the cumulative traveled
distance  s  𝑠  s  italic_s  . Similarly, the output velocities were
integrated to obtain both the traveled distance and cumulated yaw angle. The
top plot in Figure [ 7  ](https://arxiv.org/html/2403.13452v1#S5.F7 "Figure 7
‣ V-B Model uncertainties estimation ‣ V VALIDATION RESULTS ‣ Mobile Robot
Localization: a Modular, Odometry-Improving Approach") displays the error
between the cumulated distance computed from the poses and the one computed
from the velocities, while the bottom one shows the error between the yaw
angle estimated from the EKF and the one obtained by integrating the estimated
yaw rate. With the model uncertainty estimation disabled (dark red lines) both
errors diverge: this means that the velocities are not getting estimated
correctly, and their integration drifts. With the estimation enabled (light
green lines), after a convergence phase, such drift is significantly reduced
from the longitudinal distance and even eliminated entirely from the yaw
angle.


[ ](//question3152.rssing.com/chan-47151955/all_p21.html "older") First Page
...  Page 20  Page 21  Page 22  Page 23  Page 24  ...  Last Page  [
](//question3152.rssing.com/chan-47151955/all_p23.html "newer")


[ _≫_ Next: robot_localization : no output from navsat_transform on
odometry/gps
](//question3152.rssing.com/chan-47151955/all_p22.html#c47151955a426 "Next
Article")


  * [ RSSing>> ](//www.rssing.com/index.php)
    * Collections:
    * [ RSSing ](//www.rssing.com/index.php)
    * [ EDA ](//www.rssing.com/d/eda/index.php)
    * [ Intel ](//www.rssing.com/d/intel/index.php)
    * [ Mesothelioma ](//www.rssing.com/d/mesothelioma/index.php)
    * [ SAP ](//www.rssing.com/d/sap/index.php)
    * [ SEO ](//www.rssing.com/d/seo/index.php)
  * [ Latest  ](//www.rssing.com/index.php?l=l)
    * [ Articles ](//www.rssing.com/index.php?l=la)
    * [ Channels ](//www.rssing.com/index.php?l=lc)
    * [ Super Channels ](//www.rssing.com/index.php?l=ls)
  * [ Popular  ](//www.rssing.com/index.php?l=p)
    * [ Articles ](//www.rssing.com/index.php?l=pa)
    * [ Pages ](//www.rssing.com/index.php?l=pp)
    * [ Channels ](//www.rssing.com/index.php?l=pc)
    * [ Super Channels ](//www.rssing.com/index.php?l=ps)
  * [ Top Rated  ](//www.rssing.com/index.php?l=r)
    * [ Articles ](//www.rssing.com/index.php?l=ra)
    * [ Pages ](//www.rssing.com/index.php?l=rp)
    * [ Channels ](//www.rssing.com/index.php?l=rc)
    * [ Super Channels ](//www.rssing.com/index.php?l=rs)
  * [ Trending  ](//www.rssing.com/index.php?l=t)
    * [ Articles ](//www.rssing.com/index.php?l=ta)
    * [ Pages ](//www.rssing.com/index.php?l=tp)
    * [ Channels ](//www.rssing.com/index.php?l=tc)
    * [ Super Channels ](//www.rssing.com/index.php?l=ts)


[ snap_core22 ](/facontidavide/PlotJuggler/tree/main/snap_core22
"snap_core22")

|

|


[ conanfile.txt ](/facontidavide/PlotJuggler/blob/main/conanfile.txt
"conanfile.txt")

|


[ ↂ
](////salawats2.rssing.com/chan-11490042/article47.html#c11490042a47i371003744
"Duas for Difficulties, Ism Adham-'Allah’s Greatest Name' and Secrets of Ya
Hayyu Ya Qayyum")


rgbd_odometry can also use IMU the same way.


[ plotjuggler.svg ](/facontidavide/PlotJuggler/blob/main/plotjuggler.svg
"plotjuggler.svg")

|

|


##  I  INTRODUCTION


[ ](javascript:; "Share Article") [
](//www.rssing.com/contact.php?r=o6&u=%2F%2Fquestion3152.rssing.com%2Fchan-47151955%2Farticle435-live.html
"Article Support")


September 3, 2018, 9:01 pm


We make the assumption of low wheel speeds, radii and IMU bias dynamics, which
allows us to write the state transition function as


[ ](javascript:; "Share Article") [
](//www.rssing.com/contact.php?r=o6&u=%2F%2Fquestion3152.rssing.com%2Fchan-47151955%2Farticle429-live.html
"Article Support")


[ .github ](/facontidavide/PlotJuggler/tree/main/.github ".github")

|


[ plotjuggler_base ](/facontidavide/PlotJuggler/tree/main/plotjuggler_base
"plotjuggler_base")

|

|


configure: (IMU is too noisy for this) imu0: /imu_um7/data imu0_config:
[false, false, false, false, false, false, false, false, false, false, false,
false, false, false, false] imu0_nodelay: true imu0_differential: false
imu0_relative: false imu0_queue_size: 10
imu0_remove_gravitational_acceleration: true use_control: false
process_noise_covariance: [...] initial_estimate_covariance: [...] My launch
file for localization:  Here's the rviz image with the result after a rotation
with the robot. The laser drifts from the map. Such thing does not happen if I
use hector map to publish the tf between map and odom (but I don't do that
because I want to use GPS) ![rviz_image](https://imgur.com/a/w8TCBZJ)
https://imgur.com/a/w8TCBZJ


  Search code, repositories, users, issues, pull requests...

Search

Clear

[ Search syntax tips ](https://docs.github.com/search-github/github-code-
search/understanding-github-code-search-syntax)


|  y  ^  k  e    n    c  =  [  ω  k  R  ω  k  L  ]  superscript  subscript
^  𝑦  𝑘  𝑒  𝑛  𝑐  matrix  superscript  subscript  𝜔  𝑘  𝑅  superscript
subscript  𝜔  𝑘  𝐿  \hat{y}_{k}^{enc}=\begin{bmatrix}\omega_{k}^{R}\\\
\omega_{k}^{L}\end{bmatrix}  over^ start_ARG italic_y end_ARG
start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_e
italic_n italic_c end_POSTSUPERSCRIPT = [ start_ARG start_ROW start_CELL
italic_ω start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT
italic_R end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL italic_ω
start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_L
end_POSTSUPERSCRIPT end_CELL end_ROW end_ARG ]  |  |  (3)
---|---|---|---

and


  Contributors

[
![](https://camo.githubusercontent.com/e6ec4db5be0568ad3febb19b0853d6459316e6e13312e77930375e805d430332/68747470733a2f2f636f6e747269622e726f636b732f696d6167653f7265706f3d6661636f6e74696461766964652f706c6f746a7567676c6572)
](https://github.com/facontidavide/plotjuggler/graphs/contributors)


Sorry, something went wrong.


Development


[ _≫_ Next: navsat_transform_node outputs
](//question3152.rssing.com/chan-47151955/all_p22.html#c47151955a440 "Next
Article")


  * [ Contact Us  ](//www.rssing.com/contact.php)
    * [ Technical Support ](//www.rssing.com/contact.php)
    * [ Guest Posts/Articles ](//www.rssing.com/contact.php?r=o9)
    * [ Report Violations ](//www.rssing.com/contact.php)
    * [ Google Warnings ](//www.rssing.com/contact.php?r=o4)
    * [ Article Removal Requests ](//www.rssing.com/contact.php?r=o5_0)
    * [ Channel Removal Requests ](//www.rssing.com/contact.php?r=o5_0)
    * [ General Questions ](//www.rssing.com/contact.php?r=o8)
    * [ DMCA Takedown Notice ](//www.rssing.com/contact.php)


[ X ](javascript:;) Are you the publisher? [ Claim
](//www.rssing.com/account.php?a=mmc&r=47151955) or [ contact us
](//www.rssing.com/contact.php?a=ssm&r=o5&u=//question3152.rssing.com/chan-47151955/all_p22.html)
about this channel.


#  [ navsat_transform_node outputs
](//question3152.rssing.com/chan-47151955/article440-live.html)


robust (shown by the 95% percentile and the maximal errors).
Higher accuracy of KVO compared to vision localization can
be obtained due to the outlier detection and lack of time-delay,
as described in Section III-B.
V. CONCLUSION AND OUTLOOK
In this paper, we present a simple but effective method to
fuse vision and odometry for accurate robot indoor localization
using low-cost devices, e.g. using off-the-shelf cameras. For
fusing sensor’s information, a Kalman-Filter was employed.
The proposed method is able to combine the strengths of
both, vision and odometry localization, while being fast and
accurate.
The presented approach, the KVO localization, was evaluated on different driving movements using the omni-directional
Robotino. At a tracking frequency of about 35Hz, the mean
euclidean distance error of KVO to the ground truth was about
3-4cm. The mean absolute angle error was in the range of
1-3 degree. Further possibilities to increase this accuracy is,
for example, the integration of gyroscope data with odometry.
In future work, we investigate possibilities to employ natural
landmarks instead of artificial markers for localization.
350
0
Ground Truth KVO Vision Odometry
0 50 100 150 −20
0
20
40
60
80
100
120
140
160
180
x−position (cm)
y−position (cm)
0 10 20 30 40 −20
−15
−10
−5


[ ↂ
](////metro2989.rssing.com/chan-40972540/article57410.html#c40972540a57410i495009908
"The Umbrella Academy’s Justin Min shares adorable first selfie with new
boyfriend")


Figure 8:  Result of model uncertainties estimation when both position
measures are temporarily lost: wheel radii
LABEL:sub@fig:validation/20230512_niguarda_stop_pose_meas_radii  (continuous
and dotted lines represent the left and right wheel, respectively) and IMU yaw
rate bias  LABEL:sub@fig:validation/20230512_niguarda_stop_pose_meas_imu_bias
. The experiment was repeated with (green lines) and without (red line) model
uncertainties estimation.


Member


[ _≫_ Next: navSat with hectorMapping for outdoor navigation
](//question3152.rssing.com/chan-47151955/all_p22.html#c47151955a427 "Next
Article")


[ README.md ](/facontidavide/PlotJuggler/blob/main/README.md "README.md")

|

|


Author


true, true,  false, false, false]  In the launch file above, I have commented
the fusion of Z on the odom because when I plot the z, it does not seems
correct. Also, I do not know why, but I only have the IMU publishing at 2Hz.
Also, here is a sample of sensor output: IMU: header: seq: 480 stamp: secs:
1536196132 nsecs: 675659339 frame_id: "base_link" orientation: x:
-0.01038560877 y: 0.0207573504383 z: 0.354425421472 w: -0.934796176794
orientation_covariance: [1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0]
angular_velocity: x: 0.0015384554863 y: -0.000201269984245 z: 0.0021977359429
angular_velocity_covariance: [1.2184696791468346e-07, 0.0, 0.0, 0.0,
1.2184696791468346e-07, 0.0, 0.0, 0.0, 1.2184696791468346e-07]
linear_acceleration: x: 0.00980665 y: 0.1176798 z: 9.6693569
linear_acceleration_covariance: [8.999999999999999e-08, 0.0, 0.0, 0.0,
8.999999999999999e-08, 0.0, 0.0, 0.0, 8.999999999999999e-08] And from the GPS:
header: seq: 1336 stamp: secs: 1536196628 nsecs: 257958525 frame_id:
"base_link" status: status: 0 service: 1 latitude: 38.6603919 longitude:
-9.2061606 altitude: 143.787508098 position_covariance: [-1.0, 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, 0.0, 0.0] position_covariance_type: 0 Any help is appreciated.
Thank you.


To show the potential of implementing vehicle-specific models we developed an
uncertain kinematic differential model. The estimated state  x  𝑥  x  italic_x
is


Installation


[ _≪_ Previous: robot_localization estimate (using only IMU) drifts for a
stationary robot (Gazebo Model)
](//question3152.rssing.com/chan-47151955/all_p22.html#c47151955a429 "Previous
Article")


[ plotjuggler_plugins
](/facontidavide/PlotJuggler/tree/main/plotjuggler_plugins
"plotjuggler_plugins")

|

|


August 11, 2018, 5:41 pm


As noted above, the filter must be capable of handling a varying number of
measurements, which is not a given in the EKF paradigm. A common method to
bypass this issue to handle multi-rate measurements is to design the filter to
run at the frequency of the slowest sensor. This solution is clearly
suboptimal and might not meet the output frequency requirements. Furthermore,
some of the inputs might become unavailable for prolonged periods: GNSS data
might not be reliable if the robot is traveling indoors, while map-based
localization methods might lose their lock with the localization map if the
environment presents substantial changes. For these reasons, we approach this
issue differently: selecting the filter execution frequency based on the
fastest sensor. At each iteration, we perform the prediction step and the
correction step, but the latter considers only the available measurements.
This is achieved by dynamically adjusting the dimensions of the involved
matrices. Notice that, depending on the formulation of the model and the
redundancy of the sensors, the observability properties of the system might
change. A method to handle this situation will be presented in Section [ IV-D
](https://arxiv.org/html/2403.13452v1#S4.SS4 "IV-D Dealing with multi-rate and
unavailable measures ‣ IV ARCHITECTURE SPECIALIZATION FOR YAPE ‣ Mobile Robot
Localization: a Modular, Odometry-Improving Approach") .


[ ![@takahiko-hasegawa-
hdjp](https://avatars.githubusercontent.com/u/90363936?s=80&u=9d2224b0bc56a0f78c91348cc69de7d8fbfcdadd&v=4)
](/takahiko-hasegawa-hdjp)


[ ](javascript:; "Ouch") 0


##  References


Hi, I am trying to fuse the output of ORB-SLAM2 (as PoseWithCovarianceStamped
msg) into ekf_localization_node instance. The frame_id of the pose msg is an
optical frame called "zed_optical_frame". I want to get the output in the
standard X-forward Y-left Z-up frame. In the TF tree I have "base_link" ->
"zed_center" -> "zed_optical_frame". The "zed_optical_frame" is just a
rotation from "zed_center" with RPY=(-PI/2,0.0,-PI/2). Still, I get the output
in the same optical frame as the input. I made a test and left only this input
to the ekf_localization_node, when I turned on the Differential flag. I'm
running on Jetson TX2 with Ubuntu 16.04 and ROS Kinetic. Thanks


###  [ People's Blog • Germany Bans the Number 44
](////political6769.rssing.com/chan-78425830/article66.html#c78425830a66i1994484930)


[ _≫_ Next: Robot Localization Package: Transform from base_link to odom was
unavailable for the time requested. Using latest instead. (IMU+GPS)
](//question3152.rssing.com/chan-47151955/all_p22.html#c47151955a423 "Next
Article")


###  [ Duas for Difficulties, Ism Adham-'Allah’s Greatest Name' and Secrets of
Ya Hayyu Ya Qayyum
](////salawats2.rssing.com/chan-11490042/article47.html#c11490042a47i371003744)


[ .gitignore ](/facontidavide/PlotJuggler/blob/main/.gitignore ".gitignore")

|

|


RSSing.com


April 12, 2024, 3:59 pm


Copy link


![Duas for Difficulties, Ism Adham-'Allah’s Greatest Name' and Secrets of Ya
Hayyu Ya
Qayyum](//2.bp.blogspot.com/-IJM3qg4P1NQ/Ugc0BBcHquI/AAAAAAAAAVc/XjnDYEvefA8/s400/Istighfar+al-
Kabir.jpg)


So, I added the following to the launch file:


###  IV-A  Localization sources


###  [ CALIFORNIA: DUI arrests by Chico Police March 2019
](////arrests130.rssing.com/chan-8670761/article2736.html#c8670761a2736i331208640)


Password


st+1 = At ·st +Bt · ut +εt
zt = Ctst +γt,
where At,Bt,Ct describe the system dynamics, ut is the control
vector and zt a state observation. The noise is modelled as
εt ∼ N (0, Rt) and γt ∼ N (0, Qt), the matrices Rt and
Qt describe the noise property of the system and of state
observations, respectively. The setting of these uncertainties
strongly influences the behavior of the Kalman-Filter. The
Kalman-Filter has two operations, i.e. predict and update:
Predict:
μt+1 = At · μt +Bt · ut
Σt+1 = At ·Σt ·A
t +Rt
(2)
Update:
μt+1 = μt +K ·(zt −C· μt)
Σt+1 = (I −K ·C)·Σt
(3)
The matrix K = Σt ·C ·(C·Σt ·C +Qt)
−1 is called Kalman
gain and I is the identity matrix. The prediction approximates
the next belief state ˆst+1 ∼ (μt+1,Σt+1) if an action ut is applied
in the belief state ˆst ∼ N (μt, Σt). This operation increases the
uncertainty in the belief state. The update on the other hand
is a correction, which decreases the variance of the new belief
state. Here, the new belief state ˆst+1 is inferred with help of a
state observation zt and the old belief state ˆst.
B. KVO – Filtering Vision and Odometry
Kalman-filtering vision and odometry (KVO) is an approach
to combine the benefits of both sensors. Here, the vision
pose estimation can be seen as a correction for the odometry
estimation. On the other hand, the odometry information can
be employed to overcome time-delays appeared in vision, as
well as for regions where no visual markers are available.
Furthermore, faulty visual marker detection often leads to
corrupt pose estimations. In our KVO approach, the faulty
marker recognition can be identified using the uncertainties
returned by the Kalman-Filter.
For the KVO localization, the state st = (xt, yt,θt) is three
dimensional representing the robot position x, y and orientation


  License

[ MPL-2.0 license ](/facontidavide/PlotJuggler/blob/main/LICENSE.md)

[ 4k  stars ](/facontidavide/PlotJuggler/stargazers) [ 566  forks
](/facontidavide/PlotJuggler/forks) [ Branches
](/facontidavide/PlotJuggler/branches) [ Tags
](/facontidavide/PlotJuggler/tags) [ Activity
](/facontidavide/PlotJuggler/activity)

[ Star  ](/login?return_to=%2Ffacontidavide%2FPlotJuggler)

[ Notifications ](/login?return_to=%2Ffacontidavide%2FPlotJuggler)

  * [ Code  ](/facontidavide/PlotJuggler)
  * [ Issues  127  ](/facontidavide/PlotJuggler/issues)
  * [ Pull requests  12  ](/facontidavide/PlotJuggler/pulls)
  * [ Discussions  ](/facontidavide/PlotJuggler/discussions)
  * [ Actions  ](/facontidavide/PlotJuggler/actions)
  * [ Projects  1  ](/facontidavide/PlotJuggler/projects)
  * [ Security  ](/facontidavide/PlotJuggler/security)
  * [ Insights  ](/facontidavide/PlotJuggler/pulse)

Additional navigation options

  * [ Code  ](/facontidavide/PlotJuggler)
  * [ Issues  ](/facontidavide/PlotJuggler/issues)
  * [ Pull requests  ](/facontidavide/PlotJuggler/pulls)
  * [ Discussions  ](/facontidavide/PlotJuggler/discussions)
  * [ Actions  ](/facontidavide/PlotJuggler/actions)
  * [ Projects  ](/facontidavide/PlotJuggler/projects)
  * [ Security  ](/facontidavide/PlotJuggler/security)
  * [ Insights  ](/facontidavide/PlotJuggler/pulse)


#  [ robot_localization covariance grows too big
](//question3152.rssing.com/chan-47151955/article437-live.html)


#  [ robot_localization : no output from navsat_transform on odometry/gps
](//question3152.rssing.com/chan-47151955/article426-live.html)


#  [ Confused with setup for robot_localization
](//question3152.rssing.com/chan-47151955/article424-live.html)


[ Plotjuggler.rc ](/facontidavide/PlotJuggler/blob/main/Plotjuggler.rc
"Plotjuggler.rc")

|


[ ](javascript:; "Share Article") [
](//www.rssing.com/contact.php?r=o6&u=%2F%2Fquestion3152.rssing.com%2Fchan-47151955%2Farticle421-live.html
"Article Support")


**Have a question about this project?** Sign up for a free GitHub account to
open an issue and contact its maintainers and the community.


![Refer to caption](x7.png) Figure 7:  Effect of model uncertainties
estimation on the curvilinear abscissa (top) and yaw (bottom) error between
the filter output pose and integrated output velocities. The experiment was
repeated with (green lines) and without (red line) model uncertainties
estimation.


![Last Day of Yangon Thingyan Festival Celebration
2014](//1.bp.blogspot.com/-QCOXV-h52KE/U06vO3LGp6I/AAAAAAACCzk/eFTAQF1gkxk/s1600/IMG_9920.jpg)


May check [ https://github.com/cra-ros-pkg/robot_localization/blob/noetic-
devel/params/ekf_template.yaml ](https://github.com/cra-ros-
pkg/robot_localization/blob/noetic-devel/params/ekf_template.yaml)

---

All reactions


In the presented experiment, both GNSS and Cartographer provide high-quality
measurements during the entirety of the test, exception made for the final
seconds in which GNSS quality degrades as the robot enters a indoor area (top
right in Figure [ 4  ](https://arxiv.org/html/2403.13452v1#S5.F4 "Figure 4 ‣ V
VALIDATION RESULTS ‣ Mobile Robot Localization: a Modular, Odometry-Improving
Approach") ). This allowed us to simulate the loss of one sensor by disabling
the fusion in the filter while using it for ground truth purposes. Figures [ 5
](https://arxiv.org/html/2403.13452v1#S5.F5 "Figure 5 ‣ V-A Loss of one
absolute pose source ‣ V VALIDATION RESULTS ‣ Mobile Robot Localization: a
Modular, Odometry-Improving Approach") and [ 6
](https://arxiv.org/html/2403.13452v1#S5.F6 "Figure 6 ‣ V-A Loss of one
absolute pose source ‣ V VALIDATION RESULTS ‣ Mobile Robot Localization: a
Modular, Odometry-Improving Approach") present the results of these
experiments: in the former, the error between the output of the filter and
Cartographer measures remains close to the raw sensor data, even when fed GNSS
data only (yellow plots). Note that in spite of not having direct yaw
measurements, the error maintains a median of  1    deg  1  degree  1\deg  1
roman_deg  . Similar conclusions can be drawn by inspecting the latter, which
reports errors with respect to the GNSS position.


#  [ Wheel Odometry Covariance
](//question3152.rssing.com/chan-47151955/article421-live.html)


September 9, 2018, 5:35 pm


[ ](javascript:; "Ouch") 0


April 8, 2024, 2:19 am


[ _≪_ Previous: robot_localization : no output from navsat_transform on
odometry/gps
](//question3152.rssing.com/chan-47151955/all_p22.html#c47151955a426 "Previous
Article")


August 13, 2018, 2:48 pm


  Star History

[ ![Star History
Chart](https://camo.githubusercontent.com/27c62d54e0a49e3cebd4a8579fcc9472edc0b47d84910f2446edde6b3cd40b62/68747470733a2f2f6170692e737461722d686973746f72792e636f6d2f7376673f7265706f733d6661636f6e74696461766964652f506c6f744a7567676c657226747970653d44617465)
](https://star-history.com/


[ package.xml ](/facontidavide/PlotJuggler/blob/main/package.xml
"package.xml")

|


August 30, 2018, 9:04 pm


[ _≫_ Next: Robot Localization Package: Transform was unavailable for the time
requested. Using latest instead.
](//question3152.rssing.com/chan-47151955/all_p22.html#c47151955a438 "Next
Article")


[ ](javascript:; "Share Article") [
](//www.rssing.com/contact.php?r=o6&u=%2F%2Fquestion3152.rssing.com%2Fchan-47151955%2Farticle423-live.html
"Article Support")


  Watchers

[ **80** watching ](/facontidavide/PlotJuggler/watchers)


  PlotJuggler 3.9

PlotJuggler is a tool to visualize time series that is **fast** , **powerful**
and **intuitive** .

Noteworthy features:

  * Simple Drag & Drop user interface.
  * Load **data from file** .
  * Connect to live **streaming** of data.
  * Save the visualization layout and configurations to re-use them later.
  * Fast **OpenGL** visualization.
  * Can handle **thousands** of timeseries and **millions** of data points.
  * Transform your data using a simple editor: derivative, moving average, integral, etc…
  * PlotJuggler can be easily extended using **plugins** .

[ ![PlotJuggler](/facontidavide/PlotJuggler/raw/main/docs/plotjuggler3.gif)
](/facontidavide/PlotJuggler/blob/main/docs/plotjuggler3.gif)


[ snap_core20 ](/facontidavide/PlotJuggler/tree/main/snap_core20
"snap_core20")

|


[ @matlabbe ](https://github.com/matlabbe) Thanks for your answer.


[ _≪_ Previous: robot_localization with cartographer and amcl
](//question3152.rssing.com/chan-47151955/all_p22.html#c47151955a436 "Previous
Article")


###  [ Fake lip ring, silver lip ring, simple lip ring, unisex lip ring by
AIRlab
](////kuteriot1.rssing.com/chan-5865851/article17035.html#c5865851a17035i913072506)


##  IV  ARCHITECTURE SPECIALIZATION FOR YAPE


[ .github ](/facontidavide/PlotJuggler/tree/main/.github ".github")

|

|


[ ](//www.rssing.com/index.php?zw=2123 "Home") [ $ ](javascript:; "MoMoney")


[ Search ](javascript:;)


[ _≫_ Next: Robot Localization not transforms from input's frame_id
](//question3152.rssing.com/chan-47151955/all_p22.html#c47151955a430 "Next
Article")


#  [ Robot Localization Package: Transform from base_link to odom was
unavailable for the time requested. Using latest instead. (IMU+GPS)
](//question3152.rssing.com/chan-47151955/article423-live.html)


Already on GitHub? [ Sign in
](/login?return_to=%2Fintrolab%2Frtabmap_ros%2Fissues%2Fnew%2Fchoose) to your
account


  * [ Code  ](/introlab/rtabmap_ros)
  * [ Issues  ](/introlab/rtabmap_ros/issues)
  * [ Pull requests  ](/introlab/rtabmap_ros/pulls)
  * [ Actions  ](/introlab/rtabmap_ros/actions)
  * [ Projects  ](/introlab/rtabmap_ros/projects)
  * [ Wiki  ](/introlab/rtabmap_ros/wiki)
  * [ Security  ](/introlab/rtabmap_ros/security)
  * [ Insights  ](/introlab/rtabmap_ros/pulse)


[ plotjuggler_base ](/facontidavide/PlotJuggler/tree/main/plotjuggler_base
"plotjuggler_base")

|


[ Browse latest ](//question3152.rssing.com/chan-47151955/index-latest.php) [
View live ](//question3152.rssing.com/chan-47151955/article421-live.html)


###  [ Have you seen Michael Wines? Burien man has been missing since
Saturday,...
](////normandy480.rssing.com/chan-74604448/article56.html#c74604448a56i1857302427)


* [ The ReadME Project  GitHub community articles  ](/readme)


If you want to use IMU with rtabmap's odometry, for the best pose accuracy,
I'll suggest to use ` stereo_odometry ` . See Zed related instructions on this
page: [ http://wiki.ros.org/rtabmap_ros/Tutorials/StereoHandHeldMapping
](http://wiki.ros.org/rtabmap_ros/Tutorials/StereoHandHeldMapping)


[ _≪_ Previous: IMU data to be used with robot_localization
](//question3152.rssing.com/chan-47151955/all_p21.html#c47151955a420 "Previous
Article")


[ ![@takahiko-hasegawa-
hdjp](https://avatars.githubusercontent.com/u/90363936?s=80&u=9d2224b0bc56a0f78c91348cc69de7d8fbfcdadd&v=4)
](/takahiko-hasegawa-hdjp)


false, false, false] odom0_queue_size: 10 odom0_nodelay: true
odom0_differential: false odom0_relative: false odom1: odometry/gps
odom1_config: [true, true, false, false, false, false, false, false, false,
false, false, false, false, false, false] odom1_queue_size: 10 odom1_nodelay:
true odom1_differential: false odom1_relative: false imu0: imu/data
imu0_config: [false, false, false, true, true, false, false, false, false,
true, true, true, true, true, true] imu0_nodelay: true imu0_differential:
false imu0_relative: false imu0_queue_size: 10
imu0_remove_gravitational_acceleration: true use_control: false
process_noise_covariance: ... initial_estimate_covariance: ...
navsat_transform: frequency: 30 delay: 3.0 magnetic_declination_radians:
0.0429351 # For lat/long 55.944831, -3.186998 yaw_offset: 1.570796327 # IMU
reads 0 facing magnetic north, not east zero_altitude: false
broadcast_utm_transform: true publish_filtered_gps: true use_odometry_yaw:
false wait_for_datum: false Can anyone please point out what I am doing wrong?
Thank you in advance!


[ ](javascript:; "Like") 0


#  [ Robot Localization not transforms from input's frame_id
](//question3152.rssing.com/chan-47151955/article430-live.html)


In this work, we fuse data from two types of sources: absolute pose sources
and proprioceptive sources, leaving the integration of displacement sources to
future develoments. To achieve absolute localization, the GNSS receiver
provides position measures at  10    H    z  10  𝐻  𝑧  10~{}Hz  10 italic_H
italic_z  . GNSS data achieves centimeter-level accuracy when a clear view of
the sky and an internet connection to receive RTK corrections are available.
Furthermore, a LiDAR, map-based localization algorithm was deployed to provide
absolute pose data indoors and under poor GNSS coverage. Cartographer  [ [ 2
](https://arxiv.org/html/2403.13452v1#bib.bib2) ]  was selected to cover this
role after a detailed analysis of its performance, presented in  [ [ 3
](https://arxiv.org/html/2403.13452v1#bib.bib3) ]  . The Cartographer
algorithm is employed in pure localization mode: the localization map is
considered available after a mapping experiment. In said experiment, the robot
is teleoperated on the area that will be autonomously traversed while
acquiring raw sensor data. The dataset is then fed to the Cartographer
algorithm in SLAM mode, which builds and optimizes the map. Note that GNSS and
Cartographer data are referred to different reference frames: to estimate the
roto-translation between the two, the mapping phase is exploited, applying the
alignment method described in Section [ II
](https://arxiv.org/html/2403.13452v1#S2 "II LOCALIZATION ARCHITECTURE ‣
Mobile Robot Localization: a Modular, Odometry-Improving Approach") to the
optimized SLAM trajectory and the GNSS one. Cartographer pose data is provided
at a frequency of  20    H    z  20  𝐻  𝑧  20~{}Hz  20 italic_H italic_z  .
Regarding proprioceptive sources, we fuse the wheel speeds measured by the
encoders, as well as the yaw rate measurement from the IMU. Both sensors
sample data at  100    H    z  100  𝐻  𝑧  100~{}Hz  100 italic_H italic_z  .


[ _≪_ Previous: Robot_localization result is unpredictable
](//question3152.rssing.com/chan-47151955/all_p22.html#c47151955a428 "Previous
Article")


this behaviour is the inaccurate odometry which is periodically
corrected by vision pose estimations.
The second experiment shown in Figure 4 is again a square
with 150cm edge length, where the robot additionally makes a
rotation of 90◦ in the corners. Starting point is again the bottom
left corner. The few green crosses aside the true trajectory
are faulty vision pose estimations. As KVO employs a 2σ
confidence range, these outliers can be detected and, thus, the
corresponding vision pose estimations are ignored.
Experiment 3 in Figure 5 shows a circle trajectory in
counterclockwise direction. This trajectory includes simultaneous translation and rotation of the robot. KVO position and
orientation (blue solid line) follow the real trajectory very
closely. Only at the coordinates (110,80) the position differs
significantly from ground truth due to some inaccurate vision
pose estimates. The few green crosses beside the trajectory in
the center of the circle are faulty vision pose estimates.
As final experiment, we used a complex trajectory shown
in Figure 6. Here, we also included an area without visual
markers. Hence, visual localization is not possible in this area
and KVO employs the odometry information. For this scenario,
odometry is unable to provide a reasonable position estimation
and over-estimates the rotation in a range of 10◦. The vision
localization returns accurate position and orientation with few
outliers. As expected, the accuracy of KVO decreases in the
area without visual markers (as it relies on the odometry only).
However, when the robot leaves the area without markers the
tracking accuracy of KVO quickly increases.
For further evaluations, we examine the Euclidean distance
of position estimations to the ground truth position. We also
consider the absolute value of the difference between the
angle estimation and the ground truth angle. The results of all
experiments are shown in Table I. Here, the mean values of
the errors represent the accuracy, while the 95% percentile and
the maximal error describe the robustness of the localization
methods. As expected, the vision pose error is in most cases
significantly smaller than the odometry estimations. On the
other hand, the vision maximal error can be extremely high
due to faulty vision pose estimations. In all experiments, the
KVO localization has not only a much higher localization
frequency than vision, it is also significantly more accurate and


[ _≪_ Previous: Robot Localization not transforms from input's frame_id
](//question3152.rssing.com/chan-47151955/all_p22.html#c47151955a430 "Previous
Article")


Figure 3:  Sensitivity analysis of model uncertainties on the estimated
(odometrical) trajectory: left wheel radius
LABEL:sub@fig:yape_arch/odometry_radius_sensitivity  and IMU yaw rate bias
LABEL:sub@fig:yape_arch/odometry_imu_bias_sensitivity  .


[ ↂ
](////salina38.rssing.com/chan-7227570/article681.html#c7227570a681i1053563629
"Saline County Jail Booking Activity – Saturday, May 30th")


RSSing.com


![Refer to caption](x9.png) (b)


[ ![@matlabbe](https://avatars.githubusercontent.com/u/2319645?s=80&v=4)
](/matlabbe)


Name


Camera: Zed2i (rgb and depth image)
Zed2 sdk version: 3.7
Image size: 1280x720
Frequency: ~10Hz

---

The text was updated successfully, but these errors were encountered:


  License

MPL-2.0 license

[ Activity  ](/facontidavide/PlotJuggler/activity)


Labels


  * Change the imu topic name to our own imu topic name on launch file
  * Add imu_filter_madgwick to the launch file
  * wait_imu_to_init to be true on launch file


[ requirements.txt ](/facontidavide/PlotJuggler/blob/main/requirements.txt
"requirements.txt")

|

|


[ .pre-commit-config.yaml ](/facontidavide/PlotJuggler/blob/main/.pre-commit-
config.yaml ".pre-commit-config.yaml")

|


Displacement sources include odometries based on exteroceptive sensors, like
LiDAR or visual odometries.


#  [ Indoor localization with 2D lidar and IMU
](//question3152.rssing.com/chan-47151955/article435-live.html)


2 participants


[ plotjuggler.png ](/facontidavide/PlotJuggler/blob/main/plotjuggler.png
"plotjuggler.png")

|


[ appimage ](/facontidavide/PlotJuggler/tree/main/appimage "appimage")

|

|


Skip to content

Toggle navigation

[ ](https://github.com/)

[ Sign in
](/login?return_to=https%3A%2F%2Fgithub.com%2Ffacontidavide%2FPlotJuggler)

  * Product

    * [ Actions  Automate any workflow  ](/features/actions)
    * [ Packages  Host and manage packages  ](/features/packages)
    * [ Security  Find and fix vulnerabilities  ](/features/security)
    * [ Codespaces  Instant dev environments  ](/features/codespaces)
    * [ Copilot  Write better code with AI  ](/features/copilot)
    * [ Code review  Manage code changes  ](/features/code-review)
    * [ Issues  Plan and track work  ](/features/issues)
    * [ Discussions  Collaborate outside of code  ](/features/discussions)

Explore

    * [ All features ](/features)
    * [ Documentation  ](https://docs.github.com)
    * [ GitHub Skills  ](https://skills.github.com/)
    * [ Blog  ](https://github.blog)

  * Solutions

For

    * [ Enterprise ](/enterprise)
    * [ Teams ](/team)
    * [ Startups ](/enterprise/startups)
    * [ Education  ](https://education.github.com)

By Solution

    * [ CI/CD & Automation ](/solutions/ci-cd/)
    * [ DevOps ](/solutions/devops/)


##  II  LOCALIZATION ARCHITECTURE


[ ↂ
](////topics4280.rssing.com/chan-62228694/article43158.html#c62228694a43158i1887057775
"Wondershare PDFelement v7.x.x Patch v3.4 By Deltafox")


![Refer to caption](x11.png) (b)


###  [ The Umbrella Academy’s Justin Min shares adorable first selfie with new
boyfriend
](////metro2989.rssing.com/chan-40972540/article57410.html#c40972540a57410i495009908)


[ ](javascript:; "Share Article") [
](//www.rssing.com/contact.php?r=o6&u=%2F%2Fquestion3152.rssing.com%2Fchan-47151955%2Farticle434-live.html
"Article Support")


[ ](javascript:; "Like") 0


{{ message }}


![Pumas 2022/2023 Font \(TTF &
OTF\)](//footballfonts.com/u/img/pumas-22-23-otf-font-installation.jpg)


|  x  k  \+  1  =  f    (  x  k  ,  u  k  )  =  [  X  k  \+  ω  k  R    R  k
R  \+  ω  k  L    R  k  L  2    cos    ψ  k    T  s  Y  k  \+  ω  k  R
R  k  R  \+  ω  k  L    R  k  L  2    sin    ψ  k    T  s  ψ  k  \+  ω  k
R    R  k  R  −  ω  k  L    R  k  L  T    T  s  ω  k  R  ω  k  L  R  k  R
R  k  L  b  k  ]  subscript  𝑥  𝑘  1  𝑓  subscript  𝑥  𝑘  subscript  𝑢  𝑘
matrix  subscript  𝑋  𝑘  subscript  superscript  𝜔  𝑅  𝑘  subscript
superscript  𝑅  𝑅  𝑘  subscript  superscript  𝜔  𝐿  𝑘  subscript  superscript
𝑅  𝐿  𝑘  2  subscript  𝜓  𝑘  subscript  𝑇  𝑠  subscript  𝑌  𝑘  subscript
superscript  𝜔  𝑅  𝑘  subscript  superscript  𝑅  𝑅  𝑘  subscript  superscript
𝜔  𝐿  𝑘  subscript  superscript  𝑅  𝐿  𝑘  2  subscript  𝜓  𝑘  subscript  𝑇  𝑠
subscript  𝜓  𝑘  subscript  superscript  𝜔  𝑅  𝑘  subscript  superscript  𝑅  𝑅
𝑘  subscript  superscript  𝜔  𝐿  𝑘  subscript  superscript  𝑅  𝐿  𝑘  𝑇
subscript  𝑇  𝑠  subscript  superscript  𝜔  𝑅  𝑘  subscript  superscript  𝜔  𝐿
𝑘  subscript  superscript  𝑅  𝑅  𝑘  subscript  superscript  𝑅  𝐿  𝑘  subscript
𝑏  𝑘
x_{k+1}=f(x_{k},u_{k})=\begin{bmatrix}X_{k}+\frac{\omega^{R}_{k}R^{R}_{k}+%
\omega^{L}_{k}R^{L}_{k}}{2}\cos{\psi_{k}}T_{s}\\\
Y_{k}+\frac{\omega^{R}_{k}R^{R}_{k}+\omega^{L}_{k}R^{L}_{k}}{2}\sin{\psi_{k}}T%
_{s}\\\
\psi_{k}+\frac{\omega^{R}_{k}R^{R}_{k}-\omega^{L}_{k}R^{L}_{k}}{T}T_{s}\\\
\omega^{R}_{k}\\\ \omega^{L}_{k}\\\ R^{R}_{k}\\\ R^{L}_{k}\\\
b_{k}\end{bmatrix}  italic_x start_POSTSUBSCRIPT italic_k + 1
end_POSTSUBSCRIPT = italic_f ( italic_x start_POSTSUBSCRIPT italic_k
end_POSTSUBSCRIPT , italic_u start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT )
= [ start_ARG start_ROW start_CELL italic_X start_POSTSUBSCRIPT italic_k
end_POSTSUBSCRIPT + divide start_ARG italic_ω start_POSTSUPERSCRIPT italic_R
end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT italic_R
start_POSTSUPERSCRIPT italic_R end_POSTSUPERSCRIPT start_POSTSUBSCRIPT
italic_k end_POSTSUBSCRIPT + italic_ω start_POSTSUPERSCRIPT italic_L
end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT italic_R
start_POSTSUPERSCRIPT italic_L end_POSTSUPERSCRIPT start_POSTSUBSCRIPT
italic_k end_POSTSUBSCRIPT end_ARG start_ARG 2 end_ARG roman_cos italic_ψ
start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT italic_T start_POSTSUBSCRIPT
italic_s end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL italic_Y
start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT + divide start_ARG italic_ω
start_POSTSUPERSCRIPT italic_R end_POSTSUPERSCRIPT start_POSTSUBSCRIPT
italic_k end_POSTSUBSCRIPT italic_R start_POSTSUPERSCRIPT italic_R
end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT + italic_ω
start_POSTSUPERSCRIPT italic_L end_POSTSUPERSCRIPT start_POSTSUBSCRIPT
italic_k end_POSTSUBSCRIPT italic_R start_POSTSUPERSCRIPT italic_L


[ 3rdparty ](/facontidavide/PlotJuggler/tree/main/3rdparty "3rdparty")

|


[ plotjuggler_plugins
](/facontidavide/PlotJuggler/tree/main/plotjuggler_plugins
"plotjuggler_plugins")

|


[ .dockerignore ](/facontidavide/PlotJuggler/blob/main/.dockerignore
".dockerignore")

|


Hello: According to `r_l`(robot_localization) wiki, [coordinate-frames-and-
transforming-sensor-data
doc](http://docs.ros.org/melodic/api/robot_localization/html/preparing_sensor_data.html?#coordinate-
frames-and-transforming-sensor-data), it can transforms
`geometry_msgs/PoseWithCovarianceStamped,` on topic "poseX", in message
header’s frame_id into the coordinate frame specified by the world_frame
parameter (typically map or odom). I think this topic probably can be provided
by a stereo VO, because mono VO cannot provide real scale info. when i see the
["poseX" callback function](https://github.com/cra-ros-
pkg/robot_localization/blob/kinetic-devel/src/ros_filter.cpp#L1135), it then
calls [preparePose func](https://github.com/cra-ros-
pkg/robot_localization/blob/kinetic-devel/src/ros_filter.cpp#L2481), in this
line [RosFilterUtilities::lookupTransformSafe()](https://github.com/cra-ros-
pkg/robot_localization/blob/kinetic-devel/src/ros_filter.cpp#L2570), it
lookuptransform from "finalTargetFrame"(if we set it as odom), to pose
msg.frame_id, **what should this frame_id on this topic be?** It looks like
`r_l` thinks this frame is odom, the transform msg work should be done by
users before use `r_l`, just like [viso2_ros](http://wiki.ros.org/viso2_ros)?
Generally speaking, the frame_id of pose on this topic is a fixed frame, such
as a camera_0 frame(in some moment, camea is launched by its driver ros node).
Only when we know what time stamp of camera is launched, we can get from odom
frame to this camera_0 frame from tf tree, let we mark this as
`T_odom_to_camera0`, and then we can transform msg on topic poseX to odom
frame, `T_odom_to_camera = T_odom_to_camera0 * T(msg_on_poseX)`,
`T_odom_to_baselink = T_odom_to_camera * T_camera_to_baselink`., which
`T_odom_to_baselink` is from odom frame to baselink with camera pictures
estimated, `T_camera_to_baselink` is a tf static transform. In other words, if
robot base node and camera driver node are launched on the same time from
start, `T_odom_to_camera0` equals to `T_baselink_to_camera` ,we can get this
TF directlly from tf tree. If they does not launched on the same time, we need
to record time stamp of camera launched, because we need to calculate
`T_odom_to_camera0`, anything wrong??


  Sponsorship and commercial support

PlotJuggler required a lot of work to develop and maintain; my goal is to
build the most intuitive and powerful tool to visualize data and timeseries.

If you find PlotJuggler useful, consider donating [ PayPal
](https://www.paypal.me/facontidavide) or becoming a [ Github Sponsor
](https://github.com/sponsors/facontidavide) .

If you need to extend any of the functionalities of PlotJuggler to cover a
specific need or to parse your custom data formats, you can receive commercial
support from the main author, [ Davide Faconti
](mailto:davide.faconti@gmail.com) .


###  [ Wondershare PDFelement v7.x.x Patch v3.4 By Deltafox
](////topics4280.rssing.com/chan-62228694/article43158.html#c62228694a43158i1887057775)


  Footer navigation

  * [ Terms ](https://docs.github.com/site-policy/github-terms/github-terms-of-service)
  * [ Privacy ](https://docs.github.com/site-policy/privacy-policies/github-privacy-statement)
  * [ Security ](/security)
  * [ Status ](https://www.githubstatus.com/)
  * [ Docs ](https://docs.github.com/)
  * [ Contact ](https://support.github.com?tags=dotcom-footer)
  * Manage cookies
  * Do not share my personal information

You can’t perform that action at this time.


Copy link


[ plotjuggler_app ](/facontidavide/PlotJuggler/tree/main/plotjuggler_app
"plotjuggler_app")

|


[ ↂ
](////cigar1191.rssing.com/chan-66583770/article5.html#c66583770a5i1448705673
"Royals by Lorde – 3-string Open G “GDG”– Tablature and Chords for Cigar Box
Guitar")


![Za Pakhtoon Yum: A mind-altering foray into Pukhtun life and
culture](//blogs.tribune.com.pk/application/../wp-
content/uploads/2014/10/24552-zpy-1414239961-635-160x120.jpg)


[ ↂ
](////learn4804.rssing.com/chan-65098560/article5050.html#c65098560a5050i1047598914
"Class 10 Sanskrit Grammar Book Solutions सन्धिः")


[ conanfile.txt ](/facontidavide/PlotJuggler/blob/main/conanfile.txt
"conanfile.txt")

|

|


The localization architecture presented in this paper was developed and tested
on Yape, an autonomous ground drone designed for last-mile delivery (  [ [ 11
](https://arxiv.org/html/2403.13452v1#bib.bib11) , [ 12
](https://arxiv.org/html/2403.13452v1#bib.bib12) , [ 13
](https://arxiv.org/html/2403.13452v1#bib.bib13) , [ 14
](https://arxiv.org/html/2403.13452v1#bib.bib14) , [ 15
](https://arxiv.org/html/2403.13452v1#bib.bib15) ]  ). Yape (Figure [ 2
](https://arxiv.org/html/2403.13452v1#S3.F2 "Figure 2 ‣ III EXPERIMENTAL SETUP
‣ Mobile Robot Localization: a Modular, Odometry-Improving Approach") ) is a
Two-Wheeled Inverted Pendulum (TWIP) robot, which independently controls the
two wheels to achieve motion while keeping the chassis balanced. The robot is
equipped with a sensor package comprising an Ardusimple RTK GNSS receiver, a
Robosense R16 3D LiDAR, a chassis-mounted 6 degrees of freedom Inertial
Measurement Unit (IMU) and two wheel encoders. The IMU measures linear
accelerations and rotational velocities along the three axis, while wheel
encoders provide wheel positions and rotational speeds. The presented
algorithm was implemented running online on the onboard processing unit, an
Nvidia Xavier AGX development board, by employing the ROS framework  [ [ 16
](https://arxiv.org/html/2403.13452v1#bib.bib16) ]  .


###  [ Last Day of Yangon Thingyan Festival Celebration 2014
](////myanmar19.rssing.com/chan-7313589/article889.html#c7313589a889i784670228)


[ .dockerignore ](/facontidavide/PlotJuggler/blob/main/.dockerignore
".dockerignore")

|

|


[ _≫_ Next: robot localization weird bahavior when playing bag
](//question3152.rssing.com/chan-47151955/all_p22.html#c47151955a432 "Next
Article")


[ ](javascript:; "Share Article") [
](//www.rssing.com/contact.php?r=o6&u=%2F%2Fquestion3152.rssing.com%2Fchan-47151955%2Farticle433-live.html
"Article Support")


![Ghafil Tujhe Gharyal Ye Deta Hai
Manadi](//lh4.ggpht.com/-Tms8XN2rRKk/UbaawljfJEI/AAAAAAAAJks/DuLSCBxA3v8/Inspiration-
watch-poetry_thumb%25255B3%25255D.jpg?imgmax=800)


[ CHANGELOG.rst ](/facontidavide/PlotJuggler/blob/main/CHANGELOG.rst
"CHANGELOG.rst")

|


Lines 476 to 477 in [ 3040a5d
](/introlab/rtabmap_ros/commit/3040a5d8f5c5c80bd5cffddd26f6f189c56dee91)


I have a 3 wheeled differential drive robot (2 wheels + 1 castor) which has a
9 DOF IMU (3d acceleration, heading and angular velocities) and a 2D lidar
(RPLidar). I have a pre-computed map. To localize the robot I am using the ROS
package [amcl](http://wiki.ros.org/amcl). AMCL requires 3 inputs: 1\. 2D Laser
scan data 2\. odom -> base_link transform. This is typically published by an
odometry source. 3\. Map Odometry is estimated using the ROS package
[robot_localization](http://wiki.ros.org/robot_localization), which uses
Kalman filters to fuse data from the IMU's 3 sensors - accelerometer,
gyroscope and magnetometer. The localization works reasonably well at slow
speeds. However sometimes the estimated position is way off the actual
position. My questions : 1\. Is this the right approach to perform
localization using an IMU and 2D lidar? 2\. Will the odometry estimated using
the IMU data be good enough for amcl?


© 2024 //www.rssing.com


[ ](javascript:; "Share Article") [
](//www.rssing.com/contact.php?r=o6&u=%2F%2Fquestion3152.rssing.com%2Fchan-47151955%2Farticle432-live.html
"Article Support")


Viewing all 521 articles


Sharing:


1e-9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1e-9] When I use this
config, and move the robot forward and backward about 3 meters, I'm getting
very unstable results from the EKF. I'm aware there's noise added to each
measurement, so no two runs should be exactly the same, but the results I'm
seeing imply there's a differently problem, because there's way too much
variation between each time I run the node and run a bag file of odometry
data. Here is the bag file:
https://drive.google.com/open?id=1qRLqguLdRAeyw2bFAf5Oqm7Ld6nu7-VP Here is the
config file for convenience:
https://drive.google.com/open?id=1EDMMsNDVhrHEbWVt54QPb1E47eJ3-TSQ This
(https://drive.google.com/open?id=1ZwiPXWEPunMa995JTfYKNci_ipliAVxa) is a
video of how the odometry transform would look without the EKF node running.
It's stable enough for what I'm looking for, and I verified integrating the
velocity data gives the same output as the original odometry calculation. This
(https://drive.google.com/open?id=1kAMzJfIboZbXN-XQi6lFgqe324qQ3lmS) is a
video of the EKF node running the first time on the bag file. You'll notice at
the beginning it is slow to respond to the velocity changes, and jumps into
position. I've been unable to understand why there's so much jumping. This
still happens when I increase the "frequency" parameter to about 100Hz. This
(https://drive.google.com/open?id=12HbN_7vwyj5BASEJeNO2yKO0TKOBAPgO) is a
second video of the EKF node running on the bag file. Now I expect some
different results, but these are wildly different than the last run. It's far
too unstable for me to use this in any sort of real-time path planning
environment. At the end of the video, the bag file ends, and the EKF node
keeps running, so that's why it continues to fly off the screen. My initial
guess as to why this would be occurring would be this package doesn't handle
the fusing of one data point very well, but that would surprise me. I have
noticed that the acceleration values in the state matrix are non-zero, and
this was pretty confusing to me, considering I never introduced acceleration
values. Wouldn't integrating my velocity values cause more instability? If
anyone has any insight into why I am experiencing these issues, I would
greatly appreciate the advice. Thank you!


Sorry, something went wrong.


[ ](javascript:; "Share Article") [
](//www.rssing.com/contact.php?r=o6&u=%2F%2Fquestion3152.rssing.com%2Fchan-47151955%2Farticle424-live.html
"Article Support")


[ ↂ
](////filator3.rssing.com/chan-3245654/article2282.html#c3245654a2282i1151529573
"Hustisya para kay Randy Echanis")


##  Top-Rated Images


Projects


[ ](javascript:; "Like") 0


  * [ Code  ](/introlab/rtabmap_ros)
  * [ Issues  424  ](/introlab/rtabmap_ros/issues)
  * [ Pull requests  0  ](/introlab/rtabmap_ros/pulls)
  * [ Actions  ](/introlab/rtabmap_ros/actions)
  * [ Projects  0  ](/introlab/rtabmap_ros/projects)
  * [ Wiki  ](/introlab/rtabmap_ros/wiki)
  * [ Security  ](/introlab/rtabmap_ros/security)
  * [ Insights  ](/introlab/rtabmap_ros/pulse)


[ ](//www.rssing.com/index.php?zw=2123 "Home") [ $ ](javascript:; "MoMoney")


[ ](javascript:; "Ouch") 0


  [ Contributors  88  ](/facontidavide/PlotJuggler/graphs/contributors)

  * [ ![@facontidavide](https://avatars.githubusercontent.com/u/2822888?s=64&v=4) ](https://github.com/facontidavide)
  * [ ![@Bartimaeus-](https://avatars.githubusercontent.com/u/2954254?s=64&v=4) ](https://github.com/Bartimaeus-)
  * [ ![@jbendes](https://avatars.githubusercontent.com/u/3058256?s=64&v=4) ](https://github.com/jbendes)
  * [ ![@aeudes](https://avatars.githubusercontent.com/u/462068?s=64&v=4) ](https://github.com/aeudes)
  * [ ![@kartikmohta](https://avatars.githubusercontent.com/u/92570?s=64&v=4) ](https://github.com/kartikmohta)
  * [ ![@MirkoFerrati](https://avatars.githubusercontent.com/u/1209878?s=64&v=4) ](https://github.com/MirkoFerrati)
  * [ ![@GerardoPardo](https://avatars.githubusercontent.com/u/4308012?s=64&v=4) ](https://github.com/GerardoPardo)
  * [ ![@zdavkeos](https://avatars.githubusercontent.com/u/172684?s=64&v=4) ](https://github.com/zdavkeos)
  * [ ![@Guillaumebeuzeboc](https://avatars.githubusercontent.com/u/8058486?s=64&v=4) ](https://github.com/Guillaumebeuzeboc)
  * [ ![@v-lopez](https://avatars.githubusercontent.com/u/3469405?s=64&v=4) ](https://github.com/v-lopez)
  * [ ![@markcutler](https://avatars.githubusercontent.com/u/14132313?s=64&v=4) ](https://github.com/markcutler)
  * [ ![@alkaes](https://avatars.githubusercontent.com/u/41850898?s=64&v=4) ](https://github.com/alkaes)
  * [ ![@bonkuraps](https://avatars.githubusercontent.com/u/110040081?s=64&v=4) ](https://github.com/bonkuraps)
  * [ ![@efernandez](https://avatars.githubusercontent.com/u/382167?s=64&v=4) ](https://github.com/efernandez)

[ \+ 74 contributors ](/facontidavide/PlotJuggler/graphs/contributors)


  Folders and files

Name  |  Name  |

Last commit message

|

Last commit date

---|---|---|---


[ installer ](/facontidavide/PlotJuggler/tree/main/installer "installer")

|

|


Thanks in advance.


We read every piece of feedback, and take your input very seriously.


![Refer to caption](x8.png) (a)


[ ↂ
](////drama1031.rssing.com/chan-27446141/article21.html#c27446141a21i856785604
"Za Pakhtoon Yum: A mind-altering foray into Pukhtun life and culture")


  * Title: ROS Answers: Open Source Q&A Forum - RSS feed
  * Channel Number: 47151955
  * Language: English
  * Registered On: July 12, 2015, 5:27 pm
  * Number of Articles: 521
  * Latest Snapshot: July 2, 2019, 9:52 am
  * RSS URL: [ http://answers.ros.org/feeds/rss/?tags=robot_localization ](javascript:;)
  * Publisher: [ http://answers.ros.org/questions/ ](javascript:;)
  * Description: Open source question and answer forum written in Python and Django
  * Catalog: [ //question3152.rssing.com/catalog.php?indx=47151955 ](//question3152.rssing.com/catalog.php?indx=47151955)


**[ matlabbe ](/matlabbe) ** commented  Dec 26, 2022


[ ![@matlabbe](https://avatars.githubusercontent.com/u/2319645?s=80&v=4)
](/matlabbe)


###  [ Royals by Lorde – 3-string Open G “GDG”– Tablature and Chords for Cigar
Box Guitar
](////cigar1191.rssing.com/chan-66583770/article5.html#c66583770a5i1448705673)


April 8, 2024, 1:08 pm


[ ](javascript:; "Share Article") [
](//www.rssing.com/contact.php?r=o6&u=%2F%2Fquestion3152.rssing.com%2Fchan-47151955%2Farticle428-live.html
"Article Support")


[ _≫_ Next: robot_localization covariance grows too big
](//question3152.rssing.com/chan-47151955/all_p22.html#c47151955a437 "Next
Article")


#  Saved searches


[ CMakeLists.txt ](/facontidavide/PlotJuggler/blob/main/CMakeLists.txt
"CMakeLists.txt")

|


|  y  ^  k  i    m    u  =  ω  k  R    R  ¯  R  −  ω  k  L    R  ¯  L  T
\+  b  k  superscript  subscript  ^  𝑦  𝑘  𝑖  𝑚  𝑢  subscript  superscript  𝜔
𝑅  𝑘  superscript  ¯  𝑅  𝑅  subscript  superscript  𝜔  𝐿  𝑘  superscript  ¯  𝑅
𝐿  𝑇  subscript  𝑏  𝑘
\hat{y}_{k}^{imu}=\frac{\omega^{R}_{k}\bar{R}^{R}-\omega^{L}_{k}\bar{R}^{L}}{T%
}+b_{k}  over^ start_ARG italic_y end_ARG start_POSTSUBSCRIPT italic_k
end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_i italic_m italic_u
end_POSTSUPERSCRIPT = divide start_ARG italic_ω start_POSTSUPERSCRIPT italic_R
end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT over¯
start_ARG italic_R end_ARG start_POSTSUPERSCRIPT italic_R end_POSTSUPERSCRIPT
- italic_ω start_POSTSUPERSCRIPT italic_L end_POSTSUPERSCRIPT
start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT over¯ start_ARG italic_R
end_ARG start_POSTSUPERSCRIPT italic_L end_POSTSUPERSCRIPT end_ARG start_ARG
italic_T end_ARG + italic_b start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT  |
|  (8)
---|---|---|---

where  R  ¯  R  superscript  ¯  𝑅  𝑅  \bar{R}^{R}  over¯ start_ARG italic_R
end_ARG start_POSTSUPERSCRIPT italic_R end_POSTSUPERSCRIPT  and  R  ¯  L
superscript  ¯  𝑅  𝐿  \bar{R}^{L}  over¯ start_ARG italic_R end_ARG
start_POSTSUPERSCRIPT italic_L end_POSTSUPERSCRIPT  are the latest available
estimates of the wheel radii. However, it is not possible to assert that such
estimates have reached convergence, and employing erroneous values would
result in an incorrect estimate of the bias  b  𝑏  b  italic_b  as well.


[ _≫_ Next: Configuring robot_localization for odom msgs only
](//question3152.rssing.com/chan-47151955/all_p23.html#c47151955a441 "Next
Article")


Email Address


  Compile from source

You can find the detailed instructions here: [ COMPILE.md
](/facontidavide/PlotJuggler/blob/main/COMPILE.md) .


  Use saved searches to filter your results more quickly

Name

Query

To see all available qualifiers, see our [ documentation
](https://docs.github.com/search-github/github-code-search/understanding-
github-code-search-syntax) .

Cancel  Create saved search

[ Sign in
](/login?return_to=https%3A%2F%2Fgithub.com%2Ffacontidavide%2FPlotJuggler)

[ Sign up
](/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-
name%3E%2F%3Crepo-name%3E&source=header-
repo&source_repo=facontidavide%2FPlotJuggler)

You signed in with another tab or window. [ Reload ]() to refresh your
session.  You signed out in another tab or window. [ Reload ]() to refresh
your session.  You switched accounts on another tab or window. [ Reload ]() to
refresh your session.  Dismiss alert

{{ message }}

[ facontidavide ](/facontidavide) /  **[ PlotJuggler
](/facontidavide/PlotJuggler) ** Public

  *   * [ Notifications ](/login?return_to=%2Ffacontidavide%2FPlotJuggler)
  * [ Fork  566  ](/login?return_to=%2Ffacontidavide%2FPlotJuggler)
  * [ Star  4k  ](/login?return_to=%2Ffacontidavide%2FPlotJuggler)

  *

The Time Series Visualization Tool that you deserve.

[ www.plotjuggler.io ](https://www.plotjuggler.io
"https://www.plotjuggler.io")


      <param name="frequency" value="50"/>
      <param name="sensor_timeout" value="0.1"/>
      <param name="two_d_mode" value="false"/>

      <param name="odom_frame" value="odom"/>
      <param name="base_link_frame" value="$(arg frame_id)"/>
      <param name="world_frame" value="odom"/>

      <param name="transform_time_offset" value="0.0"/>

      <param name="odom0" value="/vo"/>
      <param name="imu0" value="$(arg imu_topic)"/>

      <!-- The order of the values is x, y, z, roll, pitch, yaw, vx, vy, vz, vroll, vpitch, vyaw, ax, ay, az. -->
      <rosparam param="odom0_config">[true, true, true,
                                      false, false, false,
                                      true, true, true,
                                      false, false, false,
                                      false, false, false]</rosparam>

      <rosparam     if="$(arg imu_ignore_acc)" param="imu0_config">[
                                     false, false, false,
                                     true,  true,  true,
                                     false, false, false,
                                     true,  true,  true,
                                     false,  false,  false] </rosparam>
      <rosparam unless="$(arg imu_ignore_acc)" param="imu0_config">[
                                     false, false, false,
                                     true,  true,  true,
                                     false, false, false,
                                     true,  true,  true,
                                     true,  true,  true] </rosparam>

      <param name="odom0_differential" value="false"/>
      <param name="imu0_differential" value="false"/>

      <param name="odom0_relative" value="true"/>
      <param name="imu0_relative" value="true"/>


[ .gitmodules ](/facontidavide/PlotJuggler/blob/main/.gitmodules
".gitmodules")

|

|


###  [ People's Blog • First Pictures of the Eclipse ! ! !
](////satire3490.rssing.com/chan-77006292/article253.html#c77006292a253i838655542)


[ ](//www.rssing.com/index.php?zw=2123 "Home") [ $ ](javascript:; "MoMoney")


[ snap_core20 ](/facontidavide/PlotJuggler/tree/main/snap_core20
"snap_core20")

|

|


edited


[ ↂ ](////nazam1.rssing.com/chan-8572938/article97.html#c8572938a97i52404577
"Ghafil Tujhe Gharyal Ye Deta Hai Manadi")


![Giant Crop Cheat
Sheet](//s3.amazonaws.com/kleiforums/monthly_2021_01/1434035901_SpringGiantCrops.thumb.png.da7c62531af2e491e13151bbb10b0f2f.png)


I am trying to localize my robot (Gazebo model) in a known map. The robot has
a lidar and IMU on it. To start with I tried visualizing the
robot_localization estimate in rviz. I am feeding only IMU data to the ekf
estimator. I did not expect the Odometry estimate to be very accurate, however
even when the robot is not moving the estimate generated by robot_localization
keeps on moving. Also the estimate covariance keeps on increasing (this can be
observed in rviz). What could possibly be going wrong? ____ I am publishing a
static transform to place the map frame at the odom frame. Here is how my tf
tree looks like (only relevant part shown): ![image
description](/upfiles/15348652023326518.png) This is the robot_localization
configuration: frequency: 30 sensor_timeout: 0.05 two_d_mode: true
transform_time_offset: 0.0 transform_timeout: 1.0 print_diagnostics: false
debug: false publish_tf: true publish_acceleration: false odom_frame: odom
base_link_frame: base_footprint world_frame: odom imu0: /imu imu0_config:
[false, false, false, false, false, true, false, false, false, false, false,
true, true, false, false] imu0_nodelay: false imu0_differential: false
imu0_relative: true imu0_queue_size: 5 imu0_pose_rejection_threshold: 0.8
imu0_twist_rejection_threshold: 0.8
imu0_linear_acceleration_rejection_threshold: 0.8
imu0_remove_gravitational_acceleration: true dynamic_process_noise_covariance:
true process_noise_covariance: [ sample values from robot_localization github
repo] initial_estimate_covariance: [ value of 0.01 for variables set to true
in imu0_config] Here are the ROS IMU plugin settings:  true  true  100  /imu
/imu  base_imu_link  100  0.05  0 0 0  0 0 0  base_imu_link  0 0 0 0 0 0  Here
is the IMU data: header: seq: 1791 stamp: secs: 37 nsecs: 148000000 frame_id:
"base_imu_link" orientation: x: 0.0246637627368 y: -0.026593164317 z:
0.0668625611945 w: 1.02289534517 orientation_covariance:
[0.0025000000000000005, 0.0, 0.0, 0.0, 0.0025000000000000005, 0.0, 0.0, 0.0,
0.0025000000000000005] angular_velocity: x: -0.0326675653364 y:
-0.0340936938196 z: -0.0323116318276 angular_velocity_covariance:
[0.0025000000000000005, 0.0, 0.0, 0.0, 0.0025000000000000005, 0.0, 0.0, 0.0,
0.0025000000000000005] linear_acceleration: x: -0.0783367912198 y:
-0.00500801404049 z: 9.79784343093 linear_acceleration_covariance:
[0.0025000000000000005, 0.0, 0.0, 0.0, 0.0025000000000000005, 0.0, 0.0, 0.0,
0.0025000000000000005]


![Wondershare PDFelement v7.x.x Patch v3.4 By
Deltafox](//i.imgur.com/u8v9Ga1.jpg)


**[ takahiko-hasegawa-hdjp ](/takahiko-hasegawa-hdjp) ** commented  Dec 21,
2022


![Refer to caption](x1.png) Figure 1:  Block scheme of the proposed
localization architecture.


[ ![People's Blog • Germany Bans the Number
44](//thepeoplescube.com/red/download/file.php?id=57239&sid=5e19e13fd670da65c8b6b496c0630b51)
](////political6769.rssing.com/chan-78425830/article66.html#c78425830a66i1994484930)


License: arXiv.org perpetual non-exclusive license


[ ](javascript:; "Ouch") 0


[ ](javascript:;)


[ _≪_ Previous: Kalman Filter implementation for a drone. Help confirming my
sensor inputs are correct.
](//question3152.rssing.com/chan-47151955/all_p22.html#c47151955a425 "Previous
Article")


Showing article 421 to 440 of 521 in channel 47151955
Channel Details:


[ ![@matlabbe](https://avatars.githubusercontent.com/u/2319645?s=80&v=4)
](/matlabbe)


|  y  ^  k  c    a    r    t    o  =  [  X  k  Y  k  ψ  k  ]  .
superscript  subscript  ^  𝑦  𝑘  𝑐  𝑎  𝑟  𝑡  𝑜  matrix  subscript  𝑋  𝑘
subscript  𝑌  𝑘  subscript  𝜓  𝑘  \hat{y}_{k}^{carto}=\begin{bmatrix}X_{k}\\\
Y_{k}\\\ \psi_{k}\end{bmatrix}.  over^ start_ARG italic_y end_ARG
start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_c
italic_a italic_r italic_t italic_o end_POSTSUPERSCRIPT = [ start_ARG
start_ROW start_CELL italic_X start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT
end_CELL end_ROW start_ROW start_CELL italic_Y start_POSTSUBSCRIPT italic_k
end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL italic_ψ
start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] .  |
|  (4)
---|---|---|---

The measurement model of the GNSS receiver is similar to ( [ 4
](https://arxiv.org/html/2403.13452v1#S4.E4 "4 ‣ IV-C Measurement model ‣ IV
ARCHITECTURE SPECIALIZATION FOR YAPE ‣ Mobile Robot Localization: a Modular,
Odometry-Improving Approach") ) but lacks a heading measurement and needs to
take into account the displacement of the antenna mounting position with
respect to the vehicle’s center of mass, expressed here in polar coordinates
(  d  ,  α  )  𝑑  𝛼  (d,\alpha)  ( italic_d , italic_α )  :


Hello all, I am trying to get localization to work for a custom car like
robot. I am able to publish odom from wheel encoders and imu/data from my UM7
imu sensor. I would like to fuse together these two data using the [robot
localization](http://docs.ros.org/indigo/api/robot_localization/html/index.html)
package and then show it with base_link in rviz. Without proper localization
of base_link, I will not be able to run the navigation stack properly. In my
current setup, rviz is able to show forward and backward movement with
base_link; however, when I manually rotate the um7 imu sensor, it does not
reflect within rviz. I can see that the odometry/filtered topic is receiving
input from the um7 but how do i visualize this in rviz? My end goal is to
place this um7 on my custom car like robot. I want rviz to display the
base_link mimicking its real life counterpart in terms of position/orientation
and velocities (moving forward/backward, turing left/right...etc). It is to my
understanding that this is what the robot localization package is for, please
correct my understanding if i am making a mistake. Here are two videos
describing my problem: [1st
video](https://www.youtube.com/watch?v=Sa5ZqVbpd6o&feature=youtu.be) shows the
screen recording from my computer. You can see that moving forward and
backward is okay, but I do not know how to turn the base_link. [2nd
video](https://www.youtube.com/watch?v=40nO4phqiqI&feature=youtu.be) shows
what I am trying to do Below is the configuration file for the
robot_localization package: frequency: 50 sensor_timeout: 0.1 two_d_mode: true
transform_time_offset: 0.0 transform_timeout: 0.0 print_diagnostics: true
debug: false debug_out_file: /path/to/debug/file.txt publish_tf: true
publish_acceleration: false odom_frame: odom # Defaults to "odom" if
unspecified base_link_frame: base_link # Defaults to "base_link" if
unspecified world_frame: odom # Defaults to the value of odom_frame if
unspecified odom0: /odom odom0_config: [false, false, false, false, false,
true, true, true, false, false, false, true, false, false, false]
odom0_queue_size: 2 odom0_nodelay: false odom0_differential: false
odom0_relative: false odom0_pose_rejection_threshold: 5
odom0_twist_rejection_threshold: 1 imu0: /imu/data imu0_config: [false, false,
false, false, false, true, false, false, false, false, false, true, false,
false, false] imu0_nodelay: false imu0_differential: false imu0_relative: true
imu0_queue_size: 5 imu0_pose_rejection_threshold: 0.8 # Note the difference in
parameter names imu0_twist_rejection_threshold: 0.8 #
imu0_linear_acceleration_rejection_threshold: 0.8 #
imu0_remove_gravitational_acceleration: true use_control: true
stamped_control: false control_timeout: 0.2 control_config: [true, false,
false, false, false, true] acceleration_limits: [1.3, 0.0, 0.0, 0.0, 0.0, 3.4]


0.0, 0.0, 0.0, 0.0, 0.0, 0.01, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01, 0.0, 0.0,
0.0, 0.0, 0.0, 0.0, 0.01, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01] \--- ^Cheader:
seq: 633 stamp: secs: 1531127147 nsecs: 190536275 frame_id: "odom"
child_frame_id: "base_link" pose: pose: position: x: 8.16897660416 y:
-7.75282666754 z: 0.0 orientation: x: 0.0 y: 0.0 z: -0.6552952454 w:
0.755372849231 covariance: [0.375, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.375, 0.0,
0.0, 0.0, 0.0, 0.0, 0.0, 0.375, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.375, 0.0, 0.0,
0.0, 0.0, 0.0, 0.0, 0.375, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.375] twist: twist:
linear: x: 0.866949711312 y: 0.0 z: 0.0 angular: x: 0.0 y: 0.0 z:
0.0533507514654 covariance: [0.01, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01, 0.0,
0.0, 0.0, 0.0, 0.0, 0.0, 0.01, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01, 0.0, 0.0,
0.0, 0.0, 0.0, 0.0, 0.01, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01] \--- [CONFIG
FILE](https://goo.gl/vA3wXA) [LAUNCH FILE](https://goo.gl/tP4oQW)


odom1_relative: false imu0: imu/data imu0_config: [false, false, false, true,
true, true, false, false, false, true, true, true, true, true, true]
imu0_nodelay: true imu0_differential: false imu0_relative: false
imu0_queue_size: 10 imu0_remove_gravitational_acceleration: true use_control:
false process_noise_covariance: [1e-3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1e-3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1e-3, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.01, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.02, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.3,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0.03, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.03, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.03] initial_estimate_covariance:
[1.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1e-9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1e-9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1.0] navsat_transform: frequency: 30 delay: 3.0
magnetic_declination_radians: 0.0429351 # For lat/long 55.944831, -3.186998
yaw_offset: 1.570796327 # IMU reads 0 facing magnetic north, not east
zero_altitude: false broadcast_utm_transform: true publish_filtered_gps: true
use_odometry_yaw: false wait_for_datum: false My launch file:  Then, here is
my sample messages from `odometry/filtered` topic header: seq: 1593 stamp:
secs: 1432235551 nsecs: 133883715 frame_id: "odom" child_frame_id: "base_link"
pose: pose: position: x: -25.6806186578 y: -41.0579199887 z: -16.2050460107
orientation: x: 0.364113953192 y: -0.600499821833 z: -0.610551127453 w:
0.366126090078 covariance: [5001.069390243607, 1405.9635232709018,
12.89263293200848, 2.119036688494102e-06, 1.1326755032269357e-06,
3.531822011990498e-05, 1405.963523270896, 7048.953656918936,
-6.1034919043737235, -1.107525856395083e-06, 2.1428042670635376e-06,
-3.2979372797959194e-05, 12.892632932008365, -6.103491904373762,
7837.97657165255, -2.0927081487748503e-06, -7.79505181473767e-06,
2.910017471539165e-08, 2.1190366884941023e-06, -1.1075258563950824e-06,
-2.0927081487748503e-06, 0.001103250724986751, 5.157131696321912e-10,


  [ Releases  63  ](/facontidavide/PlotJuggler/releases)

[ 3.9.1: Bug fixes and more  Latest  Feb 20, 2024
](/facontidavide/PlotJuggler/releases/tag/3.9.1)

[ \+ 62 releases ](/facontidavide/PlotJuggler/releases)


#  [ what should the frame_id of "poseX" be, before use robot_localization
package? ](//question3152.rssing.com/chan-47151955/article434-live.html)


[ ](javascript:; "Share Article") [
](//www.rssing.com/contact.php?r=o6&u=%2F%2Fquestion3152.rssing.com%2Fchan-47151955%2Farticle426-live.html
"Article Support")


* Product


**[ takahiko-hasegawa-hdjp ](/takahiko-hasegawa-hdjp) ** commented  Dec 18,
2022  •


#  [ What amount of odometry drift would be considered having an accurate
base? ](//question3152.rssing.com/chan-47151955/article433-live.html)


Hello, I've just recently started trying to implemented the robot_localization
node, and I'm having trouble understanding what all to enable, and what I
should be expecting back. Here is my current setup: * I have a robot which
reports its odometry as (x, y, yaw) based on ticks from the wheel's encoder.
It also has an IMU that is reporting (roll, pitch, yaw). * I am attempting to
fuse the (x, y, yaw) odometry information with the (yaw) information from the
IMU. * I haven't really tweaked covariances or anything yet, I am mostly using
the default values from the template. What I am not understanding: * The wheel
odometry is inherently going to be incorrect due to wheel slippage, so while
the distance the robot traveled is still pretty accurate, the odometry value
for yaw is not to be trusted after a long time. But x, y for odometry are
calculated using yaw, so I guess those would be wrong as well. Am I supposed
to be taking the result of the robot_localization output and "resetting" the
state of the odometry (specifically yaw) of the wheels? I'm not sure if this
is something the node handles internally or not. * My main concern is that
odometry reports being at (5, 5, 45 degrees) after a bit of movement, and the
IMU reports yaw is actually 180. Then the X, Y that the odometry reported
would also be wrong. How does this node handle a situation like that? Would it
somehow understand to adjust the X, Y values based on the IMU yaw reading
being the correct one? * Should I be passing more information to the node? I
am only passing x, y, yaw (odometry), and yaw (IMU). I can't really understand
how it can take that information and correct the x, y position relative to
what the IMU is saying. If the IMU and odometry disagree entirely on the yaw
value, what happens? I.e. what happens to the X and Y values when my odometry
says I'm turned 45 degrees and the IMU says I'm at 180 degrees? * I saw
somewhere that I shouldn't be fusing X, Y of the odometry, instead I should
fuse veloicty_x, velocity_y. But in regards to my first bullet point in this
list, wouldn't the velocities be subject to the same issues as position? The
yaw known by odometrty would be used to calculate the velocities as well, thus
giving the same error as the position if the yaw is wrong. * When I look at
the transform in rviz, I notice that if I lift the robot up off the floor and
turn it 180 degrees, the transform does not change. It's almost as if it's
completely ignoring the IMU yaw position and setting itself purely with the
odometry information. Why would I not see a change in the transform if I pick
up the robot and rotate it to change the IMU value? I don't really have much
experience with sensor fusion, so I'm sure some of these questions will need
more explanation, which I'd be happy to provide. My config file: frequency: 30
sensor_timeout: 0.1 two_d_mode: true transform_time_offset: 0.0
transform_timeout: 0.0 print_diagnostics: true publish_tf: true
publish_acceleration: false odom0: odom odom0_config: [true, true, false,


Sorry, something went wrong.


Search or jump to...


#  [ navSat with hectorMapping for outdoor navigation
](//question3152.rssing.com/chan-47151955/article427-live.html)


An important side-effect of this design choice is that the observability
properties of the system change between one iteration and the following one.
Indeed, in all the iterations where no position measurements are available,
the linearized measurement matrix would result in being


![Refer to caption](extracted/5483575/yape.png) Figure 2:  Yape, the
deployment target of the developed localization algorithm.


[ installer ](/facontidavide/PlotJuggler/tree/main/installer "installer")

|


August 31, 2018, 4:15 am


August 22, 2018, 7:18 am


[ _≫_ Next: Indoor localization with 2D lidar and IMU
](//question3152.rssing.com/chan-47151955/all_p22.html#c47151955a435 "Next
Article")


Title:


[ RSSing>> ](//www.rssing.com/index.php) [ Latest
](//www.rssing.com/index.php?l=l) [ Popular ](//www.rssing.com/index.php?l=p)
[ Top Rated ](//www.rssing.com/index.php?l=r) [ Trending
](//www.rssing.com/index.php?l=t)


![Royals by Lorde – 3-string Open G “GDG”– Tablature and Chords for Cigar Box
Guitar](//www.cigarboxguitar.com/wp-content/uploads/2015/01/Royals-by-Lorde-
PDF-Screenshot-227x300.jpg)


#  [ Kalman Filter implementation for a drone. Help confirming my sensor
inputs are correct.
](//question3152.rssing.com/chan-47151955/article425-live.html)


####  Latest Images


[ ](//www.rssing.com/index.php?zw=2123 "Home") [ $ ](javascript:; "MoMoney")


######  Abstract


[ plotjuggler_app ](/facontidavide/PlotJuggler/tree/main/plotjuggler_app
"plotjuggler_app")

|

|


![Saline County Jail Booking Activity – Saturday, May
30th](//thepost.s3.amazonaws.com/wp-content/uploads/2015/05/Weis-Sheets-
Ashley-Jane-300x203.jpg)


August 9, 2018, 12:34 pm


[ ](javascript:;)


OK, now i understand how bufferedData_ is set.


###  V-C  Loss of all absolute pose sources


###  [ Who Is Junior Pope?| Biography| Profile| History Of Nollywood Actor
“Pope Obumneme Odonwodo” Popularly known as “Junior Pope”
](////daily12844.rssing.com/chan-58023368/article3450.html#c58023368a3450i2041549972)


###  [ First Pictures of the Eclipse ! ! !
](////political6691.rssing.com/chan-78391714/article69.html#c78391714a69i477360060)


  Sponsor this project

  *

  * [ https://www.paypal.me/facontidavide ](https://www.paypal.me/facontidavide)

[ Learn more about GitHub Sponsors ](/sponsors)


Sign up for GitHub


By clicking “Sign up for GitHub”, you agree to our [ terms of service
](https://docs.github.com/terms) and [ privacy statement
](https://docs.github.com/privacy) . We’ll occasionally send you account
related emails.


Beside rtabmap, if you have wheel odometry and IMU, you can use [
robot_localization
](http://docs.ros.org/en/noetic/api/robot_localization/html/index.html) or [
robot_pose_ekf ](http://wiki.ros.org/robot_pose_ekf) to fuse them.

---

All reactions


[ ↂ
](////myanmar19.rssing.com/chan-7313589/article889.html#c7313589a889i784670228
"Last Day of Yangon Thingyan Festival Celebration 2014")


    * [ Topics ](/topics)
    * [ Trending ](/trending)
    * [ Collections ](/collections)


[ ](javascript:; "Share Page")


September 7, 2018, 5:33 pm


wheel and the center of mass R. With the rotation speeds ˙q,
the pose change
x˙,y˙,θ˙
T can be calculated as
⎡
⎣
x˙
y˙
θ˙
⎤
⎦ =
⎡
⎣
2
3 · cos(θ +δ) −2
3 · cos(θ −δ) 2
3 sinθ
2
3 ·sin(θ +δ) −2
3 ·sin(θ −δ) −2
3 cosθ
1
3Lw
1
3Lw
1
3Lw
⎤
⎦ · q˙,
(1)
see [6]. The parameter δ is the wheel orientation in the robot’s
coordinate system (30◦ in our case). To estimate a global pose,
all pose changes
x˙,y˙,θ˙
T need to be integrated from a given
starting point (x0, y0,θ0).
B. Visual Localization
There are many methods for visual localization [7], [8],
[9], [10]. Vision allows an accurate global localization with
low cost hardware. However, high computational efforts for


[ ](javascript:; "Ouch") 0


[ .pre-commit-config.yaml ](/facontidavide/PlotJuggler/blob/main/.pre-commit-
config.yaml ".pre-commit-config.yaml")

|

|


modular and effortlessly expandable to incorporate new localization sources,
both physical sensors and off-the-shelf algorithms;


September 11, 2018, 10:11 am


[ contributors.txt ](/facontidavide/PlotJuggler/blob/main/contributors.txt
"contributors.txt")

|

|


[ introlab ](/introlab) /  **[ rtabmap_ros ](/introlab/rtabmap_ros) ** Public


The proposed algorithm has been extensively tested in field trials in which
the robot autonomously navigated public sidewalks. The experiment reported in
this paper was conducted in the spacious courtyard of the Niguarda Hospital (
ASST Grande Ospedale Metropolitano Niguarda  ) in Milan during test runs of
the Budd-e project  [ [ 19 ](https://arxiv.org/html/2403.13452v1#bib.bib19) ]
. The traversed courtyard is a vast area with heavy pedestrian and vehicular
traffic, presenting numerous buildings and green areas. Figure [ 4
](https://arxiv.org/html/2403.13452v1#S5.F4 "Figure 4 ‣ V VALIDATION RESULTS ‣
Mobile Robot Localization: a Modular, Odometry-Improving Approach") shows the
aerial view of the robot trajectory.


Milestone


[ ](javascript:; "Like") 0


[ ](//www.rssing.com/index.php "Home")


Copy link


  facontidavide/PlotJuggler

This commit does not belong to any branch on this repository, and may belong
to a fork outside of the repository.

main

[ Branches  ](/facontidavide/PlotJuggler/branches) [ Tags
](/facontidavide/PlotJuggler/tags)

[ ](/facontidavide/PlotJuggler/branches) [ ](/facontidavide/PlotJuggler/tags)

Go to file

Code


None yet


    * [ Learning Pathways  ](https://resources.github.com/learn/pathways/)
    * [ White papers, Ebooks, Webinars  ](https://resources.github.com/)
    * [ Customer Stories ](/customer-stories)
    * [ Partners  ](https://partner.github.com/)


[ _≫_ Next: Robot_localization result is unpredictable
](//question3152.rssing.com/chan-47151955/all_p22.html#c47151955a428 "Next
Article")


##  VI  CONCLUSIONS


arXiv:2403.13452v1 [cs.RO] 20 Mar 2024


The architecture is also capable of handling asynchronous, multi-rate and
unavailable measurements by adapting the estimated state based on time-varying
observability conditions and can be easily ported to different vehicles and
setups.


  Repository files navigation

  * README
  * MPL-2.0 license

[
![PlotJuggler](/facontidavide/PlotJuggler/raw/main/docs/plotjuggler3_banner.svg)
](/facontidavide/PlotJuggler/blob/main/docs/plotjuggler3_banner.svg)

[
![windows](https://github.com/facontidavide/PlotJuggler/actions/workflows/windows.yaml/badge.svg)
](https://github.com/facontidavide/PlotJuggler/actions/workflows/windows.yaml)
[
![ubuntu](https://github.com/facontidavide/PlotJuggler/actions/workflows/ubuntu.yaml/badge.svg)
](https://github.com/facontidavide/PlotJuggler/actions/workflows/ubuntu.yaml)
[
![macos](https://github.com/facontidavide/PlotJuggler/actions/workflows/macos.yaml/badge.svg)
](https://github.com/facontidavide/PlotJuggler/actions/workflows/macos.yaml) [
![ROS1](https://github.com/facontidavide/PlotJuggler/workflows/ros1/badge.svg)
](https://github.com/facontidavide/PlotJuggler/actions?query=workflow%3Aros1)
[
![ROS2](https://github.com/facontidavide/PlotJuggler/workflows/ros2/badge.svg)
](https://github.com/facontidavide/PlotJuggler/actions?query=workflow%3Aros2)
[
![Tweet](https://camo.githubusercontent.com/a00d957c85627f2862ae61b59289e25f875e9ae40a716efdf5c3e032d6b8f863/68747470733a2f2f696d672e736869656c64732e696f2f747769747465722f75726c2f687474702f736869656c64732e696f2e7376673f7374796c653d736f6369616c)
](https://twitter.com/intent/tweet?text=I%20use%20PlotJuggler%20and%20it%20is%20amazing%0D%0A&url=https://github.com/facontidavide/PlotJuggler&via=facontidavide&hashtags=dataviz,plotjuggler,GoROS,PX4)

**Gold Sponsor** : [ Greenzie ](https://www.greenzie.com/)


Hi, I am using robot_localization. I'm using the typical setup EKF1 fuses
encoders + IMU EKF2 fuses encoders + IMU + GPS My question is about encoder
covariances. The robot_localization documentation says >\- If the odometry
provides both position and linear velocity, fuse the linear velocity. \- If
the odometry provides both orientation and angular velocity, fuse the
orientation. Following this advice I am fusing the orientation that the wheel
encoders report, but I don't know what to set the encoders pose covariance to.
Logically I would think the pose covariance should grow every time you move.
It would just keep growing and growing without bound. But when I look at the
example pose covariance diagonals of the diff_drive_contoller package it says
to use static values >pose_covariance_diagonal: [0.001, 0.001, 1000000.0,
1000000.0, 1000000.0, 0.03] I'm very confused because diff_drive_controller
seems like a commonly used package but those covariances don't make sense to
me.


[ ↂ
](////brokerage105.rssing.com/chan-6647811/article3361.html#c6647811a3361i1214292647
"Robert Lyn Nelson - ")


August 13, 2018, 11:45 am


[ ](https://github.com/)


No branches or pull requests


Search


Skip to content


which enables the improvement of odometrical data by estimating model
uncertainties;