Radu,

Thanks for clearing things up for me. I am progressing on that front of 
having a custom driveline class with the behavior that you mentioned above.

I am curious about one thing, since our ultimate goal is to simulate a 
Husky-like robot that is skid steer and has motors in all it's wheels, 
could I simply replace the powertrain and driveline with 4 individual 
motors instead which will proved the torque to their respective wheels? I 
saw an example in tracked vehicles- demo_IRR_tracks which exhibits a proper 
skid steer motion and it has revolute joints for the front two wheels and 
motors to the rear wheels. However, it has track shoes to connect them so 
not entirely relevant to my case.

What would be the repercussions for that? since the data transfer in 
Synchronize() methods would be interrupted and the vehicle object's 
Advance() calls the powertrain's Advance() method which then processes the 
dynamics based on the feedback.

PS: I'm running into some compile-time errors which are a bit tricky to get 
resolved. Could I consult with someone on the projectChrono team for that 
please if they are not resolvable on my end?

Thanks & Regards,
Shubhankar
On Wednesday, August 3, 2022 at 9:32:29 AM UTC-4 Radu Serban wrote:

> Shubhankar,
>
>  
>
> There is no “API” for that. You will need to implement your own template 
> for a custom driveline that has the desired behavior.  You can look at the 
> ones already available in Chrono.
>
>  
>
> I am not sure what you mean by “pinning the wheels on the same side”.  If 
> you mean enforcing that they always have the same angular velocity, then 
> you probably need to design a mechanism that enforces that.
>
>  
>
> But at the end of the day, you have to distribute the torque coming from 
> the powertrain to all wheels.   A template such as ChShaftsDriveline4WD 
> accomplishes that through a mechanism constructed with Chrono’s 1D shaft 
> elements.  A template such as ChSimpleDriveline does that by splitting the 
> torque and applying it directly to the 4 wheel axles (front-left, 
> front-right, rear-left, rear-right).
>
>  
>
> I suggest you start with something similar to ChSimpleDriveline and simply 
> change the logic for the torque splitting (so that you apply the same 
> torque to both left wheels and to both right wheels, with a left/right 
> split based upon the steering input).  You would do that in your override 
> of the Synchronize method.
>
>  
>
> --Radu
>
>  
>
> *From:* [email protected] <[email protected]> *On 
> Behalf Of *Shubhankar Kulkarni
> *Sent:* Friday, July 29, 2022 8:36 PM
> *To:* ProjectChrono <[email protected]>
> *Subject:* Re: [chrono] Skid steer simulation
>
>  
>
> Hello Radu,
>
>  
>
> I have implemented a class with the appropriate suspension and no 
> steering. Your code is helping to get the steering inputs without a 
> steering system being in place. 
>
> However, I am no sure as how to implement a custom driveline that will pin 
> the wheels on the same side and apply different torques on the left and 
> right sides. Could you please point me to the reference containing the 
> appropriate APIs?
>
>  
>
> --Shubhankar
>
>  
>
> On Thursday, June 2, 2022 at 8:07:01 AM UTC-4 Radu Serban wrote:
>
> Shubhankar,
>
>  
>
> The latest code in the ‘develop’ branch of the GitHub repository now 
> passes all driver control inputs (steering, throttle, braking) to various 
> vehicle subsystems.  In particular, these are also passed to the 
> Synchronize() method of ChDrivelineWV.  To implement a skid steer vehicle, 
> build a vehicle with no steering mechanism and implement a custom driveline 
> which applies different torques to the left and right wheels based on 
> steering input.
>
>  
>
> --Radu
>
>  
>
> *From:* 'Radu Serban' via ProjectChrono <[email protected]> 
> *Sent:* Tuesday, May 31, 2022 11:04 AM
> *To:* ProjectChrono <[email protected]>
> *Subject:* RE: [chrono] Skid steer simulation
>
>  
>
> Hi Shubhankar,
>
>  
>
> Chrono::Vehicle does not explicitly support skid steer vehicles (well, 
> except tracked vehicles), but almost all pieces are available for you to 
> model your own.
>
>  
>
> A related example is in demo_VEH_ArticulatedVehicle 
> <https://github.com/projectchrono/chrono/tree/develop/src/demos/vehicle/articulated_vehicle>
>  
> which models a vehicle with an articulated chassis.  
>
>  
>
> But you are probably thinking of something like a Bobcat skid steer 
> loader?  In that case, you can use a rigid axle 
> <https://api.projectchrono.org/wheeled_suspension.html#wheeled_suspension_ChRigidSuspension>
>  
> on the front and a rigid pinned axle 
> <https://api.projectchrono.org/wheeled_suspension.html#wheeled_suspension_ChRigidPinnedAxle>
>  
> on the rear. The only missing piece is then a driveline that mechanically 
> links the wheels on the same side.  A simple custom model for such a 
> driveline is easy to implement.  
>
>  
>
> I can think of one showstopper: the steering input is not propagated to 
> the driveline subsystem. Since at least one other user mentioned skid steer 
> vehicles in the past and because this would provide more flexibility, I 
> will look into modifying the Chrono::Vehicle data flow to pass all vehicle 
> control inputs to various vehicle subsystems.  I will reply to this message 
> when that is available.  At that time, you should be able to implement a 
> custom driveline for such skid steer vehicles.
>
>  
>
> --Radu
>
>  
>
>  
>
>  
>
> *From:* [email protected] <[email protected]> *On 
> Behalf Of *Shubhankar Kulkarni
> *Sent:* Monday, May 30, 2022 9:45 PM
> *To:* ProjectChrono <[email protected]>
> *Subject:* [chrono] Skid steer simulation
>
>  
>
> Hello,
>
> I wished to know whether there is any pre-existing model in projectChrono 
> that has a skid-steer mechanism for a wheeled platform?Is there a way to 
> simulate it?
>
>  
>
> Thanks & Regards,
>
> Shubhankar Kulkarni
>
> -- 
> 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 [email protected].
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/projectchrono/6962c9d9-c3e9-4ec8-8b11-7cb7d0de2110n%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/projectchrono/6962c9d9-c3e9-4ec8-8b11-7cb7d0de2110n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
> -- 
> 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 [email protected].
>
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/projectchrono/PH0PR06MB8237744A93844CD40865FE1BA7DC9%40PH0PR06MB8237.namprd06.prod.outlook.com
>  
> <https://groups.google.com/d/msgid/projectchrono/PH0PR06MB8237744A93844CD40865FE1BA7DC9%40PH0PR06MB8237.namprd06.prod.outlook.com?utm_medium=email&utm_source=footer>
> .
>
> -- 
> 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 [email protected].
>
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/projectchrono/af08cee0-60f9-488c-9d96-113ca94d53a4n%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/projectchrono/af08cee0-60f9-488c-9d96-113ca94d53a4n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/projectchrono/71c18e19-183a-405a-8393-71a3ff83fd9cn%40googlegroups.com.

Reply via email to