Hi all,
This is an issue I had tacked on to the end of a previous issue of mine (see here for original context https://devtalk.nvidia.com/default/topic/1057359/simulation/issues-getting-accurate-odometry-from-isaac-sim/) that I felt deserved its own issue as I am still confused as to how this has happened.
My basic problem is as follows. I am trying to get the ground-truth position of the robot at any given time when it exists within the simulator. I have thought to do this through using worldTrobot as accessed via the PoseTree. From how I understood things, the PoseTree was supposed to be the “final say” in the relative poses for robots, their sensor arrays and the world therefore I would be able to get my ground-truth locations.
First off am I incorrect in my understanding of things as stated above?
Secondly, through testing my system and printing the output of worldTrobot, I am seeing minute but constant changes in the pose over time when the robot is kept completely stationary (using the joystick for movement and not touching the joystick at all). Is this to be expected and if so why? I thought that the simulator would be able to give absolute ground-truth accuracy.
It is also worth noting that things like robotTleft_camera are completely stable.
I would be really appreciative of any help that can be provided.
Details of setup used above
Testing in Hospital Map with personalized code that should not move the robot at all (entirely dependent on joystick controls).
Code for getting robot pose (print pose is simplistic code written to visualize pose):
std::optional<Pose3d> temp_robot_pose = node()->pose().tryGet("world", "robot", node()->clock()->timestamp());
if (temp_robot_pose){
std::cout << "--------------------------------------------------------------" << std::endl;
print_pose(*temp_robot_pose);
std::cout << "==============================================================-" << std::endl;
}
worldTRobot at 0:
Translation: {X: 48.3276, Y: 5.37442, Z: 0}
RPY: {Roll: -0, Pitch: 0, Yaw: -0.131987}
Quaternion: {W: 0.997823, X: -0, Y: -0, Z: -0.0659456}
worldTRobot at approx:
Translation: {X: 48.2667, Y: 5.37686, Z: 0}
RPY: {Roll: -0, Pitch: 0, Yaw: -0.114357}
Quaternion: {W: 0.998366, X: -0, Y: -0, Z: -0.0571474}
Trends seen above (e.g. translation X decreasing) continued as time went on.