Yes, pretty much. For each vehicle subsystem, the “template” (that is parameterized model) is implemented in a class named Ch[SubsysName]. A concrete subsystem (that is an instantiation of that subsystem for a specific vehicle, obtained by giving actual numbers to the various subsystem parameters) will be in a class named [VehicleName]_[SubsysName]. Alternatively, there will be a class named simply [SubsystemName] which can read in a JSON file to instantiate the same subsystem for the same vehicle (in this case, the actual numbers are read from that JSON file).
* For a double wishbone suspension, the template is implemented in ChDoubleWishbone.h<https://github.com/projectchrono/chrono/blob/main/src/chrono_vehicle/wheeled_vehicle/suspension/ChDoubleWishbone.h>. * The class implemented in DoubleWishbone.h<https://github.com/projectchrono/chrono/blob/main/src/chrono_vehicle/wheeled_vehicle/suspension/DoubleWishbone.h> will concretize a double wishbone suspension subsystem for a particular vehicle by reading a vehicle-specific JSON file. So, if you use this with the JSON file HMMWV_DoubleWishbone.json<https://github.com/projectchrono/chrono/blob/main/data/vehicle/hmmwv/suspension/HMMWV_DoubleWishboneFront.json>, you will get a model of the front suspension on a HMMWV vehicle. * The exact same front HMMWV double wishbone subsystem can be implemented directly in a concrete class: HMMWV_DoubleWishboneFront<class%20CH_MODELS_API%20HMMWV_DoubleWishboneFront%20:%20public%20ChDoubleWishbone%20%7b>. --Radu From: '马浩楠' via ProjectChrono <[email protected]> Sent: Monday, August 14, 2023 8:18 AM To: ProjectChrono <[email protected]> Subject: Re: [chrono] Re: Questions about the usage of the vehicle library Thank you for your response. I understand your point now. For instance, if I want to find JSON definitions related to DoubleWishbone, I can locate them in DoubleWishbone.h, and the corresponding getter functions are the ones related to the definitions? If that's the case, then I believe my question has been resolved. 在2023年8月14日星期一 UTC+8 14:13:30<Radu Serban> 写道: The *definitions* of those parameters are in the header files. Actual values are specified in one of two places (there are two ways of specifying a concrete Chrono::Vehicle subsystem – see the papers, documentation, and demos): 1. in the implementation file for a concrete tire (for example, HMMWV_RigidTire.cpp) All concrete tire models for a HMMWV are in: https://github.com/projectchrono/chrono/tree/main/src/chrono_models/vehicle/hmmwv/tire 2. in a JSON specification file (for example, HMMWV_RigidTire.json) All concrete tire models for a HMMWV are in: https://github.com/projectchrono/chrono/tree/main/data/vehicle/hmmwv/tire To begin with, consult the Chrono::Vehicle reference document (https://api.projectchrono.org/manual_vehicle.html). That will give you an idea of the architecture and design of this module. Then look over the relevant demos to understand how to use Chrono in general and Chrono::Vehicle in particular. --Radu From: '马浩楠' via ProjectChrono <[email protected]> Sent: Monday, August 14, 2023 3:33 AM To: ProjectChrono <[email protected]> Subject: Re: [chrono] Re: Questions about the usage of the vehicle library Thank you for your response. My current task involves simulating a tire. I want to define the specific parameters of this tire myself. For example, the demo provided by your Chrono library features a rigid tire with a radius of 0.5, but for my simulation, I would like a rigid tire with a radius of 0.5 and a weight of 10 kg. I couldn't find any definition related to weight in the rigid tire settings. Could you please inform me where I can find parameter definitions for tires (or other components) such as mass, radius, friction coefficient, etc.? Is it in the mentioned "chxxxxtire.h" header file? 在2023年8月11日星期五 UTC+8 20:03:05<Radu Serban> 写道: There are several types of tire models implemented in Chrono::Vehicle: * Rigid tire (simplest possible model) is based solely on rigid body contact. This “tire” model is defined by its geometry and contact material properties. * FEA tires (arguably the most complex) are defined by their geometry (FEA mesh), elastic material properties, and contact material properties. * Handling tires (also called “force element” tires in Chrono) depend on a large number of parameters, specific to the particular model implemented (Pacejka, Fiala, TMeasy, TMsimple). Parameters for these models must be consistent and are typically obtained as a complete set for a particular tire. TMeasy provides some utility functions to estimate the model parameters based on a standard tire specification and tire type (passenger car or truck). Best way to understand what parameters mean for these tire models is to look up the respective formulas online or in publications. Chrono::Vehicle uses variable names close to what you’ll find there. In general, you can find out about the meaning and purpose of various model parameters (whether for tires or other Chrono::Vehicle subsystems) by looking at the comments in the implementation header files (for tires, these will be files with names Ch***Tire.h) or else looking at the JSON key names in the associated JSON specification files for a concrete subsystem (you will find examples of such JSON files in the Chrono data directory, under data/vehicle/) --Radu From: '马浩楠' via ProjectChrono <[email protected]> Sent: Friday, August 11, 2023 10:49 AM To: ProjectChrono <[email protected]> Subject: [chrono] Re: Questions about the usage of the vehicle library Thank you for your response. I want to define this tire more specifically, not limited to just its radius and width. For example, attributes like the tire's mass should also be included. How extensive can this customization be? 在2023年8月11日星期五 UTC+8 15:07:16<[email protected]> 写道: you can refer to demo_VEH_WheeledJSON.cpp, this is an example of how to use templated vehicle dynamics 在2023年8月11日星期五 UTC+8 14:47:36<[email protected]> 写道: Hello, I'm a beginner and I've been using the vehicle library for about two days. I want to modify the JSON data for certain vehicles in the vehicle library, such as "Maximum Torque". However, I'm not familiar with cars and I don't know which JSON nodes correspond to specific value ranges. Is there any related development documentation available? -- 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/669534d0-7ee3-4945-a5cb-60c60b7f0b88n%40googlegroups.com<https://groups.google.com/d/msgid/projectchrono/669534d0-7ee3-4945-a5cb-60c60b7f0b88n%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/e6760774-fc80-4a89-98f5-bee149116113n%40googlegroups.com<https://groups.google.com/d/msgid/projectchrono/e6760774-fc80-4a89-98f5-bee149116113n%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]<mailto:[email protected]>. To view this discussion on the web visit https://groups.google.com/d/msgid/projectchrono/b51d94a4-6c85-4435-befe-13c2768d8202n%40googlegroups.com<https://groups.google.com/d/msgid/projectchrono/b51d94a4-6c85-4435-befe-13c2768d8202n%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/PH0PR06MB8237748462E96CEEBB71C42CA717A%40PH0PR06MB8237.namprd06.prod.outlook.com.
