1 #ifndef AIKIDO_STATESPACE_STATESPACE_HPP_ 2 #define AIKIDO_STATESPACE_STATESPACE_HPP_ 8 #include "aikido/common/RNG.hpp" 9 #include "aikido/common/pointers.hpp" 10 #include "aikido/statespace/ScopedState.hpp" 13 namespace statespace {
39 using StateHandle = statespace::StateHandle<StateSpace, State>;
40 using StateHandleConst = statespace::StateHandle<StateSpace, const State>;
42 using ScopedState = statespace::ScopedState<StateHandle>;
43 using ScopedStateConst = statespace::ScopedState<StateHandleConst>;
45 virtual ~StateSpace() =
default;
50 ScopedState createState()
const;
53 ScopedState cloneState(
const State* stateIn)
const;
60 virtual State* allocateState()
const;
66 virtual void freeState(
State* _state)
const;
71 virtual std::size_t getStateSizeInBytes()
const = 0;
79 virtual State* allocateStateInBuffer(
void* _buffer)
const = 0;
85 virtual void freeStateInBuffer(
State* _state)
const = 0;
105 virtual void compose(
State* _state1,
const State* _state2)
const;
113 virtual void getIdentity(
State* _out)
const = 0;
123 virtual void getInverse(
const State* _state,
State* _out)
const = 0;
129 virtual void getInverse(
State* _state)
const;
135 virtual std::size_t getDimension()
const = 0;
141 virtual void copyState(
151 virtual void expMap(
const Eigen::VectorXd& _tangent,
State* _out)
const = 0;
159 virtual void logMap(
const State* _in, Eigen::VectorXd& _tangent)
const = 0;
164 virtual void print(
const State* _state, std::ostream& _os)
const = 0;
182 #endif // ifndef AIKIDO_STATESPACE_STATESPACE_HPP_
Format of serialized trajectory in YAML.
Definition: algorithm.hpp:4
A tuple of states where the i-th state is from the i-th subspace.
Definition: CartesianProduct.hpp:162
Definition: StateSpace.hpp:167