Robot not stopping in isaacsim while running ROS package

Please provide all relevant details below before submitting your post. This will help the community provide more accurate and timely assistance. After submitting, you can check the appropriate boxes. Remember, you can always edit your post later to include additional information if needed.

Isaac Sim Version - 4.1.0

Operating System - Ubuntu 22.04

Topic Description

I am running my robot in Isaac Sim using external ROS package. I am coding the robot movements in Python 3.10 in a client-server format. I have created an initial action graphs with camera and IMU, from which I am taking odometry data (positions and velocities of the robot). As per the dynamics of the robot, I have written a code that makes it move from point A to point B (I cannot post the complete code here due to privacy issues). The stop code for the robot goes as
if dist_error < 0.05 and abs(ang_error) < 0.01:
success = True
goal_handle.abort()
self.get_logger().info(“Goal reached!”)
The robot tries to reach any given goal, but does not stop at the goal. Is there any issue with the stop code? Or can anyone please suggest methods for moving robot from point A to point B and stop at B with Isaac sim - ROS interface?

Additional information

server code structure - I am taking the x and y positions of the robot with \odom topic from action graph. I convert the x and y coordinates in the norm of distance from point B (Point A = (0,0)) and angle turned (theta = atan2 (y,x)). Then I use the above stop logic to stop the robot once it reaches the point B. Proportional control is used on the distance and angle error.

If you use “On Playback Tick” in action graph, the “/odom” topic is published in accordance with the fps.
You can check the topic frequency with below command.

ros2 topic hz /odom

If the topic is published slowly, the robot may not stop at the goal.
Using “On Physics Step” instead of “On Playback Tick” may be an improvement.
Physics — Omniverse IsaacSim

Hi @hijikata_M, I used the ‘on physics step’, but it still doesn’t stop.

Is the /tf location information updated correctly?

I have created an initial action graphs with camera and IMU, from which I am taking odometry data (positions and velocities of the robot).

Camera image is updated in accordance with the fps.
I think it needs to be a fps independent position update.