25#include <VirtualRobot/VirtualRobot.h>
30#include <armarx/control/common/common.aron.generated.h>
31#include <armarx/control/common/control_law/aron/ObjectCollisionAvoidanceVelControllerConfig.aron.generated.h>
34#include <armarx/control/njoint_controller/task_space/ControllerInterface.h>
38 namespace law = armarx::control::common::control_law;
42 template <
typename NJo
intControllerType,
typename CollisionCtrlCfg>
45 public NJointControllerType,
49 using ConfigPtrT =
typename NJointControllerType::ConfigPtrT;
50 using ArmPtr =
typename NJointControllerType::ArmPtr;
53 const NJointControllerConfigPtr& config,
58 void rtRun(
const IceUtil::Time& sensorValuesTimestamp,
59 const IceUtil::Time& timeSinceLastIteration)
override;
62 const ::armarx::aron::data::dto::DictPtr& scene,
63 const Ice::Current& iceCurrent = Ice::emptyCurrent)
override;
68 const Ice::Current& iceCurrent = Ice::emptyCurrent)
override;
74 void updateConfig(const ::armarx::aron::data::dto::DictPtr& dto,
75 const Ice::Current& iceCurrent)
override;
91 const std::string& layerSuffix);
106 std::atomic_bool collReady{
false};
108 CollisionCtrlCfg userCfgWithColl;
116 law::arondto::TSVelColConfigDict>
120 const NJointControllerConfigPtr& config,
122 std::string
getClassName(
const Ice::Current& = Ice::emptyCurrent)
const override;
Provides a ready-to-use ArViz client arviz as member variable.
Brief description of class ObjectCollisionAvoidanceVelBase.
void collObjectPublish(const std::vector< hpp::fcl::CollisionObject > &objects, const DebugObserverInterfacePrx &debugObs, const std::string &layerSuffix)
void collLimbPublish(CollAvoidVelBase::NodeSetData &arm, const DebugObserverInterfacePrx &debugObs)
void limbRT(ArmPtr &arm, const double deltaT)
void sendCollisionObjects()
std::map< std::string, std::vector< hpp::fcl::CollisionObject > > collisionObjects
void rtPostDeactivateController() override
void updateCollisionAvoidanceConfig(const ::armarx::aron::data::dto::DictPtr &dto, const Ice::Current &iceCurrent=Ice::emptyCurrent) override
NJointController interface for collision avoidance.
void rtRun(const IceUtil::Time &sensorValuesTimestamp, const IceUtil::Time &timeSinceLastIteration) override
void updateCollisionObjects(const std::string &primitiveSourceName, const ::armarx::aron::data::dto::DictPtr &scene, const Ice::Current &iceCurrent=Ice::emptyCurrent) override
typename NJointControllerType::ConfigPtrT ConfigPtrT
static ConfigPtrT GenerateConfigFromVariants(const StringVariantBaseMap &values)
void onPublish(const SensorAndControl &sc, const DebugDrawerInterfacePrx &drawer, const DebugObserverInterfacePrx &) override
typename NJointControllerType::ArmPtr ArmPtr
::armarx::aron::data::dto::DictPtr getConfig(const Ice::Current &iceCurrent) override
NJointTSVelBasedColController(const RobotUnitPtr &robotUnit, const NJointControllerConfigPtr &config, const VirtualRobot::RobotPtr &robot)
void rtPreActivateController() override
NJointControllerBase interface.
void updateConfig(const ::armarx::aron::data::dto::DictPtr &dto, const Ice::Current &iceCurrent) override
std::string getClassName(const Ice::Current &=Ice::emptyCurrent) const override
NJointTSVelColController(const RobotUnitPtr &robotUnit, const NJointControllerConfigPtr &config, const VirtualRobot::RobotPtr &robot)
armarx::aron::data::dto::Dict getCollisionAvoidanceConfig()
void deleteCollisionObjects()
std::shared_ptr< class Robot > RobotPtr
::IceInternal::Handle< Dict > DictPtr
This file is part of ArmarX.
std::shared_ptr< ObjectCollisionAvoidanceVelBase > ObjectCollisionAvoidanceVelBasePtr
core::ObjectCollisionAvoidanceVelBase CollAvoidVelBase
core::ObjectCollisionAvoidanceVelBasePtr CollAvoidVelBasePtr
::IceInternal::ProxyHandle<::IceProxy::armarx::DebugObserverInterface > DebugObserverInterfacePrx
std::map< std::string, VariantBasePtr > StringVariantBaseMap
IceUtil::Handle< class RobotUnit > RobotUnitPtr
::IceInternal::ProxyHandle<::IceProxy::armarx::DebugDrawerInterface > DebugDrawerInterfacePrx
detail::ControlThreadOutputBufferEntry SensorAndControl