Wind Force Field: PhysX error: PxArticulationLink::addForce: Articulation link must be in a scene

Isaac Sim Version

4.2.0

Operating System

Ubuntu 22.04

GPU Information

  • Model: NVIDIA GeForce RTX 4080 Laptop GPU
  • Driver Version: 550.107.2

Topic Description

Detailed Description

Hi everyone, new to Isaac Sim here. I am trying to understand how to apply different force fields. I’m particularly interested in force fields relevant to Drone movement such as Drag and Wind. (Force Fields — Omniverse Extensions latest documentation)

I have a simple hexcopter model with 6 Revolute joints and 1 Fixed Joint. I imported this asset using the URDF importer. The movement of the propellers (for now modeled as propeller disks) is controlled by velocity (Target Velocity: 100 , Damping: 1e4). I have also added an Articulation Velocity Controller.

In the absence of the wind force field, there are no errors and everything is normal. However, once I add in the Wind Force Field, I get continuous errors from PhyX.

Steps to Reproduce Simple Propeller Movement

  1. Create Physics Scene
  2. Create Ground Plane
  3. Import hexcopter
  4. Set Target velocity and damping for all 6 revolute joints
  5. Add velocity controller, target velocity for all 6 joints starts as 50 and then I vary it
    (Add more steps as needed)

Steps to Reproduce Wind Force Field

  1. Add wind force field to the World prim

  2. Wind Force Field Settings as follows:

  3. Angular Drive Settings as follows:

  4. JointCommandArray in Velocity Controller:

  5. Press play

Error Messages

I see the propeller disks moving, however there seems to no distinct effects of the force field. I’m also getting the following errors which eventually cause the simulation to be force stopped due to too many PhysX errors.

2024-10-23 19:39:46 [73,087ms] [Warning] [omni.usd] Unexpected reference count of 2 for UsdStage 'anon:0x210e7120:World0.usd' while being closed in UsdContext (this may indicate it is still resident in memory).
2024-10-23 19:39:46 [73,253ms] [Warning] [omni.hydratexture.plugin] '/Render/OmniverseKit/HydraTextures/omni_kit_widget_viewport_ViewportTexture_0' is not a Usd.RenderProduct and cannot be used, reseting to '/Render/OmniverseKit/HydraTextures/omni_kit_widget_viewport_ViewportTexture_0'
2024-10-23 19:46:32 [479,460ms] [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addTorque: Articulation link must be in a scene., FILE /builds/omniverse/physics/physx/source/physx/src/NpArticulationLink.cpp, LINE 260
2024-10-23 19:46:32 [479,460ms] [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addTorque: Articulation link must be in a scene., FILE /builds/omniverse/physics/physx/source/physx/src/NpArticulationLink.cpp, LINE 260
2024-10-23 19:46:32 [479,460ms] [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addTorque: Articulation link must be in a scene., FILE /builds/omniverse/physics/physx/source/physx/src/NpArticulationLink.cpp, LINE 260
2024-10-23 19:46:32 [479,460ms] [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addTorque: Articulation link must be in a scene., FILE /builds/omniverse/physics/physx/source/physx/src/NpArticulationLink.cpp, LINE 260
2024-10-23 19:46:32 [479,460ms] [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addTorque: Articulation link must be in a scene., FILE /builds/omniverse/physics/physx/source/physx/src/NpArticulationLink.cpp, LINE 260
2024-10-23 19:46:32 [479,460ms] [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addForce: Articulation link must be in a scene., FILE /builds/omniverse/physics/physx/source/physx/src/NpArticulationLink.cpp, LINE 241
2024-10-23 19:46:32 [479,460ms] [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addForce: Articulation link must be in a scene., FILE /builds/omniverse/physics/physx/source/physx/src/NpArticulationLink.cpp, LINE 241
2024-10-23 19:46:32 [479,460ms] [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addForce: Articulation link must be in a scene., FILE /builds/omniverse/physics/physx/source/physx/src/NpArticulationLink.cpp, LINE 241
2024-10-23 19:46:32 [479,460ms] [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addForce: Articulation link must be in a scene., FILE /builds/omniverse/physics/physx/source/physx/src/NpArticulationLink.cpp, LINE 241
2024-10-23 19:46:32 [479,460ms] [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addForce: Articulation link must be in a scene., FILE /builds/omniverse/physics/physx/source/physx/src/NpArticulationLink.cpp, LINE 241
2024-10-23 19:46:32 [479,460ms] [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addTorque: Articulation link must be in a scene., FILE /builds/omniverse/physics/physx/source/physx/src/NpArticulationLink.cpp, LINE 260
2024-10-23 19:46:32 [479,460ms] [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addForce: Articulation link must be in a scene., FILE /builds/omniverse/physics/physx/source/physx/src/NpArticulationLink.cpp, LINE 241
2024-10-23 19:46:33 [479,683ms] [Warning] [omni.kit.notification_manager.manager] PhysX error: PxArticulationLink::addForce: Articulation link must be in a scene.
2024-10-23 19:46:33 [479,683ms] [Warning] [omni.kit.notification_manager.manager] PhysX error: PxArticulationLink::addForce: Articulation link must be in a scene.
2024-10-23 19:46:33 [479,683ms] [Warning] [omni.kit.notification_manager.manager] PhysX error: PxArticulationLink::addForce: Articulation link must be in a scene.

Screenshots or Videos

Screen recording -

After this, my laptop hangs up and I have no choice but to shut down using the power button.

Additional Information

What I’ve Tried

  1. Made sure the drone was imported correctly
  2. Tried propeller with and without wind force field to make sure applying the force field was the root of the issue.
  3. Tried the same steps with an Isaac Sim Asset ( Isaac Assets > Robots > Crazy Flie). Getting the following errors:
2024-10-23 19:39:46 [73,087ms] [Warning] [omni.usd] Unexpected reference count of 2 for UsdStage 'anon:0x210e7120:World0.usd' while being closed in UsdContext (this may indicate it is still resident in memory).
2024-10-23 19:39:46 [73,253ms] [Warning] [omni.hydratexture.plugin] '/Render/OmniverseKit/HydraTextures/omni_kit_widget_viewport_ViewportTexture_0' is not a Usd.RenderProduct and cannot be used, reseting to '/Render/OmniverseKit/HydraTextures/omni_kit_widget_viewport_ViewportTexture_0'
2024-10-23 19:46:32 [479,460ms] [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addTorque: Articulation link must be in a scene., FILE /builds/omniverse/physics/physx/source/physx/src/NpArticulationLink.cpp, LINE 260
2024-10-23 19:46:32 [479,460ms] [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addTorque: Articulation link must be in a scene., FILE /builds/omniverse/physics/physx/source/physx/src/NpArticulationLink.cpp, LINE 260
2024-10-23 19:46:32 [479,460ms] [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addTorque: Articulation link must be in a scene., FILE /builds/omniverse/physics/physx/source/physx/src/NpArticulationLink.cpp, LINE 260
2024-10-23 19:46:32 [479,460ms] [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addTorque: Articulation link must be in a scene., FILE /builds/omniverse/physics/physx/source/physx/src/NpArticulationLink.cpp, LINE 260
2024-10-23 19:46:32 [479,460ms] [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addTorque: Articulation link must be in a scene., FILE /builds/omniverse/physics/physx/source/physx/src/NpArticulationLink.cpp, LINE 260
2024-10-23 19:46:32 [479,460ms] [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addForce: Articulation link must be in a scene., FILE /builds/omniverse/physics/physx/source/physx/src/NpArticulationLink.cpp, LINE 241
2024-10-23 19:46:32 [479,460ms] [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addForce: Articulation link must be in a scene., FILE /builds/omniverse/physics/physx/source/physx/src/NpArticulationLink.cpp, LINE 241
2024-10-23 19:46:32 [479,460ms] [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addForce: Articulation link must be in a scene., FILE /builds/omniverse/physics/physx/source/physx/src/NpArticulationLink.cpp, LINE 241
2024-10-23 19:46:32 [479,460ms] [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addForce: Articulation link must be in a scene., FILE /builds/omniverse/physics/physx/source/physx/src/NpArticulationLink.cpp, LINE 241
2024-10-23 19:46:32 [479,460ms] [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addForce: Articulation link must be in a scene., FILE /builds/omniverse/physics/physx/source/physx/src/NpArticulationLink.cpp, LINE 241
2024-10-23 19:46:32 [479,460ms] [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addTorque: Articulation link must be in a scene., FILE /builds/omniverse/physics/physx/source/physx/src/NpArticulationLink.cpp, LINE 260
2024-10-23 19:46:32 [479,460ms] [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addForce: Articulation link must be in a scene., FILE /builds/omniverse/physics/physx/source/physx/src/NpArticulationLink.cpp, LINE 241
2024-10-23 19:46:33 [479,683ms] [Warning] [omni.kit.notification_manager.manager] PhysX error: PxArticulationLink::addForce: Articulation link must be in a scene.
2024-10-23 19:46:33 [479,683ms] [Warning] [omni.kit.notification_manager.manager] PhysX error: PxArticulationLink::addForce: Articulation link must be in a scene.
2024-10-23 19:46:33 [479,683ms] [Warning] [omni.kit.notification_manager.manager] PhysX error: PxArticulationLink::addForce: Articulation link must be in a scene.

Related Issues

Not entirely sure if these are related to my issue:

Additional Context

I am not sure what the errors mean and how can fix them. Please help me understand how to use force fields correctly and things to keep in mind. I’m attaching the Crazy Flie USD. I had to compress it
(cf2x_itr1.zip (4.7 KB))

2 Likes

The same mistake, I hope to receive a response.
Does the current version still not support articulation?
There is no way to delete the articulation because once the joint is deleted, it cannot be used anymore.
My mistake is as follows:

2024-11-29 03:34:56 [Warning] [omni.physx.plugin] PhysicsUSD: Parse collision - triangle mesh collision (approximation None/MeshSimplification) cannot be a part of a dynamic body, falling back to convexHull approximation: /tongji_uav/body/body_collision/body. For dynamic collision please use approximations: convex hull, convex decomposition, box, sphere or SDF approximation.
2024-11-29 03:34:56 [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addForce: Articulation link must be in a scene., FILE C:\g\110116602\physx\source\physx\src\NpArticulationLink.cpp, LINE 241
2024-11-29 03:34:56 [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addForce: Articulation link must be in a scene., FILE C:\g\110116602\physx\source\physx\src\NpArticulationLink.cpp, LINE 241
2024-11-29 03:34:56 [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addForce: Articulation link must be in a scene., FILE C:\g\110116602\physx\source\physx\src\NpArticulationLink.cpp, LINE 241
2024-11-29 03:34:56 [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addTorque: Articulation link must be in a scene., FILE C:\g\110116602\physx\source\physx\src\NpArticulationLink.cpp, LINE 260
2024-11-29 03:34:56 [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addTorque: Articulation link must be in a scene., FILE C:\g\110116602\physx\source\physx\src\NpArticulationLink.cpp, LINE 260
2024-11-29 03:34:56 [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addTorque: Articulation link must be in a scene., FILE C:\g\110116602\physx\source\physx\src\NpArticulationLink.cpp, LINE 260
2024-11-29 03:34:56 [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addForce: force is not valid., FILE C:\g\110116602\physx\source\physx\src\NpArticulationLink.cpp, LINE 240
2024-11-29 03:34:56 [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addForce: force is not valid., FILE C:\g\110116602\physx\source\physx\src\NpArticulationLink.cpp, LINE 240
2024-11-29 03:34:56 [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addForce: force is not valid., FILE C:\g\110116602\physx\source\physx\src\NpArticulationLink.cpp, LINE 240
2024-11-29 03:34:56 [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addForce: force is not valid., FILE C:\g\110116602\physx\source\physx\src\NpArticulationLink.cpp, LINE 240
2024-11-29 03:34:56 [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addForce: Articulation link must be in a scene., FILE C:\g\110116602\physx\source\physx\src\NpArticulationLink.cpp, LINE 241
2024-11-29 03:34:56 [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addTorque: Articulation link must be in a scene., FILE C:\g\110116602\physx\source\physx\src\NpArticulationLink.cpp, LINE 260
2024-11-29 03:34:56 [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addTorque: Articulation link must be in a scene., FILE C:\g\110116602\physx\source\physx\src\NpArticulationLink.cpp, LINE 260
2024-11-29 03:34:56 [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addTorque: Articulation link must be in a scene., FILE C:\g\110116602\physx\source\physx\src\NpArticulationLink.cpp, LINE 260
2024-11-29 03:34:56 [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addTorque: Articulation link must be in a scene., FILE C:\g\110116602\physx\source\physx\src\NpArticulationLink.cpp, LINE 260
2024-11-29 03:34:56 [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addTorque: Articulation link must be in a scene., FILE C:\g\110116602\physx\source\physx\src\NpArticulationLink.cpp, LINE 260
2024-11-29 03:34:57 [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addForce: force is not valid., FILE C:\g\110116602\physx\source\physx\src\NpArticulationLink.cpp, LINE 240
2024-11-29 03:34:57 [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addForce: force is not valid., FILE C:\g\110116602\physx\source\physx\src\NpArticulationLink.cpp, LINE 240
2024-11-29 03:34:57 [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addForce: force is not valid., FILE C:\g\110116602\physx\source\physx\src\NpArticulationLink.cpp, LINE 240
2024-11-29 03:34:57 [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addForce: force is not valid., FILE C:\g\110116602\physx\source\physx\src\NpArticulationLink.cpp, LINE 240
2024-11-29 03:34:57 [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addForce: force is not valid., FILE C:\g\110116602\physx\source\physx\src\NpArticulationLink.cpp, LINE 240
2024-11-29 03:34:57 [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addForce: force is not valid., FILE C:\g\110116602\physx\source\physx\src\NpArticulationLink.cpp, LINE 240
2024-11-29 03:34:57 [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addForce: force is not valid., FILE C:\g\110116602\physx\source\physx\src\NpArticulationLink.cpp, LINE 240
2024-11-29 03:34:57 [Error] [omni.physx.plugin] PhysX error: PxArticulationLink::addForce: force is not valid., FILE C:\g\110116602\physx\source\physx\src\NpArticulationLink.cpp, LINE 240
2024-11-29 03:34:57 [Warning] [omni.kit.notification_manager.manager] PhysX error: PxArticulationLink::addForce: force is not valid.
2024-11-29 03:34:57 [Warning] [omni.kit.notification_manager.manager] PhysX error: PxArticulationLink::addForce: force is not valid.
2024-11-29 03:34:57 [Warning] [omni.kit.notification_manager.manager] PhysX error: PxArticulationLink::addTorque: Articulation link must be in a scene.
2024-11-29 03:34:57 [Warning] [omni.kit.notification_manager.manager] PhysX error: PxArticulationLink::addTorque: Articulation link must be in a scene.
2024-11-29 03:34:57 [Warning] [omni.kit.notification_manager.manager] PhysX error: PxArticulationLink::addTorque: Articulation link must be in a scene.
2024-11-29 03:34:57 [Warning] [omni.kit.notification_manager.manager] PhysX error: PxArticulationLink::addForce: force is not valid.
2024-11-29 03:34:57 [Warning] [omni.kit.notification_manager.manager] PhysX error: PxArticulationLink::addForce: force is not valid.
2024-11-29 03:34:57 [Warning] [omni.kit.notification_manager.manager] PhysX error: PxArticulationLink::addForce: force is not valid.
2024-11-29 03:34:57 [Warning] [omni.kit.notification_manager.manager] PhysX error: PxArticulationLink::addForce: force is not valid.

TLDR; it is safe to ignore the, “must be in a scene” error messages. They will only appear twice per articulation link when the simulation is first started.

I was able to duplicate this problem. It is caused by the articulation code verifying that the actor has a PhysX scene associated with it before the scene is set. This only happens once per articulation link because on the next PhysX update, the scene is set and everything works correctly.

I created a simple quadcopter with revolute joints using articulation links and I can see the wind force applied to the body and blades of my quadcopter.

Hi @rbaltman ,

Thank you for your response!

It is good to know I can ignore those warnings and errors, is there a way to suppress them?

While the warnings and errors about the Articulation link stop after some time like you mention, Isaac Sim sometimes crashes when I change the value of the velocity for the Angular Drive or when I try varying the wind force field parameters. There are also times where it hangs up and I have no choice but to restart my computer.

Would you please be able to share the steps you took to get your propellers moving? Did you also add an Angular Drive to your asset? Would you also be share some do’s and don’t’s while varying wind force field parameters, so that Isaac Sim doesn’t crash or hang?

I would really appreciate your help with this, thank you !

Warm Regards,
Smruti

I do not know if there is a way to suppress ALL error and warning messages, but there is no way to suppress just these particular ones. Eventually, the code will have to be fixed so the scene set up is done before the first verification check.

I don’t know why Isaac Sim is crashing on you, but it could be because the wind force field forces are so large that the simulation is going unstable? If you have a set of properties that work, try small variations from those values. Tuning forces can be tricky because you have no idea what the correct order of magnitude you need when you get started.

So my general approach to tuning properties is to start with low values and see if they generate any desirable motion. If not, I try increasing by a factor of 10. If that’s still too low, I increase another factor of 10, etc. Once I find the correct order of magnitude, I try halving or doubling the setting to fine tune it.

The most sensitive property of the wind force field is the Drag. The higher the number, the larger the force is to match the rigid body’s velocity to the wind velocity. The lower it is, the more the two velocities can differ. It’s safe to set the average speed/direction and variation/direction/frequency settings to almost any values. The Drag can cause the simulation to go unstable, bad settings in the latter will just result in unrealistic motions.

The wind force field is good for generating turbulence forces and/or a steady cross wind force to test your autopilot’s ground tracking, but it is not a “fluid dynamics” model that can be used to compute lift forces. The Angular Drive will have to be used to get the propellers rotating and you will need a separate lift force model to generate the lift forces.

Hope this helps,
Rick

My situation is even worse, as long as I add the Wind function in scenes with articulation objects, running Isaac Sim will crash.
I have tested different articulation objects on two different Windows computers and found the same crash phenomenon. All versions are Windows 11 Isaac Sim4.2.
If there are no articulation in the scene, the wind field function can work very well.