CalculateRelativeMovement.cpp
Go to the documentation of this file.
1/*
2 * This file is part of ArmarX.
3 *
4 * ArmarX is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 *
8 * ArmarX is distributed in the hope that it will be useful, but
9 * WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * @package navigation::NavigationCommands
17 * @author Fabian Reister ( fabian dot reister at kit dot edu )
18 * @date 2022
19 * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
20 * GNU General Public License
21 */
22
24
25#include <Eigen/Core>
26#include <Eigen/Geometry>
27
29
31{
32 // DO NOT EDIT NEXT LINE
33 CalculateRelativeMovement::SubClassRegistry
34 CalculateRelativeMovement::Registry(CalculateRelativeMovement::GetName(),
36
37 void
39 {
40 // put your user code for the enter-point here
41 // execution time should be short (<100ms)
42 }
43
44 void
46 {
47 const float distance = in.getdistanceMillimeters();
48 const Eigen::Vector3f movementDirection = in.getmovementDirection()->toEigen();
49
50 Eigen::Vector3f relativeMovement = distance * movementDirection.normalized();
51
52 const Eigen::Isometry3f robotRelativeMovement((Eigen::Translation3f(relativeMovement)));
53
54 out.setrelativeMovement(toIce(robotRelativeMovement.matrix()));
55 emitSuccess();
56 }
57
58 //void CalculateRelativeMovement::onBreak()
59 //{
60 // // put your user code for the breaking point here
61 // // execution time should be short (<100ms)
62 //}
63
64 void
66 {
67 // put your user code for the exit point here
68 // execution time should be short (<100ms)
69 }
70
71 // DO NOT EDIT NEXT FUNCTION
77} // namespace armarx::navigation::statecharts::navigation_commands
static XMLStateFactoryBasePtr CreateInstance(XMLStateConstructorParams stateData)
IceInternal::Handle< XMLStateFactoryBase > XMLStateFactoryBasePtr
Definition XMLState.h:64
void toIce(std::map< IceKeyT, IceValueT > &iceMap, const boost::container::flat_map< CppKeyT, CppValueT > &cppMap)
double distance(const Point &a, const Point &b)
Definition point.hpp:95