Go to the documentation of this file.
25 #include <VirtualRobot/Robot.h>
30 #include <armarx/control/common/control_law/aron/CollisionAvoidanceConfig.aron.generated.h>
32 #include <simox/control/environment/CollisionRobot.h>
33 #include <simox/control/geodesics/metric/inertia.h>
34 #include <simox/control/impl/simox/robot/Robot.h>
58 using DistanceResults = std::vector<::simox::control::environment::DistanceResult>;
60 using CollisionRobot = ::simox::control::environment::CollisionRobot<hpp::fcl::OBBRSS>;
62 using InertiaPtr = std::shared_ptr<simox::control::geodesics::metric::Inertia>;
63 using CtrlConfig = armarx::control::common::control_law::arondto::CollisionAvoidanceConfig;
65 ::armarx::control::common::control_law::arondto::CollisionAvoidanceConfigDict;
67 using RtStatus = law::CollisionAvoidanceController::RtStatusForSafetyStrategy;
76 VirtualRobot::RobotNodeSetPtr
rtRNS;
95 const std::string& robotNodeSetName,
103 using CollArmPtr = std::shared_ptr<CollisionAvoidanceArmData>;
110 Eigen::VectorXf& qpos,
111 Eigen::VectorXf& qvelFiltered,
113 Eigen::VectorXf& impedanceJointTorque);
137 float preFilterDistance = 0.6;
void setUserCfg(const Config &cfg)
std::shared_ptr< Config > ConfigPtr
~CollisionAvoidanceBase()
CollisionRobotPtr collisionRobotPtr
CollisionAvoidanceBase(const VirtualRobot::RobotPtr &rtRobot, const Config &cfg)
::simox::control::simox::robot::Robot SimoxRobot
InertiaPtr inertiaPtr
self-collision avoidance
std::shared_ptr< SimoxRobot > SimoxRobotPtr
::simox::control::environment::CollisionRobot< hpp::fcl::OBBRSS > CollisionRobot
::armarx::control::common::control_law::arondto::CollisionAvoidanceConfigDict Config
std::vector< std::string > actuatedJointNames
std::vector< std::string > jointNames
void rtLimbControllerRun(const std::string &robotNodeSetName, Eigen::VectorXf &qpos, Eigen::VectorXf &qvelFiltered, float torqueLimit, Eigen::VectorXf &impedanceJointTorque)
This file is part of ArmarX.
std::shared_ptr< CollisionAvoidanceBase > CollisionAvoidanceBasePtr
armarx::TripleBuffer< Config > bufferCfgUserToRT
CollisionAvoidanceArmData(VirtualRobot::RobotPtr rtRobot, const std::string &robotNodeSetName, SimoxRobotPtr simoxReducedRobot, SimoxRobotPtr simoxControlRobot, DistanceResultsPtr collisionPairs, Config &c)
std::vector<::simox::control::environment::DistanceResult > DistanceResults
Eigen::VectorXd qposActuatedJoints
TODO, rename to actuatedJointNames.
std::vector< int > translationJointIndex
armarx::control::common::control_law::arondto::CollisionAvoidanceConfig CtrlConfig
void updateRtConfigFromUser()
SimoxRobotPtr simoxReducedRobotPtr
DistanceResultsPtr collisionPairsPtr
std::shared_ptr< DistanceResults > DistanceResultsPtr
This file is part of ArmarX.
std::shared_ptr< CollisionAvoidanceArmData > CollArmPtr
SimoxRobotPtr simoxControlRobotPtr
law::CollisionAvoidanceController::RtStatusForSafetyStrategy RtStatus
armarx::TripleBuffer< RtStatus > bufferRTtoPublish
std::shared_ptr< simox::control::geodesics::metric::Inertia > InertiaPtr
std::map< std::string, CollArmPtr > collLimb
law::CollisionAvoidanceController controller
controller (maths)
DistanceResultsPtr collisionPairs
std::shared_ptr< std::vector< int > > pointsOnArm
std::unique_ptr< CollisionRobot > CollisionRobotPtr
VirtualRobot::RobotNodeSetPtr rtRNS
!!!!!!! Note that, all the data below should only be accessed in rt thread !!!!!!!
void validateConfigData(Config &cfg)
void rtCollisionChecking()
SimoxRobotPtr simoxReducedRobotPtr
Brief description of class CollisionAvoidanceBase.
std::shared_ptr< class Robot > RobotPtr