Home | Tutorials | Wiki | Issues
Ask Your Question
1

Increasing Model Fidelity; ex: Modeling Surface Forces - > pacejka tire model

asked 2017-10-23 11:40:31 -0600

huckl3b3rry87 gravatar image

I am interested in creating a Pacejka Tire model in Gazebo and during the past several months I have been looking through many examples and I have not seen any examples of vehicles with more complicated tire models. Is it difficult to implement something like this in Gazebo? If it is a straightforward thing, how would I go about doing it? Would I need to write a plugin?

Previously I looked into using the validated vehicle models in Chrono in Gazebo using this code, but was advised against it as Chrono is moving towards developing their own virtual environment and sensor models etc. But, since these sensor models and the environment does not seem as mature as Gazebo and does not integrate with ROS, I decided to stick with Gazebo.

I have been bouncing around a lot between using Chrono, Gazebo, and now I am toying with actually using ANVEL to develop an AV simulation environment. Ultimately as always it is a trade-off and for me I want mature software that is easy to use, but model fidelity is also important to me.

I am leaning towards Gazebo because it is mature, open-source, and well developed. But I am concerned that, while way that Gazebo defines the model is very straightforward, it seems rigid. In that if I wanted to add, for instance the Pacejka tire model it may be difficult.

At the end of the day, what I am wondering in this question is, how flexible is Gazebo in adding a (possibly external) model of some physical phenomena? For instance, if I have some C++ code that calculates tire force, can I inject the output of this easily back into Gazebo?

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted
2

answered 2017-10-23 12:19:22 -0600

updated 2017-10-23 12:24:15 -0600

Is it difficult to implement something like this in Gazebo? If it is a straightforward thing, how would I go about doing it? Would I need to write a plugin?

You might be able to get some of your desired behavior by using directional friction & slip. Yes, I think you'll need to write a plugin.

At the end of the day, what I am wondering in this question is, how flexible is Gazebo in adding a (possibly external) model of some physical phenomena? For instance, if I have some C++ code that calculates tire force, can I inject the output of this easily back into Gazebo?

Writing a plugin is fairly straightforward.
Check out this tutorial (http://gazebosim.org/tutorials?cat=gu...) for the basics.

You'll want to determine what physical measurements you'll need for your empirical formula (torque, velocity, etc) and make sure that Gazebo generates those values. Then you'll need to write a plugin that pulls those measurements from the Gazebo physics engine, plugs them into your formula, and then applies the calculated tire forces back to the simulation environment.

You may be interested in this paper (http://www.cim.mcgill.ca/~dmeger/ICRA...).

The authors used Gazebo plugins to implement empirical equations for a swimming robot's buoyancy, drag, and flipper thrust underwater. Here's their ROSCON 2017 presentation: [slides] [video]

At the end of the day, what I am wondering in this question is, how flexible is Gazebo in adding a (possibly external) model of some physical phenomena? For instance, if I have some C++ code that calculates tire force, can I inject the output of this easily back into Gazebo?

I think that this would be as "simple" as adding this C++ code to your plugin's OnUpdate/Update function

edit flag offensive delete link more

Comments

Thank you very very much, this is extremely helpful!

huckl3b3rry87 gravatar imagehuckl3b3rry87 ( 2017-10-23 12:33:11 -0600 )edit
0

answered 2017-11-09 02:41:47 -0600

Alex Buyval gravatar image

Hi

I am interested in tire model too. I have found the following implementation of tire model . Maybe it would be helpful for you. However, I don't know why there is no this implementation in default branch.

Also i noticed that this plugin calculates mu-coefficients (mu1, mu2), I am not sure that such approach is suitable for Pacejka Tire model. What do you think?

Best Regards, Alex

edit flag offensive delete link more
Login/Signup to Answer

Question Tools

2 followers

Stats

Asked: 2017-10-23 11:40:31 -0600

Seen: 74 times

Last updated: Nov 09