Does Chrono Vehicle have the concept of a handbrake/ emergency brake?

51 views
Skip to first unread message

JC Denton

unread,
May 25, 2023, 11:51:04 PM5/25/23
to ProjectChrono
And if so, where to find it, or is there another approach you suggest to apply it?

Thanks!

Radu Serban

unread,
May 26, 2023, 3:51:25 AM5/26/23
to ProjectChrono

There is no model of an emergency brake in Chrono::Vehicle. A simple way of adding that would be by providing a function that would lock the wheel spindles (i.e., remove their rotation degrees of freedom).

 

What scenario are you trying to model? In other words, why isn’t it enough to just apply maximum brake input (+1)?

 

--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/a69c4b93-61a5-47d9-8f0b-10b476c2529fn%40googlegroups.com.

JC Denton

unread,
May 28, 2023, 9:30:35 PM5/28/23
to ProjectChrono
Thanks for the info!
Is there an easy way to lock the spindles on/off?

As you know the brake is applied to all wheels, but on most cars the handbrake is only applied to the rear wheels. So just wondering if there was already something implemented for a handbrake. Alternatively I can figure out how to lock the rotation of the rear spindles

Radu Serban

unread,
May 29, 2023, 2:20:14 AM5/29/23
to ProjectChrono

Well, that is true for the “standard” 4-wheel, front-steering configuration. Granted, the most common topology. For Chrono::Vehicle, where one can model all sorts of configurations, implementing an emergency/parking brake would also require user input for which axles that would be applied.  I’ll consider adding that.

 

For now, you want to implement this outside the Chrono::Vehicle library (i.e., in user code). Look at the implementation of ChBrakeSimple which uses this locking of the spindle joints to overcome a limitation of this simplistic brake model (no braking torque applied when the wheel has zero relative angular velocity). You can get the appropriate revolute joint from the ChSuspension object and then can call the Lock(true) function on that joint.

 

By the way, if you are using a ChBrakeSimple in your model, I suggest you change that to a ChBrakeShafts which does not require the hack I mentioned above.

Radu Serban

unread,
May 29, 2023, 2:04:09 PM5/29/23
to ProjectChrono

Looking back in the code, I realized I had already implemented a parking brake (exactly along the lines I mentioned below). I just pushed a minor change so that the parking brake (i.e., locking of the spindle DOF) happens only for non-steerable axles.

 

The function to engage/release the parking brake is ChWheeledVehicle::ApplyParkingBrake() which takes a bool argument.

 

--Radu

JC Denton

unread,
Jun 1, 2023, 11:40:37 PM6/1/23
to ProjectChrono
Excellent! thanks for your help

-JC
Reply all
Reply to author
Forward
0 new messages