10 #include <unordered_map>
38 std::unique_ptr<MultiBody> m_multibody;
41 std::unordered_map<std::string, std::unique_ptr<Actuator>> m_actuators;
42 std::unique_ptr<CSpaceBoundingBox> m_cspace;
43 std::unique_ptr<CSpaceBoundingBox> m_vspace;
46 bool m_virtual{
false};
47 bool m_nonholonomic{
false};
48 bool m_carlike{
false};
49 double m_maxLinearVelocity{10};
50 double m_maxAngularVelocity{1};
51 std::string m_capability;
53 bool m_manipulator{
false};
54 std::string m_defaultStrategyLabel;
71 Body* effectorBody{
nullptr};
74 mathtool::Vector3d contactPoint;
78 mathtool::Vector3d centerToContactDir;
81 EndEffector m_endEffector;
99 const std::string& _label);
186 const std::unordered_map<std::
string, std::unique_ptr<
Actuator>>&
215 const std::
string&
GetLabel() const noexcept;
243 std::ostream& operator<<(std::ostream&, const
Robot&);
Definition: Actuator.h:35
Definition: Boundary.h:30
An n-dimensional bounding box in c-space.
Definition: CSpaceBoundingBox.h:10
Definition: MPProblem.h:34
Definition: MultiBody.h:65
void ReadMultiBodyXML(XMLNode &_node)
Definition: Robot.cpp:235
const std::string & GetCapability() const noexcept
Get the capability for this robot.
Definition: Robot.cpp:415
void SetInitialCfg(Cfg _cfg)
Set initial configuration for the robot (not implemented)
const std::string & GetLabel() const noexcept
Get the unique label for this robot.
Definition: Robot.cpp:402
void ReadMultibodyFile(const std::string &_filename)
Definition: Robot.cpp:246
void ReadXMLFile(const std::string &_filename)
Definition: Robot.cpp:170
Actuator * GetActuator(const std::string &_label) noexcept
Definition: Robot.cpp:345
MultiBody * GetMultiBody() noexcept
Definition: Robot.cpp:322
bool IsFixed() const noexcept
Check if the robot has a fixed base.
Definition: Robot.cpp:435
void InitializePlanningSpaces()
Compute the configuration and velocity spaces for this robot.
Definition: Robot.cpp:264
void SetVirtual(const bool _v) noexcept
Definition: Robot.cpp:367
const EndEffector & GetEndEffector() const noexcept
Access the robot manipulator's end effector, if it exists.
Definition: Robot.cpp:337
bool IsVirtual() const noexcept
Definition: Robot.cpp:360
const std::string & GetDefaultStrategyLabel() const noexcept
Get the default strategy label for this robot.
Definition: Robot.cpp:408
const std::unordered_map< std::string, std::unique_ptr< Actuator > > & GetActuators() const noexcept
Get set of all actuators mapped by label.
Definition: Robot.cpp:352
Robot(MPProblem *const _p, XMLNode &_node)
Definition: Robot.cpp:23
void ReadXMLNode(XMLNode &_node)
Definition: Robot.cpp:178
const CSpaceBoundingBox * GetCSpace() const noexcept
Get the configuration space boundary for this robot.
Definition: Robot.cpp:300
const CSpaceBoundingBox * GetVSpace() const noexcept
Get the velocity space boundary for this robot.
Definition: Robot.cpp:307
void SetCapability(const std::string &_capability)
Set the capability for this robot.
Definition: Robot.cpp:422
double GetMaxLinearVelocity() const noexcept
Get the maximum translational velocity for this robot.
Definition: Robot.cpp:388
Cfg GetInitialCfg()
Get initial configuration for the robot (not implemented)
bool IsManipulator() const noexcept
Check if the robot is a manipulator.
Definition: Robot.cpp:428
bool IsCarlike() const noexcept
Check if the robot is car-like.
Definition: Robot.cpp:381
double GetMaxAngularVelocity() const noexcept
Get the maximum angular velocity for this robot.
Definition: Robot.cpp:395
bool IsNonholonomic() const noexcept
Check if the robot is nonholonomic.
Definition: Robot.cpp:374
MPProblem * GetMPProblem() const noexcept
Get the owning MPProblem.
Definition: Robot.cpp:314