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
It seems like both the ignition::gazebo::systems::DiffDrive as well as gz::sim::systems::OdometryPublisher in the template are publishing odometry messages. In case of this template, the diff drive is publishing with child frame id as chassis while the OdometryPublisher is publishing with child frame id as diff_drive. And both of them are being piped into the same topic over gz bridge (both publish by default to "/model/diff_drive/odometry" in gz and both go to "/diff_drive/odometry" over the birdge)
I was wondering what's the reason for having this duplication?
If I simply give as input a twist message with only a positive x, I see that in case of the template, the values are (almost) the same.
but I noticed that in my own robot (with different physical properties) the diff drive plugin values are slightly different than the ones of the OdometryPublisher. I believe Odometry publisher uses ground truth positions from gazebo. And in that case the difference becomes much more evident between the two odometry messages.
As a solution I simply removed the OdometryPublisher plugin and used only diff drive plugin for both odometry as well as the odom tf publishing.
Personally I would suggest to use only one source of Odometry. Either diff drive or odometry publisher plugin. Or keep both plugins but pipe the Odometry messages into different topics in both Gazebo as well as over the birdge. It may also help to be explicit about the fact that odometry publisher has ground truth information while diff drive can include physical errors such as wrong wheel radius, wheel separation or possible wheel slips.
Hello,
It seems like both the
ignition::gazebo::systems::DiffDrive
as well asgz::sim::systems::OdometryPublisher
in the template are publishing odometry messages. In case of this template, the diff drive is publishing with child frame id as chassis while the OdometryPublisher is publishing with child frame id as diff_drive. And both of them are being piped into the same topic over gz bridge (both publish by default to "/model/diff_drive/odometry" in gz and both go to "/diff_drive/odometry" over the birdge)I was wondering what's the reason for having this duplication?
If I simply give as input a twist message with only a positive x, I see that in case of the template, the values are (almost) the same.
but I noticed that in my own robot (with different physical properties) the diff drive plugin values are slightly different than the ones of the OdometryPublisher. I believe Odometry publisher uses ground truth positions from gazebo. And in that case the difference becomes much more evident between the two odometry messages.
As a solution I simply removed the OdometryPublisher plugin and used only diff drive plugin for both odometry as well as the odom tf publishing.
Personally I would suggest to use only one source of Odometry. Either diff drive or odometry publisher plugin. Or keep both plugins but pipe the Odometry messages into different topics in both Gazebo as well as over the birdge. It may also help to be explicit about the fact that odometry publisher has ground truth information while diff drive can include physical errors such as wrong wheel radius, wheel separation or possible wheel slips.
Environment
The text was updated successfully, but these errors were encountered: