High frequency noise in virtual tire test rig

145 views
Skip to first unread message

James Baxter

unread,
Nov 28, 2022, 10:25:41 AM11/28/22
to ProjectChrono
When plotting the output data from the virtual tire test rig (https://api.projectchrono.org/7.0.0/wheeled_rig.html#wheeled_rig_tire), I observe high frequency noise on the outputs. See the attached plots.

Is this to be expected? Can it be mitigated through different solver settings?

All solver / timestep settings are unchanged from the demo file showing how to use the test rig:
- BARZILAIBORWEIN solver
- 150 max iterations
- 4.0 max penetration recovery speed
- step_size 1e-3
- tire_step_size 1e-4

Thanks,
James
img1.pngimg2.png


James Baxter

unread,
Dec 11, 2022, 9:20:55 PM12/11/22
to ProjectChrono
bumping this back to the top since I haven't received any response yet and am still facing this issue.

dr.ratz...@gmail.com

unread,
Dec 16, 2022, 2:51:25 AM12/16/22
to ProjectChrono
Hi James,

the HMMWV wheel had inertia parameters, which were too low in this context. They have been replaced by estimated values based on physics.
Please pull the last chrono changes and try again.

Best

Rainer

Radu Serban

unread,
Dec 19, 2022, 12:30:31 PM12/19/22
to ProjectChrono

James,

Rainer’s fix worked in an indirect way. I pushed some changes that should address the issue you reported. Please let me know if the results are now more as you expect them.

--Radu

 

 

--
You received this message because you are subscribed to the Google Groups "ProjectChrono" group.
To unsubscribe from this group and stop receiving emails from it, send an email to projectchron...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/projectchrono/e52e6334-9ec7-4a7b-a093-c6085e66839cn%40googlegroups.com.

James Baxter

unread,
Jan 18, 2023, 12:15:41 PM1/18/23
to ProjectChrono
Hi Radu and Rainer,

Thank you for pushing some changes for me to test, and sorry for the delayed response. The fix (I am using the 8.0.0 release tag) definitely smoothed out noise on one of the plots (longitudinal slip, slip angle, camber_angle), but I was expecting a sinusoidal shape for the slip angle rather than a flat line. The tire force seems to still have about the same degree of noise. See the below plots.
f1.pngf2.png

I'll play around with it some more this week and let you know if the results make sense.

Also, I encountered an error with the renderer (likely due to me using it in an odd way) and opened a PR: https://github.com/projectchrono/chrono/pull/435

James Baxter

unread,
Jan 21, 2023, 8:44:42 PM1/21/23
to ProjectChrono
Looking into it further, I found that the flat line for slip angle and longitudinal slip is indeed a bug in Chrono's code rather than my own. With the new 8.0.0 release, only some tires call `CalculateKinematics`, which is responsible for updating those values. In the above, I was using HMMWV_RigidTire, which does not update those values. This appears to be the relevant commit: c9167c87e32c54e1936c9d90e12c50793ebde1e0.

You can see that the virtual function, `Synchronize` is only being being overridden by several tire models, and Rigid Tire is not one of them. I assume this is a bug and not intentional behavior?

Due to this, I switched to the TMeasyTire, and it is working as intended. Additionally, the changes to reduce noise seem to have worked:

TMeasy on 7.0.3:
7_force.png7_slip.png

TMeasy on 8.0.0:
8_force.png8_slip.png

Radu Serban

unread,
Jan 23, 2023, 5:12:39 PM1/23/23
to ProjectChrono

James,

 

A rigid tire is appropriate only in very specific situations (e.g., on soft deformable terrain).  In some demos we also use such tires on rigid terrain, but those are just that – demos.  Do not read too much into tire kinematics properties from a rigid tire model.  Instead, like you already did, switch to a proper tire model (TMeasy, Pac02, Pac89, Fiala).

Having said that, I pushed a change to the code to also invoke CalculateKinematics for a ChRigidTire.  You will notice that the outputs can be quite noisy – this is because the tire-terrain interaction is done here through frictional contact between two rigid bodies. If you really want to use that tire model, you should use a ChSystemSMC (smooth contact formulation).

 

--Radu

 

From: projec...@googlegroups.com <projec...@googlegroups.com> On Behalf Of James Baxter
Sent: Sunday, 22 January 2023 02:45
To: ProjectChrono <projec...@googlegroups.com>
Subject: Re: [chrono] Re: High frequency noise in virtual tire test rig

 

Looking into it further, I found that the flat line for slip angle and longitudinal slip is indeed a bug in Chrono's code rather than my own. With the new 8.0.0 release, only some tires call `CalculateKinematics`, which is responsible for updating those values. In the above, I was using HMMWV_RigidTire, which does not update those values. This appears to be the relevant commit: c9167c87e32c54e1936c9d90e12c50793ebde1e0.

 

You can see that the virtual function, `Synchronize` is only being being overridden by several tire models, and Rigid Tire is not one of them. I assume this is a bug and not intentional behavior?

 

Due to this, I switched to the TMeasyTire, and it is working as intended. Additionally, the changes to reduce noise seem to have worked:

 

TMeasy on 7.0.3:

 

TMeasy on 8.0.0:

 

 

 

 

On Wednesday, January 18, 2023 at 12:15:41 PM UTC-5 James Baxter wrote:

Hi Radu and Rainer,

 

Thank you for pushing some changes for me to test, and sorry for the delayed response. The fix (I am using the 8.0.0 release tag) definitely smoothed out noise on one of the plots (longitudinal slip, slip angle, camber_angle), but I was expecting a sinusoidal shape for the slip angle rather than a flat line. The tire force seems to still have about the same degree of noise. See the below plots.

Image removed by sender.Image removed by sender.

 

 

--
You received this message because you are subscribed to the Google Groups "ProjectChrono" group.
To unsubscribe from this group and stop receiving emails from it, send an email to projectchron...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/projectchrono/e52e6334-9ec7-4a7b-a093-c6085e66839cn%40googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "ProjectChrono" group.
To unsubscribe from this group and stop receiving emails from it, send an email to projectchron...@googlegroups.com.

James Baxter

unread,
Jan 31, 2023, 12:03:54 PM1/31/23
to ProjectChrono
Hi Radu,

Thank you for all the information you've shared so far and the fixes you've provided. However I am still having some issues.

For this project, I will be using deformable (primarily SCM) terrain, so the rigid tire makes the most sense. As you suggested I am now using the smooth contact model (with a MINRES solver). The below plot shows the output of the slip angle over time, which should be a smooth sinusoidal function with about half the frequency. The longitudinal slip appears correct, but it seems there may be a bug with the newly added slip angle calculation.

Additionally, I tried doing a run with an FEA tire, and there was no slip output. I believe this is the same issue as before, where the `CalculateKinematics` is not getting called.

And as one last comment, when running the FEA simulation with the BARZILAIBORWEIN solver, there was a helpful exception thrown which informed be to use the MINRES solver. When I earlier tried running the FEA simulation with a nonsmooth contact formulation, there was a segmentation fault. I believe this is because the assert that would catch it was disabled as a result of me compiling in release mode, then it attempted to deference a nullptr. If possible, it would be more user friendly to throw a similar exception when a nonsmooth contact solver is used.

Please let me know your thoughts and if I can be of any assistance in making changes.

James

 

Screenshot_20230131_114903.png

James Baxter

unread,
Feb 3, 2023, 7:55:50 AM2/3/23
to ProjectChrono

When not in contact with the terrain, the tire_frame is uninitialized (possibly zeroed out or just random noise; I'm not sure) and the kinematics are incorrectly calculated as a result. What is odd to me though is that the tire is not in continuous contact with the terrain. Given the loading on the rig, it should be in continuous contact once it initially drops down. However, since the terrain is deformable I am thinking there is some numerical noise causing it to not actually be in continuous contact?

Since I am using a rigid tire and deformable terrain is there a different terrain collision algorithm that you would recommend over 1 pt?

Thanks,
James
Reply all
Reply to author
Forward
0 new messages