AGX Dynamics 2.41.3.0
Loading...
Searching...
No Matches
Steering.h
Go to the documentation of this file.
1/*
2Copyright 2007-2025. Algoryx Simulation AB.
3
4All AGX source code, intellectual property, documentation, sample code,
5tutorials, scene files and technical white papers, are copyrighted, proprietary
6and confidential material of Algoryx Simulation AB. You may not download, read,
7store, distribute, publish, copy or otherwise disseminate, use or expose this
8material unless having a written signed agreement with Algoryx Simulation AB, or having been
9advised so by Algoryx Simulation AB for a time limited evaluation, or having purchased a
10valid commercial license from Algoryx Simulation AB.
11
12Algoryx Simulation AB disclaims all responsibilities for loss or damage caused
13from using this software, unless otherwise stated in written agreements with
14Algoryx Simulation AB.
15*/
16
17#pragma once
18#include <agxVehicle/export.h>
20#include <agx/Constraint.h>
21
22namespace agxVehicle
23{
29
30 class WheelJoint;
31
46 {
47 public:
48
55
60
65
71
76
81
85 void render(class agxRender::RenderManager* mgr, float scale) const override;
86
90 int getNumDOF() const override;
91
93
94 protected:
96 virtual ~Steering();
97 class SteeringImplementation* m_impl;
98 };
99
100
101
103 {
104 public:
111 BellCrank(WheelJoint* leftWheel, WheelJoint* rightWheel,
112 SteeringParameters params = SteeringParameters::BellCrank());
113
114 BellCrank() = default;
116
117 protected:
118 virtual ~BellCrank();
119 };
120
121
122
124 {
125 public:
132 RackPinion(WheelJoint* leftWheel, WheelJoint* rightWheel,
133 SteeringParameters params = SteeringParameters::RackPinion());
134
135 RackPinion() = default;
137
138 protected:
139 virtual ~RackPinion();
140 };
141
142
143
145 {
146 public:
154 Davis(WheelJoint* leftWheel, WheelJoint* rightWheel,
155 SteeringParameters params = SteeringParameters::Davis());
156
157 Davis() = default;
159
160 protected:
161 virtual ~Davis();
162 };
163
164
165
167 {
168 public:
176 Ackermann(WheelJoint* leftWheel, WheelJoint* rightWheel,
177 SteeringParameters params = SteeringParameters::Ackermann());
178
179 int getNumDOF() const override;
180
181 Ackermann() = default;
183
184 protected:
185 virtual ~Ackermann();
186 };
187}
#define AGX_DECLARE_POINTER_TYPES(type)
Definition: Referenced.h:254
#define AGXSTREAM_DECLARE_SERIALIZABLE(T)
Use this in a Serializable class to add the required methods Important: Use full namespace in the dec...
Definition: Serializable.h:208
#define AGXVEHICLE_EXPORT
Class for managing the rendering of geometries, shapes, rigid bodies, constraints etc.
int getNumDOF() const override
Ackermann(WheelJoint *leftWheel, WheelJoint *rightWheel, SteeringParameters params=SteeringParameters::Ackermann())
Construct the Ackermann steering mechanism.
BellCrank(WheelJoint *leftWheel, WheelJoint *rightWheel, SteeringParameters params=SteeringParameters::BellCrank())
Construct the bell-crank steering geometry.
Davis(WheelJoint *leftWheel, WheelJoint *rightWheel, SteeringParameters params=SteeringParameters::Davis())
Construct the Davis steering mechanism.
RackPinion(WheelJoint *leftWheel, WheelJoint *rightWheel, SteeringParameters params=SteeringParameters::RackPinion())
Construct the Rack-pinion steering mechanism.
A Steering mechanism is designed to align wheels simultaneously to minimize the slip,...
Definition: Steering.h:46
agx::Real getSteeringAngle() const
int getNumDOF() const override
agx::Real getMaximumSteeringAngle(agx::UInt side) const
agxVehicle::WheelJoint * getRightWheelJoint() const
void setSteeringAngle(agx::Real angle)
Set the value of the steering angle.
void render(class agxRender::RenderManager *mgr, float scale) const override
Setup debug rendering of the steering geometry.
agxVehicle::WheelJoint * getLeftWheelJoint() const
const agxVehicle::SteeringParameters & getSteeringParameters() const
Warning: there is no setSteeringParameters() method, since that requires reinitialization.
class SteeringImplementation * m_impl
Definition: Steering.h:97
The wheel constraint is designed to attach two bodies such that one of them is free to rotate about a...
Definition: WheelJoint.h:73
The base class for a constraint.
Definition: Constraint.h:89
This namespace contains classes related to vehicles dynamics.
uint64_t UInt
Definition: Integer.h:27
double Real
Definition: Real.h:42