JointLimitMonitor.hpp
Go to the documentation of this file.
1 #ifndef YOUBOT_JOINTLIMITMONITOR_H
2 #define YOUBOT_JOINTLIMITMONITOR_H
3 
4 /****************************************************************
5  *
6  * Copyright (c) 2011
7  * All rights reserved.
8  *
9  * Hochschule Bonn-Rhein-Sieg
10  * University of Applied Sciences
11  * Computer Science Department
12  *
13  * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
14  *
15  * Author:
16  * Jan Paulus, Nico Hochgeschwender, Michael Reckhaus, Azamat Shakhimardanov
17  * Supervised by:
18  * Gerhard K. Kraetzschmar
19  *
20  * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
21  *
22  * This sofware is published under a dual-license: GNU Lesser General Public
23  * License LGPL 2.1 and BSD license. The dual-license implies that users of this
24  * code may choose which terms they prefer.
25  *
26  * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
27  *
28  * Redistribution and use in source and binary forms, with or without
29  * modification, are permitted provided that the following conditions are met:
30  *
31  * * Redistributions of source code must retain the above copyright
32  * notice, this list of conditions and the following disclaimer.
33  * * Redistributions in binary form must reproduce the above copyright
34  * notice, this list of conditions and the following disclaimer in the
35  * documentation and/or other materials provided with the distribution.
36  * * Neither the name of the Hochschule Bonn-Rhein-Sieg nor the names of its
37  * contributors may be used to endorse or promote products derived from
38  * this software without specific prior written permission.
39  *
40  * This program is free software: you can redistribute it and/or modify
41  * it under the terms of the GNU Lesser General Public License LGPL as
42  * published by the Free Software Foundation, either version 2.1 of the
43  * License, or (at your option) any later version or the BSD license.
44  *
45  * This program is distributed in the hope that it will be useful,
46  * but WITHOUT ANY WARRANTY; without even the implied warranty of
47  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
48  * GNU Lesser General Public License LGPL and the BSD license for more details.
49  *
50  * You should have received a copy of the GNU Lesser General Public
51  * License LGPL and BSD license along with this program.
52  *
53  ****************************************************************/
54 
59 
60 namespace youbot {
61 
66  public:
67  JointLimitMonitor(const YouBotJointStorage& jointParameters, const quantity<angular_acceleration>& jointAcceleration);
68 
69  virtual ~JointLimitMonitor();
70 
71  JointLimitMonitor(const JointLimitMonitor & source);
72 
74 
75  void checkLimitsPositionControl(const quantity<plane_angle>& setpoint);
76 
77  void checkLimitsEncoderPosition(const signed int& setpoint);
78 
79  void checkLimitsProcessData(const SlaveMessageInput& messageInput, SlaveMessageOutput& messageOutput);
80 
81 
82  private:
83  double calculateDamping(const int actualPosition);
84 
85  void calculateBrakingDistance(const SlaveMessageInput& messageInput);
86 
87  int calculateBrakingVelocity(const int actualPosition);
88 
90 
91  double acceleration;
92 
94 
96 
98 
100 
101  bool isbraking;
102 
104 
106 
107  double newVelocity;
108 
109 };
110 
111 } // namespace youbot
112 #endif
Output part from the EtherCat message of the youBot EtherCat slaves.
JointLimitMonitor(const YouBotJointStorage &jointParameters, const quantity< angular_acceleration > &jointAcceleration)
int calculateBrakingVelocity(const int actualPosition)
void checkLimitsEncoderPosition(const signed int &setpoint)
It monitors the joint position and will decelerate and stop the joint if it is close the limits...
void calculateBrakingDistance(const SlaveMessageInput &messageInput)
void checkLimitsProcessData(const SlaveMessageInput &messageInput, SlaveMessageOutput &messageOutput)
void checkLimitsPositionControl(const quantity< plane_angle > &setpoint)
Input part from the EtherCat message of the youBot EtherCat slaves.
double calculateDamping(const int actualPosition)
JointLimitMonitor & operator=(const JointLimitMonitor &source)
Stores YouBotJoint informations which are needed in the driver.


youbot_driver
Author(s): Jan Paulus
autogenerated on Mon Jun 10 2019 15:46:24