As describe in title, vehicle dynamic model is important in car simulator. Is there any plan to add this feature?
Vehicles use Unreal's default vehicle dynamics, which is NVIDIA's PhysX vehicle model. For now we don't plan to support other models.
I have noticed there is already a CarSim plugin for UE4. It is only available for Windows and requires a licensed copy of CarSim, but it will probably make fairly easier the task of adding support for CarSim.
However, since we are primarily focused on Linux and CarSim is an expensive software, it's not a priority for us now to add support for it. Said that, we encourage anyone familiar with CarSim to give it a try and we'll be very happy to hear of any progress on that :)
@nsubiron Great plugin, thank you!! I've taken a look into it and wrote like at least four email to Mechanical Simulation to ask how exactly this plugin can be used because I can't even run their example project, seems it needs maintaining.
Whatever, thank you !
Just to hint there's an open interface widely used in simulation tools called Functional Mock-up Interface. It is also supported by CarSim.
So intergrating this model on the binary level could be done, provided that CarSim support an FMU export on Linux.
As an intermediate step to the introduction of full vehicle dynamics models:
Is it possible, to design a flat surface level and set the pose of the vehicle from an external vehicle dynamics simulation (relating to #280) ? This would enable the use of classic Real-Time HiLs for vehicle dynamics and chassis control and Carla can be used as an perception backend. I am aware the fact, that this approach does not allow to include physics simulation. Most likely, one would bypass the physx engine completly. However, taking into account that one would try to avoid crashes this might be a valid intermediate step. It would be possible, to simulate several evasion maneuvers and lane keeping scenarios on flat surfaces with arbitrarly detailed vehicle models (and up to 500 - 1000 Hz sensor devices)
This would enable to test full autonomous driving systems, including perception, planning and control.
Hello @onethird !
Were you able to introduce in the simulator an other vehicle with different dynamics than the default ones? Or, in the other hand, to connect an external vehicle model (like, for example, Simulink tool)?
Thank you very much for your answer!
Hi @nievsamolina @nsubiron any news regarding this topic? I am also interested in implementing different dynamic models for the vehicles, and using Simulink would be a great way to do it.
It seems that using a game engine to simulate environment, using carsim or other software to simulate a dynamic model is a better method.
The interaction of the two modules is a problem and they require a uniform interface and parameter definition.
It's a really good discuss about do better simulator!
So I have my own vehicle dynamic model which i want to integrate with CARLA. To integrate any vehicle dynamic model with any environment simulation model the following signals should be necessary : We feed into env.Sim(CARLA in this case) the position of the reference point in x/y/z, current heading, global roll and pitch angle. And from env.Sim we would need the intitial x/y/z position + initial heading/Roll/Pitch and current road gradient/banking...or if they deliver the z-position of each wheel we don't need the gradient and banking, this can be than calculated.
So now the question is if CARLA provides these attributes externally ?
Coming soon: Targeted as part of 0.9.10 sprint.
I am looking at a pretty similar implementation as @aakashsehgal. I looked at the API and found VehiclePhysicsControl and WheelPhysicsControl can independently control the vehicle body and wheels - but I realized that the NVIDIA PhysX engine is used when installed through Vehicle actor initialization. Openloop controls is managed through VehicleControl. I was wondering if there is a way to position the vehicle body and individual wheel separately without using NVIDIA PhysX as I managed the vehicle dynamics externally? Currently, I have each of the wheels as a different actor and position/rotate it independently - this is less than an ideal solution.
@germanros1987 Could you detail on what is targeted as a part of the 0.9.10 sprint?
@svanimisetti this is not possible yet.
So, for now, we cant use or adjust vehicle dynamic model except using NVIDIA PhysX engine which is default mathematical model for any vehicles in Carla. Am I wrong? Where can we look for vehicle dynamic model of any actors? Thank you for your help.
I'm also very interested in this. We have our own C++ vehicle model which we plug in to various DIL simulator environments, rfPro, etc, and I'd very much like to get it working with CARLA as well. It would be great if the solution being worked on supported any external vehicle model via a well defined interface.
This issue has the help wanted label and depending on what exactly this is about I'd be willing to help. Could you please detail on what your goal with this issue is exactly (i.e. which interface/standard you aim for, features, constraints on the implementation)? Is there already some work done?
Most helpful comment
Coming soon: Targeted as part of 0.9.10 sprint.