TinyURDF 1.0.0
Loading...
Searching...
No Matches
joint.h
Go to the documentation of this file.
1#ifndef INCLUDE_TINYURDF_CORE_JOINT_H_
2#define INCLUDE_TINYURDF_CORE_JOINT_H_
3
4// Copyright 2025 Wissem CHIHA
5
6#include <memory>
7#include <string>
8#include <vector>
9#include <loguru/loguru.hpp>
11#include "core/joint_dynamics.h"
12#include "core/joint_limits.h"
13#include "core/joint_mimic.h"
14#include "core/joint_safety.h"
15#include "common/object_base.h"
16#include "core/pose.h"
17#include "utility/utils.h"
18
19class Joint : public ObjectBase{
20 public:
26 Joint();
27 Joint(const Joint& rhs);
28 Joint(Joint&& rhs) noexcept;
29 void clear() override;
30 bool isA(const char* name) const override;
31 std::string toString() const override;
32 bool empty() const override;
33 const char* getTypename() const override;
34 void setDynamics(const std::shared_ptr<JointDynamics> d);
35 void setLimits(const std::shared_ptr<JointLimits> l);
36 void setSafety(const std::shared_ptr<JointSafety> s);
37 void setCalibration(const std::shared_ptr<JointCalibration> c);
38 void setMimic(const std::shared_ptr<JointMimic> m);
39 void setName(const std::string& name_);
40 void setType(const Type& t_);
41 void setType(const char* c_);
42 void setAxis(double x, double y, double z);
43 std::string getName() const;
44 void pushBackChild(const std::string lk);
45 void pushBackParent(const std::string lk);
46 void pushBackTransform(const std::shared_ptr<Pose> t);
47 bool isChild(const char* name) const;
48 bool isParent(const char* name) const;
49 std::vector<std::shared_ptr<Pose>> getTransform() const;
50 std::vector<std::string> getChild() const;
51 std::vector<std::string> getParent() const;
52 Vec3 getAxis() const;
53
54private:
55 Type type;
56 std::string name;
57 Vec3 axis;
58 std::vector<std::string> child;
59 std::vector<std::string> parent;
60 std::vector<std::shared_ptr<Pose>> transform;
61 std::shared_ptr<JointDynamics> dynamics;
62 std::shared_ptr<JointLimits> limits;
63 std::shared_ptr<JointSafety> safety;
64 std::shared_ptr<JointCalibration> calibration;
65 std::shared_ptr<JointMimic> mimic;
66};
67#endif // INCLUDE_TINYURDF_CORE_JOINT_H
Definition joint.h:19
std::string getName() const
Definition joint.cc:156
void setMimic(const std::shared_ptr< JointMimic > m)
Definition joint.cc:114
std::vector< std::shared_ptr< Pose > > getTransform() const
Definition joint.cc:185
void setType(const Type &t_)
Definition joint.cc:126
std::string toString() const override
Definition joint.cc:47
void clear() override
Definition joint.cc:32
void setSafety(const std::shared_ptr< JointSafety > s)
Definition joint.cc:104
void pushBackChild(const std::string lk)
Definition joint.cc:161
void setCalibration(const std::shared_ptr< JointCalibration > c)
Definition joint.cc:109
std::vector< std::string > getChild() const
Definition joint.cc:190
bool empty() const override
Definition joint.cc:84
Joint()
Definition joint.cc:3
Vec3 getAxis() const
Definition joint.cc:200
void setLimits(const std::shared_ptr< JointLimits > l)
Definition joint.cc:99
Type
Definition joint.h:22
void setAxis(double x, double y, double z)
Definition joint.cc:151
void setName(const std::string &name_)
Definition joint.cc:119
void pushBackTransform(const std::shared_ptr< Pose > t)
Definition joint.cc:171
const char * getTypename() const override
Definition joint.cc:89
void pushBackParent(const std::string lk)
Definition joint.cc:166
bool isChild(const char *name) const
Definition joint.cc:175
std::vector< std::string > getParent() const
Definition joint.cc:195
bool isA(const char *name) const override
Definition joint.cc:42
void setDynamics(const std::shared_ptr< JointDynamics > d)
Definition joint.cc:94
bool isParent(const char *name) const
Definition joint.cc:180
Definition object_base.h:8
Eigen::Matrix< double, 3, 1 > Vec3
Base struct for 3D position vectors.
Definition utils.h:17