1 // ============================================================================= 2 // PROJECT CHRONO - http://projectchrono.org 3 // 4 // Copyright (c) 2014 projectchrono.org 5 // All rights reserved. 6 // 7 // Use of this source code is governed by a BSD-style license that can be found 8 // in the LICENSE file at the top level of the distribution and at 9 // http://projectchrono.org/license-chrono.txt. 10 // 11 // ============================================================================= 12 // Authors: Radu Serban, Asher Elmquist, Rainer Gericke 13 // ============================================================================= 14 // 15 // FEDA rigid tire subsystem 16 // 17 // ============================================================================= 18 19 #include <algorithm> 20 21 #include "chrono_vehicle/ChVehicleModelData.h" 22 #include "chrono_models/vehicle/feda/FEDA_RigidTire.h" 23 24 namespace chrono { 25 namespace vehicle { 26 namespace feda { 27 28 // ----------------------------------------------------------------------------- 29 // Static variables 30 // ----------------------------------------------------------------------------- 31 32 const double FEDA_RigidTire::m_radius = 0.499; 33 const double FEDA_RigidTire::m_width = 0.335; 34 35 const double FEDA_RigidTire::m_mass = 55.4; 36 const ChVector<> FEDA_RigidTire::m_inertia(6.39, 11.31, 6.39); 37 38 const std::string FEDA_RigidTire::m_meshFile = "feda/meshes/feda_tire_fine.obj"; 39 40 // ----------------------------------------------------------------------------- 41 // ----------------------------------------------------------------------------- FEDA_RigidTire(const std::string & name,bool use_mesh)42FEDA_RigidTire::FEDA_RigidTire(const std::string& name, bool use_mesh) : ChRigidTire(name) { 43 if (use_mesh) { 44 SetMeshFilename(GetDataFile("feda/meshes/feda_tire_fine.obj"), 0.005); 45 } 46 } 47 48 // ----------------------------------------------------------------------------- 49 // ----------------------------------------------------------------------------- CreateContactMaterial(ChContactMethod contact_method)50void FEDA_RigidTire::CreateContactMaterial(ChContactMethod contact_method) { 51 MaterialInfo minfo; 52 minfo.mu = 0.9f; 53 minfo.cr = 0.1f; 54 minfo.Y = 2e7f; 55 m_material = minfo.CreateMaterial(contact_method); 56 } 57 AddVisualizationAssets(VisualizationType vis)58void FEDA_RigidTire::AddVisualizationAssets(VisualizationType vis) { 59 if (vis == VisualizationType::MESH) { 60 m_trimesh_shape = AddVisualizationMesh(m_meshFile, // left side 61 m_meshFile); // right side 62 } else { 63 ChRigidTire::AddVisualizationAssets(vis); 64 } 65 } 66 RemoveVisualizationAssets()67void FEDA_RigidTire::RemoveVisualizationAssets() { 68 ChRigidTire::RemoveVisualizationAssets(); 69 RemoveVisualizationMesh(m_trimesh_shape); 70 } 71 72 } // namespace feda 73 } // end namespace vehicle 74 } // end namespace chrono 75