-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Description
-
Which TurtleBot3 platform do you use?
- Burger
- Waffle
- Waffle Pi
-
Which ROS is working with TurtleBot3?
- ROS 1 Kinetic Kame
- ROS 1 Melodic Morenia
- ROS 1 Noetic Ninjemys
- ROS 2 Dashing Diademata
- ROS 2 Eloquent Elusor
- ROS 2 Foxy Fitzroy
- etc (Please specify your ROS Version here)
-
Which SBC(Single Board Computer) is working on TurtleBot3?
- Intel Joule 570x
- Raspberry Pi 3B+
- Raspberry Pi 4
- etc (Please specify your SBC here)
-
Which OS you installed on SBC?
- Raspbian distributed by ROBOTIS
- Ubuntu MATE (16.04/18.04/20.04)
- Ubuntu preinstalled server (18.04/20.04)
- etc (Please specify your OS here) Ubuntu 20.04.2 LTS
-
Which OS you installed on Remote PC?
- Ubuntu 16.04 LTS (Xenial Xerus)
- Ubuntu 18.04 LTS (Bionic Beaver)
- Ubuntu 20.04 LTS (Focal Fossa)
- Windows 10
- MAC OS X (Specify version)
- etc (Please specify your OS here)
-
Specify the software and firmware version(Can be found from Bringup messages)
- Software version: [x.x.x]
- Firmware version: [x.x.x]
-
Specify the commands or instructions to reproduce the issue.
- All the commands from the quickstart guide, until the bringup, using the Noetic tab
ros2 launch turtlebot3_bringup robot.launch.py
I'm trying to collect odometry data as well as measurements (with a camera that's separate from what's provided in the turtlebot). I collect the odometry data by subscribing to the /odom topic which is of type nav_msgs/msg/Odometry, with a geometry_msgs/msg/PoseWithCovariance field that has the 36 entry covariance. However, it's always zero no matter how I move the robot. I also disabled IMU to make it accumulate drift more with ros2 param set /diff_drive_controller odometry.use_imu False, but it still gives 0 covariances.
As an aside, I had an issue of very large odometry values (in the magnitude of 10e204) which is the same as here and confirmed here. Instead of installing the new OpenCR firmware like in this latter issue, I fixed the issue that was recommended by another user by adding these lines and these lines to odometry.cpp and this and this to odometry.hpp, and then use this command ros2 topic pub -1 /pose_relocalization geometry_msgs/Point. Essentially this manually sets all 0's to the robot's initial position and it fixed the issue. I'm certain this shouldn't affect covariance as I don't modify anything other than the initial position with this command.
I was wondering how I could set these covariance values as I want to derive information matrices for consecutive odom poses. Could I make calculations based off the motion model for odometry? And would the off-diagonals be zeros?
Thanks