Steering Controller Question

98 views
Skip to first unread message

Chris Jacobs

unread,
Aug 13, 2025, 9:31:11 AMAug 13
to ProjectChrono
Hi all,

I have been testing some of Project Chrono's features with their vehicle module and I was curious if anyone can explain this abnormality.

I created a file that creates a PathFollowerDriver component on the M113 tracked vehicle to test how the PID controller works. I started with a straight line path first and was able to get some pretty solid results with the chosen gains. When I transitioned the same gains to a more complicated path (the Double Lane Change Path) the previous gains that I had were too harsh and veered the M113 off of the desired path.

Comparing that to the wheeled vehicle, no matter the maneuver chosen, the same gains can be used and the wheeled vehicle would be able to follow the path from beginning to end with little difficulty. My first thought as to why this may be happening is because of the time step difference in simulations (2e-3 in the wheeled vs. 5e-4 in the tracked), but I was wondering if anyone else may have some thoughts behind what may be going on.

Thank you,
Chris

Harry ZHANG

unread,
Aug 24, 2025, 9:52:34 PMAug 24
to ProjectChrono
Hi Chris,

I did similar demo before, controlling M113 tracked vehicle to follow sine shape path with PID method, the video link is (https://uwmadison.box.com/s/j93bhbnkwbdh996bi9k7stk1gisas1g2). Is this demo what you want to do (to some extend))? In this demo, I implemented a basic PD controller in the simulation loop given the information of predefined sine-shape trajectory and vehicle's current state 

while I am not sure about the reason why it's not working well with PathFollowerDriver (might because of the tracked vehicle's skid steering mechanism is different from the ones one wheeled vehicle), I would recommend trying to implement a basic PID controller, which you could easily adjust PID gains given over/under damped scenarios. From experience (demo I shared above), it would work fine with a customized PID controller. 

Best,
Harry

Dan Negrut

unread,
Aug 24, 2025, 9:55:46 PMAug 24
to Harry ZHANG, ProjectChrono

Harry – for the demo you did and led to the mp4 movie that you shared, if you have the code handy, can you please drop here or provide a link?

 

Thank you, Harry!

Dan

---------------------------------------------

Bernard A. and Frances M. Weideman Professor

NVIDIA CUDA Fellow

Department of Mechanical Engineering

Department of Computer Science

University of Wisconsin - Madison

4150ME, 1513 University Avenue

Madison, WI 53706-1572

608 772 0914

http://sbel.wisc.edu/

http://projectchrono.org/

---------------------------------------------

--
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 visit https://groups.google.com/d/msgid/projectchrono/7600dd11-a7b8-4e50-9120-9b86e46829c8n%40googlegroups.com.

Radu Serban

unread,
Aug 25, 2025, 7:50:41 PMAug 25
to ProjectChrono

Chris,

 

I see no reason reinventing the wheel like Harry suggests given that the PathFollowerDriver already implements these PID controllers (one for lateral control, the other for longitudinal control) and you can adjust all parameters (including setting the appropriate gain to 0 to make it a PD controller).

 

The reason for the behavior you see is simply because the PID gains must be properly set for the vehicle and type of maneuvers you attempt to implement.  I estimated the values we have in our demos a long time ago for a HMMWV-type vehicle.  We simply used the same or similar values for other vehicles, with more or less success.  Obviously, the dynamics of the M113 vehicle are too different from that of a HMMWV for the same set of controller gains to work similarly well.   The demos we provide are for illustration only.  It is implied that a user would need to make appropriate adjustments (for example in PID controller gains) when changing the vehicle and/or scenario.

 

You can get ballpark estimates of the gain values by considering a simple scalar 2nd order ODE mockup model of the vehicle yaw dynamics.

 

--Radu

 

From: 'Harry ZHANG' via ProjectChrono <projec...@googlegroups.com>
Sent: Sunday, 24 August 2025 18:53
To: ProjectChrono <projec...@googlegroups.com>
Subject: [chrono] Re: Steering Controller Question

 

Hi Chris,

--

Chris Jacobs

unread,
Sep 4, 2025, 10:22:32 AMSep 4
to ProjectChrono
Thank you all for your responses on this matter!

I had a follow up question about the M113 after doing some digging around with the documentation for the tracked vehicle and Project Chrono. Looking at the JSON implementation I noticed two interesting features: 1) The amount of links for each side are asymmetrical as one has 63 links and the other has 64, and 2) There is a slight asymmetrical offset in the road wheels as well. I made this discovery after I realized that the M113 simulations I created with the Data Driven Driver consistently veered towards the left instead of following a straight path with full throttle and no steering inputs. It makes sense now as the left track has less track shoes than the right, which would give it that behavior.

Looking at the M113 documentation for reference, I understand that it was also built asymmetrically (at least for the number of individual tracks for each side). Is this the reason why the M113 implementation has similar traits or is there another explanation? I am very curious, especially about the road wheel offset.

Thank you all again.

Chris

dr.ratz...@gmail.com

unread,
Sep 10, 2025, 5:22:20 AMSep 10
to ProjectChrono
Most tracked vehicles are suspended by torsion bar springs. To get a reasonable work range these springs must be as long as possible, the torsion bar connects the bogie arm in its pivot point and the hull on the other side of the hull. The torsion bars for the left and the right bogies must be located with an X-offset, which leads to parallel torsion bars. Other wheels (idler and sprocket) are symmetrical, so the track lengths differs slightly between left and right.
Reply all
Reply to author
Forward
0 new messages