ugv_nav4d
Mobility.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 namespace ugv_nav4d{
4 
5 //ATTENTION Mobility is copied from motion_planning_libraries to avoid the dependency. Coping a simple struct is better than getting all the dependencies...
6 
12 struct Mobility {
13  // Defines the forward/backward speed of the robot. Is used for cost calculations
14  double translationSpeed; // m/sec.
15  // Defines the rotational speed of the robot. Is used for cost calculations.
16  double rotationSpeed; // rad/sec
17  // If > 0 allows to specify the minimal turning radius of the system in meter.
18  // Without this not valid curves may be created.
20  // Resolution used to sample the motion primitive spline
22  // Remove the goal offset which is there because of the discretization
27  unsigned int multiplierForward;
28  unsigned int multiplierBackward;
29  unsigned int multiplierLateral;
30  unsigned int multiplierForwardTurn;
31  unsigned int multiplierBackwardTurn;
32  unsigned int multiplierPointTurn;
33  unsigned int multiplierLateralCurve;
34 
35  // If > 0 a new goal would be searched, if the choosen goal is invalid
36  double searchRadius;
37  // The search circle is increased by this value after each unsuccessful case. This option determines the step size between two search radii.
39 
41 
42 
44  translationSpeed(1.0),
45  rotationSpeed(1.0),
46  minTurningRadius(0.0),
48  remove_goal_offset(true),
56  searchRadius(2.0),
59  {
60  }
61 
62  Mobility(double speed,
63  double turning_speed,
64  double min_turning_radius,
65  double sampling_resolution,
66  bool correct_goal_offset,
67  unsigned int mult_forward=0,
68  unsigned int mult_backward=0,
69  unsigned int mult_lateral=0,
70  unsigned int mult_forward_turn=0,
71  unsigned int mult_backward_turn=0,
72  unsigned int mult_pointturn=0,
73  unsigned int mult_lateral_curve=0,
74  double search_radius = 0,
75  double search_progress_steps = 0,
76  double max_motion_curve_length = 0
77  ) :
78  translationSpeed(speed),
79  rotationSpeed(turning_speed),
80  minTurningRadius(min_turning_radius),
81  spline_sampling_resolution(sampling_resolution),
82  remove_goal_offset(correct_goal_offset),
83  multiplierForward(mult_forward),
84  multiplierBackward(mult_backward),
85  multiplierLateral(mult_lateral),
86  multiplierForwardTurn(mult_forward_turn),
87  multiplierBackwardTurn(mult_backward_turn),
88  multiplierPointTurn(mult_pointturn),
89  multiplierLateralCurve(mult_lateral_curve),
90  searchRadius(search_radius),
91  searchProgressSteps(search_progress_steps),
92  maxMotionCurveLength(max_motion_curve_length)
93  {
94  }
95 };
96 
97 
98 }
Definition: Dijkstra.cpp:8
Definition: Mobility.hpp:12
unsigned int multiplierPointTurn
Definition: Mobility.hpp:32
double minTurningRadius
Definition: Mobility.hpp:19
unsigned int multiplierForwardTurn
Definition: Mobility.hpp:30
unsigned int multiplierLateral
Definition: Mobility.hpp:29
double spline_sampling_resolution
Definition: Mobility.hpp:21
unsigned int multiplierBackwardTurn
Definition: Mobility.hpp:31
unsigned int multiplierBackward
Definition: Mobility.hpp:28
double searchRadius
Definition: Mobility.hpp:36
double translationSpeed
Definition: Mobility.hpp:14
Mobility()
Definition: Mobility.hpp:43
Mobility(double speed, double turning_speed, double min_turning_radius, double sampling_resolution, bool correct_goal_offset, unsigned int mult_forward=0, unsigned int mult_backward=0, unsigned int mult_lateral=0, unsigned int mult_forward_turn=0, unsigned int mult_backward_turn=0, unsigned int mult_pointturn=0, unsigned int mult_lateral_curve=0, double search_radius=0, double search_progress_steps=0, double max_motion_curve_length=0)
Definition: Mobility.hpp:62
unsigned int multiplierForward
Definition: Mobility.hpp:27
double rotationSpeed
Definition: Mobility.hpp:16
double searchProgressSteps
Definition: Mobility.hpp:38
double maxMotionCurveLength
Definition: Mobility.hpp:40
bool remove_goal_offset
Definition: Mobility.hpp:23
unsigned int multiplierLateralCurve
Definition: Mobility.hpp:33