Ignition Gazebo
API Reference
5.0.0
insert_drive_file
Tutorials
library_books
Classes
toc
Namespaces
insert_drive_file
Files
launch
Ignition Website
Index
List
Hierarchy
Members: All
Members: Functions
Members: Variables
Members: Typedefs
Members: Enumerations
Members: Enumerator
List
Members
Functions
Typedefs
Variables
Enumerations
Enumerator
src
systems
diff_drive
diff_drive/SpeedLimiter.hh
Go to the documentation of this file.
1
/*********************************************************************
2
* Software License Agreement (BSD License)
3
*
4
* Copyright (c) 2013, PAL Robotics, S.L.
5
* All rights reserved.
6
*
7
* Redistribution and use in source and binary forms, with or without
8
* modification, are permitted provided that the following conditions
9
* are met:
10
*
11
* * Redistributions of source code must retain the above copyright
12
* notice, this list of conditions and the following disclaimer.
13
* * Redistributions in binary form must reproduce the above
14
* copyright notice, this list of conditions and the following
15
* disclaimer in the documentation and/or other materials provided
16
* with the distribution.
17
* * Neither the name of the PAL Robotics nor the names of its
18
* contributors may be used to endorse or promote products derived
19
* from this software without specific prior written permission.
20
*
21
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
24
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
25
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
26
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
27
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
28
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
31
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32
* POSSIBILITY OF SUCH DAMAGE.
33
*********************************************************************/
34
35
/*
36
* Author: Enrique Fernández
37
* Modified: Carlos Agüero
38
*/
39
40
#ifndef IGNITION_GAZEBO_SYSTEMS_SPEEDLIMITER_HH_
41
#define IGNITION_GAZEBO_SYSTEMS_SPEEDLIMITER_HH_
42
43
#include <memory>
44
45
#include <
ignition/gazebo/System.hh
>
46
47
namespace
ignition
48
{
49
namespace
gazebo
50
{
51
// Inline bracket to help doxygen filtering.
52
inline
namespace
IGNITION_GAZEBO_VERSION_NAMESPACE {
53
namespace
systems
54
{
55
// Forward declaration.
56
class
SpeedLimiterPrivate;
57
60
class
SpeedLimiter
61
{
72
public
: SpeedLimiter(
bool
_hasVelocityLimits =
false
,
73
bool
_hasAccelerationLimits =
false
,
74
bool
_hasJerkLimits =
false
,
75
double
_minVelocity = 0.0,
76
double
_maxVelocity = 0.0,
77
double
_minAcceleration = 0.0,
78
double
_maxAcceleration = 0.0,
79
double
_minJerk = 0.0,
80
double
_maxJerk = 0.0);
81
83
public
: ~SpeedLimiter();
84
91
public
:
double
Limit(
double
&_v,
92
double
_v0,
93
double
_v1,
94
double
_dt)
const
;
95
99
public
:
double
LimitVelocity(
double
&_v)
const
;
100
106
public
:
double
LimitAcceleration(
double
&_v,
107
double
_v0,
108
double
_dt)
const
;
109
117
public
:
double
LimitJerk(
double
&_v,
118
double
_v0,
119
double
_v1,
120
double
_dt)
const
;
121
123
private
:
std::unique_ptr<SpeedLimiterPrivate>
dataPtr;
124
};
125
}
126
}
127
}
128
}
129
130
#endif
System.hh
std::unique_ptr< SpeedLimiterPrivate >
ignition
This library is part of the Ignition Robotics project.