include
exotica_core
task_space_vector.h
Go to the documentation of this file.
1
//
2
// Copyright (c) 2018, University of Edinburgh
3
// All rights reserved.
4
//
5
// Redistribution and use in source and binary forms, with or without
6
// modification, are permitted provided that the following conditions are met:
7
//
8
// * Redistributions of source code must retain the above copyright notice,
9
// this list of conditions and the following disclaimer.
10
// * Redistributions in binary form must reproduce the above copyright
11
// notice, this list of conditions and the following disclaimer in the
12
// documentation and/or other materials provided with the distribution.
13
// * Neither the name of nor the names of its contributors may be used to
14
// endorse or promote products derived from this software without specific
15
// prior written permission.
16
//
17
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
21
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27
// POSSIBILITY OF SUCH DAMAGE.
28
//
29
30
#ifndef EXOTICA_CORE_TASK_SPACE_VECTOR_H_
31
#define EXOTICA_CORE_TASK_SPACE_VECTOR_H_
32
33
#include <
exotica_core/tools/conversions.h
>
34
#include <Eigen/Dense>
35
#include <kdl/frames.hpp>
36
#include <vector>
37
38
namespace
exotica
39
{
40
struct
TaskVectorEntry
41
{
42
RotationType
type
=
RotationType::RPY
;
43
int
id
= 0;
44
45
TaskVectorEntry
();
46
TaskVectorEntry
(
int
_id,
RotationType
_type);
47
static
std::vector<TaskVectorEntry>
reindex
(
const
std::vector<TaskVectorEntry>& _map,
int
_old_start,
int
_new_start);
48
};
49
50
struct
TaskSpaceVector
51
{
52
TaskSpaceVector
();
53
~TaskSpaceVector
();
54
TaskSpaceVector
&
operator=
(std::initializer_list<double> other);
55
Eigen::VectorXd
operator-
(
const
TaskSpaceVector
& other);
56
void
SetZero
(
const
int
n
);
57
58
Eigen::VectorXd
data
;
59
std::vector<TaskVectorEntry>
map
;
60
};
61
}
// namespace exotica
62
63
#endif // EXOTICA_CORE_TASK_SPACE_VECTOR_H_
exotica::TaskVectorEntry::TaskVectorEntry
TaskVectorEntry()
generate_initializers.n
n
Definition:
generate_initializers.py:637
exotica
Definition:
collision_scene.h:46
conversions.h
exotica::RotationType::RPY
@ RPY
exotica::TaskSpaceVector
Definition:
task_space_vector.h:50
exotica::TaskSpaceVector::~TaskSpaceVector
~TaskSpaceVector()
exotica::TaskSpaceVector::map
std::vector< TaskVectorEntry > map
Definition:
task_space_vector.h:59
exotica::TaskSpaceVector::operator=
TaskSpaceVector & operator=(std::initializer_list< double > other)
Definition:
task_space_vector.cpp:43
exotica::TaskSpaceVector::TaskSpaceVector
TaskSpaceVector()
exotica::TaskVectorEntry
Definition:
task_space_vector.h:40
exotica::TaskVectorEntry::type
RotationType type
Definition:
task_space_vector.h:42
exotica::TaskVectorEntry::reindex
static std::vector< TaskVectorEntry > reindex(const std::vector< TaskVectorEntry > &_map, int _old_start, int _new_start)
Definition:
task_space_vector.cpp:93
exotica::TaskSpaceVector::operator-
Eigen::VectorXd operator-(const TaskSpaceVector &other)
Definition:
task_space_vector.cpp:64
exotica::TaskSpaceVector::data
Eigen::VectorXd data
Definition:
task_space_vector.h:58
exotica::RotationType
RotationType
Definition:
conversions.h:80
exotica::TaskSpaceVector::SetZero
void SetZero(const int n)
Definition:
task_space_vector.cpp:54
exotica_core
Author(s): Yiming Yang, Michael Camilleri
autogenerated on Fri Aug 2 2024 08:43:02