00001 /*+-------------------------------------------------------------------------+ 00002 | MultiVehicle simulator (libmvsim) | 00003 | | 00004 | Copyright (C) 2017 Borys Tymchenko | 00005 | Odessa National Polytechnic University | 00006 | Distributed under GNU General Public License version 3 | 00007 | See <http://www.gnu.org/licenses/> | 00008 +-------------------------------------------------------------------------+ */ 00009 00010 #pragma once 00011 00012 #include <mvsim/FrictionModels/FrictionBase.h> 00013 #include <vector> 00014 #include <Box2D/Dynamics/Joints/b2FrictionJoint.h> 00015 00016 namespace mvsim 00017 { 00024 class WardIagnemmaFriction : public FrictionBase 00025 { 00026 DECLARES_REGISTER_FRICTION(WardIagnemmaFriction) 00027 public: 00028 WardIagnemmaFriction( 00029 VehicleBase& my_vehicle, const rapidxml::xml_node<char>* node); 00030 00031 // See docs in base class. 00032 virtual void evaluate_friction( 00033 const FrictionBase::TFrictionInput& input, 00034 mrpt::math::TPoint2D& out_result_force_local) const; 00035 00036 private: 00037 double m_mu; 00038 double m_C_damping; 00039 double m_A_roll, m_R1, 00040 m_R2; 00041 }; 00042 }