28 #include <VirtualRobot/Robot.h>
36 #include <RobotAPI/interface/units/RobotUnit/RobotUnitInterface.h>
47 #include <armarx/control/components/controller_creator/ComponentInterface.h>
98 void createRemoteGuiTab();
103 void RemoteGui_update() override;
107 std::string
createController(
const std::string& controllerNamePrefix,
const std::string &robotNodeSet,
const std::string& controllerType,
const std::string& configFilename,
const Ice::Current& = Ice::emptyCurrent)
override;
108 Ice::FloatSeq
getPoseInRootFrame(
const std::string& nodeName,
const Ice::Current& = Ice::emptyCurrent)
override;
109 Ice::FloatSeq
getPrevTargetPose(
const std::string& controllerName,
const Ice::Current& = Ice::emptyCurrent)
override;
111 std::string
kinestheticTeaching(
const std::string& kinematicChainName,
const std::string& side,
const std::string &fileName,
const Ice::Current& = Ice::emptyCurrent)
override;
114 bool updateTargetPose(
const std::string &controllerName,
const std::string& controllerType,
const Ice::FloatSeq& targetPoseVector,
const Ice::Current & = Ice::emptyCurrent)
override;
115 bool updateTargetNullspaceJointAngles(
const std::string &controllerName,
const std::string &controllerType,
const Ice::FloatSeq& targetNullspaceJointAngle,
const Ice::Current & = Ice::emptyCurrent)
override;
116 bool updateTarget(
const std::string &controllerName,
const std::string &controllerType,
const Ice::FloatSeq& targetPoseVector,
const Ice::FloatSeq& targetNullspaceJointAngle,
const Ice::Current & = Ice::emptyCurrent)
override;
127 void drawBoxes(const Properties& p, viz::Client& arviz);
130 std::string createImpedanceController(
const std::string &controllerNamePrefix,
const std::string &robotNodeSet,
const std::string &configFilename);
131 std::string createImpedanceMPController(
const std::string &controllerNamePrefix,
const std::string &robotNodeSet,
const std::string &configFilename);
132 std::string createAdmittanceController(
const std::string &controllerNamePrefix,
const std::string &robotNodeSet,
const std::string &configFilename);
137 static const std::string defaultName;
146 ForceTorqueUnitObserverInterfacePrx m_force_torque_observer;
151 VirtualRobot::RobotNodeSetPtr m_rns_l;
152 VirtualRobot::RobotNodeSetPtr m_rns_r;
154 std::map<std::string, std::optional<control::client::ControllerWrapper<control::common::ControllerType::TSImpedance>>> m_ctrlTSImpedance;
155 std::map<std::string, std::optional<control::client::ControllerWrapper<control::common::ControllerType::TSAdmittance>>> m_ctrlTSAdmittance;
156 std::map<std::string, std::optional<control::client::ControllerWrapper<control::common::ControllerType::TSImpedanceMP>>> m_ctrlTSImpedanceMP;
157 std::map<std::string, VirtualRobot::RobotNodeSetPtr> m_robotNodeSets;
158 std::map<std::string, unsigned int> m_controllerJointNumbers;
160 std::map<std::string, Eigen::Matrix4f> m_prevTargetPose;
161 std::map<std::string, Eigen::VectorXf> m_prevNullspaceJointTarget;
167 std::string robotName =
"Armar6";
168 std::string robotUnitName =
"Armar6Unit";
169 std::string ftObserverName =
"Armar6ForceTorqueObserver";
170 std::string ftSensorNameLeft =
"FT L_ArmL_FT";
171 std::string ftSensorNameRight =
"FT R_ArmR_FT";
173 std::string defaultRobotNodeSetLeft =
"LeftArm";
174 std::string defaultRobotNodeSetRight =
"RightArm";
176 Properties properties;
185 struct RemoteGuiTab : armarx::RemoteGui::Client::Tab
187 armarx::RemoteGui::Client::LineEdit boxLayerName;
188 armarx::RemoteGui::Client::IntSpinBox numBoxes;
190 armarx::RemoteGui::Client::Button drawBoxes;