Navisim doesn't receive linear velocity from DifferentialBase_REB

Hello,
We are trying to create simulation with our own robot model, as example i used carter_warehouse_with_forklifts.
I have added all the components except com link ( it looks like it’s only for carter stabilization and not necessary, as it applies only limits ).
So robot components are: 2 Lidars, Imu, 4 castor wheels, 2 main wheels.
In the root i created ArticulatedRoot Physics element, linked each castor wheel to castor pivot with RevoluteJoints with Articulation API, then did same for castor pivot and main body, same for main wheels adding Drive component there, added Articualtion joint for imu. Tried to place all joints to connections where it should be.
Linked Lidars from isaac robotics to Lidar_REB, linked imu to RigidBodiesSync_REB, linked DifferentialBase_REB to body and set left and right wheels in according fields, decreased potential gain to 3.

When i’m connecting navsim with same environment as carter, just with our robot model - system receives tiny values response from simulation and thinks that robot is not moving in terms of linear velocity ( when it rotates - it correctly receives angular velocity ) , PhysX linear velocity visualization shows that it’s being produced, also I wanted to check with Velocity data visualization tool, but for some reason it doesn’t show any data even with Carter.

Hi asakhon-AITHEON,

Sorry for my late reply, do you still have this problem?

Kindly,
Liila

Hi @ltorabi, yes, this issue still present and i don’t have any clue why…
I tried to create our robot usd with different approaches, but in the end nothing changes.
Sometimes when robot is moving super slow it gives some sufficient feedback to the system that allows it to reflect this in IsaacSDK showing that robot moved on an inch, but this movement speed not something usable as well as on random walk goals still being abandoned because this kind of movement still being treated as stationary.
This is the main question that i’m interested in and we’re stuck with solving problem.

Hi @asakhon-AITHEON can you send a screenshot of the REB_DifferentialBase component?

@Hammad_M,


I tried to change values there but still no changes…
Proportional gain makes robot move faster, but it doesn’t change state feedback.
It’s same as for Carter, relationship is to main usd container with ArticulationAPI.

Changed Solver iterations count for position and velocity accordingly.

Version of isaac-sim-headless is 2020.2.28133

@asakhon-AITHEON we released isaac sim 2020.2.2 today that has some changes to the REB differential base component which should allow you to set the wheel base and radius

@Hammad_M, i see, but wheel base and radius affects only angular velocity…
My problem is linear velocity which doesn’t give correct feedback to the system i.e. robot can pass half of the map in Isaac sim, but in Isaac SDK WebView it will show no changes in robot pose, because linear velocity is not being correctly provided to the system.

How it’s calculated? What actually affects it?

@Hammad_M, seems like i have solved this problem.
After setting values for robotFront like (1, -100, 0 ) linear velocity started to come.
image
Could you please explain this?

-100 was providing sufficient feedback, but it wasn’t correct.

Once i set robotFront (1, -2, -1 ) it became super good :)

Also for some reason when i had physxScene:solverType set to TGS - caster wheels were starting to produce velocity once REB application was started, so i changed it to PGS.

robot front is used to define the forward direction of the robot.
In general it should be a normalized vector but if you set its values to > 1 it will scale the output velocity by that amount.

I suspect that it is a unit issue, the units for the REB component are in meters, but the sim scene is in cm by default so that 100x scale factor might be explained by that.