I am very new to Isaac Sim and robotic fields. I do not really understand where the error comes from and how to fix it. I checked forum posts but could not understand the solution to my problem.
I am using Isaac Sim 2023.1.1. I am currently trying to use Isaac Sim to simulate a robot called TIAGo robot (Robots/TIAGo - ROS Wiki). In my case, the Isaac Sim is launched using a Python script. One of the goals is to move the robot on several custom ground planes (bumpy surface, ramp surface, etc). The robot itself is a mobile robot with differential drive base.
First, I imported the robot’s URDF and made some changes before saving it in USD. I made the following changes:
Changed the Axis of “Revolute Joint” to Y for wheel_left_joint and wheel_right_joint
Set Target Velocity in “Angular Drive” to 200 for both wheel_left_joint and wheel_right_joint to make the wheels rotate. But after changing the target velocity, both wheels do not move at the same speed. The velocity changes within a certain range, but the range is quite large. As shown in the attached screenshots, the wheel_left_joint tends to have lower velocity range and the wheel_right_joint a higher one. Therefore, when I load the USD file in the Python script, the robot does not move straight forward even if it is moving on a straight plane.
I thought the open arm might play a role, and I should simulate the robot in the tucked arm position anyway, hence the further editing of the USD file. I tried to simply edit the USD by removing the hand since I do not need it, and I tried to manually tuck in the arm by grouping some of the links and rotating them using “Pivot Tool”. But when I load this further edited USD file in the Python script, the robot moves uncontrollably and then flies away, the velocity goes to NaN.
I got this error:
[Error] [omni.physx.plugin] PhysX error: Illegal BroadPhaseUpdateData
, FILE /buildAgent/work/eb2f45c4acc808a0/physx/source/lowlevelaabb/src/BpBroadPhaseABP.cpp, LINE 4024
I also got this warning for all links:
[Warning] [omni.physx.plugin] Invalid PhysX transform detected
Could anyone help me, how can I successfully move my robot with tucked arm? I can also send the USD files if needed :)
I really appreciate any advice and guidance. Thank you so much in advance!
Yes I also found that post from the forum, which is the same problem that is causing my robot to fly away. However, I could not understand the solution to how I could minimize the speed range. And I set 200 because when I set the target velocity with low value, the speed of one of the wheels does not converge around the target velocity. In summary these two are my main problems:
The speed for each wheel joint does not converge around the target velocity. Is there any way to make both wheel joints stay consistent with the same velocity value as set in the target velocity? → this problem occurred with the open-arm robot and tucked arm robot
The speed range is huge, causing my tucked arm robot to fly away even though the target velocity is set as 0. How can I minimize the speed range? → this problem occurred particularly with the tucked arm robot
I will explain the problem in more detail below.
For the open-arm robot:
At first, I was following a tutorial that uses 200 as the target velocity (Assemble a Simple Robot — Omniverse IsaacSim latest documentation). So when I tried it in my robot with an open arm, I was just trying out several velocities and found that setting the target velocity to 200 makes the open-arm robot move smoothly. When I set the target velocity to 20, each wheel joint stays quite consistent (the velocity range is only around 0.5). As shown in the following screenshots, the wheel_left_joint velocity does stay consistent around 20, but the problem when the target velocity is set to 20 is that the wheel_right_joint velocity stays consistent around 28 instead of 20.
For the tucked arm robot:
I did not even set any target velocity, so the target velocity is simply 0. But as shown in the screenshot below, it flies away and the velocity is very large (in the screenshot it reaches around 645). At the start of the simulation, I got some errors and warnings:
[Error] [omni.physx.plugin] PhysX error: Illegal BroadPhaseUpdateData
, FILE /buildAgent/work/eb2f45c4acc808a0/physx/source/lowlevelaabb/src/BpBroadPhaseABP.cpp, LINE 4024
[Warning] [omni.kit.notification_manager.manager] PhysX error: Illegal BroadPhaseUpdateData
[Warning] [omni.kit.notification_manager.manager] PhysX error: Illegal BroadPhaseUpdateData
[Warning] [omni.kit.notification_manager.manager] PhysX error: Illegal BroadPhaseUpdateData
[Warning] [omni.kit.notification_manager.manager] PhysX error: Illegal BroadPhaseUpdateData
[Warning] [omni.kit.notification_manager.manager] PhysX error: Illegal BroadPhaseUpdateData
Here are the 2 USD files of the open-arm and tucked arm robot: tiago.zip (3.7 MB)
Could you please tell me what might be wrong? Thank you so much in advance!
If the incorrect inertia values for the robot is the case, could you tell me how I could change these values? So far I did not change anything related to the inertial values, I got it imported from the provided URDF file: tiago.zip (11.6 KB)
I now know why the robot is not moving forward at all. The stiffness and damping values of the caster joints are not zero, so they are acting as resistance.
I confirmed that some links had invalid inertia.
But the robot did not fly away with Isaac Sim 4.1.0.
I think the robot flying is bug in version 2023.1.1.
I recommend that you should use Isaac Sim 4.1.0 : latest version.