CoinRobotViewerAdapter.cpp
Go to the documentation of this file.
1 /*
2  * This file is part of ArmarX.
3  *
4  * ArmarX is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License version 2 as
6  * published by the Free Software Foundation.
7  *
8  * ArmarX is distributed in the hope that it will be useful, but
9  * WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program. If not, see <http://www.gnu.org/licenses/>.
15  *
16  * @package ArmarXGuiPlugins::RobotTrajectoryDesigner::Visualization
17  * @author Timo Birr
18  * @date 2018
19  * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
20  * GNU General Public License
21  */
22 
23 #include "../Util/OrientationConversion.h"
24 #include "CoinRobotViewerAdapter.h"
25 
26 #include "Inventor/draggers/SoDragger.h"
27 
28 #include "Inventor/nodes/SoSeparator.h"
29 
30 #include <Inventor/sensors/SoTimerSensor.h>
31 
32 #include "VirtualRobot/Visualization/CoinVisualization/CoinVisualization.h"
33 
34 #include "VirtualRobot/Visualization/CoinVisualization/CoinVisualizationNode.h"
35 
36 #include "VirtualRobot/Scene.h"
37 
39 
41 
42 #include <Inventor/SoInteraction.h>
43 
44 #include <Inventor/actions/SoLineHighlightRenderAction.h>
45 
46 #include <Inventor/Qt/SoQt.h>
47 
48 #include <Inventor/SoFullPath.h>
49 
50 #include <Inventor/nodes/SoPickStyle.h>
51 
52 #include <Inventor/nodes/SoCube.h>
53 
54 #include <Inventor/nodes/SoTranslation.h>
55 
56 #include <Inventor/misc/SoContextHandler.h>
57 
58 #define ROBOT_UPDATE_TIMER_MS 333
59 
60 #define AUTO_FOLLOW_UPDATE 50
61 
62 
63 
64 using namespace VirtualRobot;
65 using namespace armarx;
66 using namespace Qt;
67 
68 CoinRobotViewerAdapter::CoinRobotViewerAdapter(QWidget* widget): RobotVisualization()
69 {
70 
71 
72  robotUpdateSensor = NULL;
73  this->selectedWaypoint = 0;
74  this->wayPointCounter = 0;
75  this->viewer = std::shared_ptr<RobotViewer>(new RobotViewer(widget));
76  camera = viewer->getCamera();
78  manipulator = new ManipulatorVisualization;
79  SoInteraction::init();
80  viewer->setGLRenderAction(new SoLineHighlightRenderAction);
81  viewer->getRootNode()->addChild((SoNode*)manipulator);
82  manipulatorMoved = false;
83  startUpCameraPositioningFlag = true;
84  selected = new SoSelection();
85  //selected->addSelectionCallback(made_selection, viewer.get());
86  //selected->addcctionCallback(unmade_selection, viewer.get());
87  //selected->setPickFilterCallback(pickFilterCB, viewer.get(), true);
88  //selected->policy = SoSelection::SINGLE;
89  viewer->getRootNode()->addSelectionCallback(made_selection, viewer.get());
90  viewer->getRootNode()->addDeselectionCallback(unmade_selection, viewer.get());
91  viewer->getRootNode()->setPickFilterCallback(pickFilterCB, viewer.get(), true);
92  viewer->getRootNode()->policy = SoSelection::SINGLE;
93  manipulator->addManipFinishCallback(manipFinishCallback, this);
94  manipulator->addManipMovedCallback(manipMovedCallback, this);
95  SoSensorManager* sensor_mgr = SoDB::getSensorManager();
96  autoFollowSensor = new SoTimerSensor(autoFollowSensorTimerCB, this);
97  autoFollowSensor->setInterval(SbTime(AUTO_FOLLOW_UPDATE / 1000.0f));
98  sensor_mgr->insertTimerSensor(autoFollowSensor);
99  viewer->getRootNode()->addChild((SoNode*)manipulator);
100  manipFinishCallback(this, NULL);
101 
102  //selected->ref();
104 }
105 
107 {
108 
109  this->clearTrajectory();
110  while (transitions.getLength() != 0)
111  {
112  transitions.remove(0);
113  }
114  while (wayPoints.getLength() != 0)
115  {
116  wayPoints.remove(0);
117  }
118  SoSensorManager* sensor_mgr = SoDB::getSensorManager();
119  sensor_mgr->removeTimerSensor(robotUpdateSensor);
120  sensor_mgr->removeTimerSensor(autoFollowSensor);
121  this->viewer->getRootNode()->removeAllChildren();
122 
123  manipulator->addManipFinishCallback(NULL, NULL);
124  manipulator->addManipMovedCallback(NULL, NULL);
125  manipulator->removeVisualization();
126  manipulator = NULL;
127  viewer = NULL;
128  robotUpdateSensor = NULL;
129  autoFollowSensor = NULL;
130  selected = NULL;
131  dragger = NULL;
132  camera = NULL;
133  factory = NULL;
134  ARMARX_INFO << "Destroyed CoinViewer";
135 }
136 
137 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
138 /// METHODS FOR VISUALIZATION SETUP
139 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
140 void CoinRobotViewerAdapter::addRobotVisualization(RobotPtr robot, QString selectedChain = "")
141 {
142  if (robot)
143  {
144  if ((robot) && (this->robot) && this->robot->getName() != robot->getName())
145  {
146  this->viewer->getRootNode()->removeAllChildren();
147  }
148  this->robot = robot;
149  this->selectedWaypoint = 0;
150  viewer->getRootNode()->deselectAll();
151  manipulator->removeVisualization();
152  manipulatorMoved = false;
153  viewer->getRootNode()->addChild((SoNode*)manipulator);
154  //Make Robot not pickable
155  SoPickStyle* unpickable = new SoPickStyle();
156  unpickable->style = SoPickStyle::UNPICKABLE;
157  SoPickStyle* pickable = new SoPickStyle();
158  pickable->style = SoPickStyle::SHAPE;
159  viewer->getRootNode()->addChild(unpickable);
160  CoinVisualizationPtr robotViewerVisualization = this->robot->getVisualization<VirtualRobot::CoinVisualization>();
161  this->viewer->getRootNode()->addChild(robotViewerVisualization->getCoinVisualization());
162  RobotNodeSetPtr nodeset = robot->getRobotNodeSet(selectedChain.toStdString());
163  //manipulator->setVisualization(robot, nodeset);
164  SoSensorManager* sensor_mgr = SoDB::getSensorManager();
165  sensor_mgr->removeTimerSensor(robotUpdateSensor);
166  robotUpdateSensor = new SoTimerSensor(robotUpdateTimerCB, this);
167  robotUpdateSensor->setInterval(SbTime(ROBOT_UPDATE_TIMER_MS / 1000.0f));
168  sensor_mgr->insertTimerSensor(robotUpdateSensor);
169 
170  viewer->getRootNode()->addChild(pickable);
171  viewer->getRootNode()->addChild((SoNode*)manipulator);
172  manipulator->addManipFinishCallback(manipFinishCallback, this);
173  manipulator->addManipMovedCallback(manipMovedCallback, this);
174  viewer->viewAll();
175  }
176 }
177 
179 {
180  CoinVisualizationPtr sceneVisualization = scene->getVisualization<VirtualRobot::CoinVisualization>();
181  this->viewer->getRootNode()->addChild(sceneVisualization->getCoinVisualization());
182 }
183 
184 void CoinRobotViewerAdapter::setCamera(Eigen::VectorXf position, Eigen::VectorXf pointAtA, Eigen::VectorXf pointAtB)
185 {
186  camera->position.setValue(position[0], position[1], position[2]);
187  camera->pointAt(SbVec3f(pointAtA[0], pointAtA[1], pointAtA[2]), SbVec3f(pointAtB[0], pointAtB[1], pointAtB[2]));
188  camera->viewAll(viewer->getRootNode(), SbViewportRegion());
189 }
190 
191 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
192 /// METHODS FOR TRANSITIONS
193 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
194 void CoinRobotViewerAdapter::addTransitionVisualization(int index, std::vector<PoseBasePtr> transition)
195 {
196  VisualizationNodePtr node = this->factory->createCurve(transition, false);
197  CoinVisualizationNodePtr visu = boost::dynamic_pointer_cast<CoinVisualizationNode>(node);
198  SoNode* newTransition = visu->getCoinVisualization();
199  viewer->getRootNode()->addChild(newTransition);
200  transitions.insert(newTransition, index);
201 }
202 
204 {
205  SoNode* toDelete = transitions[index];
206  viewer->getRootNode()->removeChild(toDelete);
207  transitions.remove(index);
208 }
209 
210 void CoinRobotViewerAdapter::highlightTransitionVisualization(int index, std::vector<PoseBasePtr> transition)
211 {
213  VisualizationNodePtr node = this->factory->createCurve(transition, true);
214  CoinVisualizationNodePtr visu = boost::dynamic_pointer_cast<CoinVisualizationNode>(node);
215  SoNode* newTransition = visu->getCoinVisualization();
216  viewer->getRootNode()->addChild(newTransition);
217  transitions.insert(newTransition, index);
218  /* std::vector<Eigen::Vector3f> curve = std::vector<Eigen::Vector3f>();
219 
220  for (Vector3BasePtr position : transition)
221  {
222  curve.push_back(Eigen::Vector3f(position->x, position->y, position->z));
223  }
224  removeTransitionVisualization(index);
225  transitions.insert(dynamic_cast<CoinVisualizationNode&>(visu).getCoinVisualization(), index);*/
226 }
227 
228 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
229 /// INHERITED BY OBSERVER
230 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
232 {
233  return manipulator->getUserDesiredPose();
234 }
235 
237 {
238  //ARMARX_INFO << std::to_string(this->selectedWaypoint);
239  return this->selectedWaypoint;
240 }
241 
243 {
244  return std::make_shared<AdvancedCoinVisualizationFactory>(AdvancedCoinVisualizationFactory());
245 }
246 
247 void CoinRobotViewerAdapter::addWaypointVisualization(int index, PoseBasePtr waypoint, EndEffectorPtr tcp)
248 {
249 
250  SoNode* newWaypoint;
251  if (tcp)
252  {
253  VirtualRobot::RobotPtr endEffectorRobot = tcp->createEefRobot("", "");
254  Pose p = Pose(waypoint->position, waypoint->orientation);
255  EndEffectorPtr eef = endEffectorRobot->getEndEffectors()[0];
256  endEffectorRobot->setGlobalPoseForRobotNode(eef->getTcp(), p.toEigen());
257  eef->getTcp()->setGlobalPoseNoChecks(p.toEigen());
258 
259  newWaypoint = CoinVisualizationFactory::getCoinVisualization(endEffectorRobot, SceneObject::VisualizationType::Full, true);
260  }
261  else
262  {
263  SoCube* cube = new SoCube();
264  cube->width = 0.09;
265  cube->height = 0.09;
266  cube->depth = 0.09;
267  SoTranslation* cubePoint = new SoTranslation();
268  cubePoint->translation.setValue(waypoint->position->x / 1000.0, waypoint->position->y / 1000.0, waypoint->position->z / 1000.0);
269  SoSeparator* parent = new SoSeparator();
270  parent->addChild(cubePoint);
271  parent->addChild(cube);
272  newWaypoint = parent;
273  }
274  const std::string s = "W" + std::to_string(index);
275  const char* c = s.c_str();
276  newWaypoint->setName(SbName(c));
277  std::string st = std::string(newWaypoint->getName().getString());
278  viewer->getRootNode()->addChild(newWaypoint);
279  viewer->getRootNode()->select(newWaypoint);
280  wayPoints.insert(newWaypoint, index);
281  wayPointCounter++;
282  viewer->getRootNode()->deselectAll();
283 }
284 
286 {
287  SoNode* toDelete = wayPoints[index];
288  viewer->getRootNode()->removeChild(toDelete);
289  wayPoints.remove(index);
290  viewer->getRootNode()->deselectAll();
291 }
292 
294 {
295  while (wayPoints.getLength() != 0)
296  {
298  }
299  wayPointCounter = 0;//just to be sure
300 }
301 
303 {
304  this->selectedWaypoint = index;
305  refreshSelectedPoint();
306 }
307 
308 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
309 /// SETTING MANIPULATOR
310 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
311 void CoinRobotViewerAdapter::setManipulator(VirtualRobot::RobotNodeSetPtr kc, std::vector<float>jointAngles)
312 {
313  if (!kc)
314  {
315  manipulator->removeVisualization();
316  return;
317  }
318  robot->getRobotNodeSet(kc->getName())->setJointValues(jointAngles);
319  manipulator->setVisualization(robot, kc);
320  manipulator->addManipFinishCallback(manipFinishCallback, this);
321  manipulator->addManipMovedCallback(manipMovedCallback, this);
322 }
323 
324 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
325 /// UPDATING OF VISUALIZATION
326 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
328 {
329  viewer->render();
330 }
331 
333 {
334  viewer->show();
335 }
336 
338 {
339  viewer->hide();
340 }
341 
343 {
344  while (transitions.getLength() != 0)
345  {
347  }
348  while (wayPoints.getLength() != 0)
349  {
351  }
352 
353 }
354 
356 {
357  std::shared_ptr<CoinRobotViewerAdapter> reproduction = std::make_shared<CoinRobotViewerAdapter>(parent);
358  reproduction->viewer->getRootNode()->addChild(this->viewer->getRootNode());
359  reproduction->camera = reproduction->viewer->getCamera();
360  Eigen::Vector3f position;
361  Eigen::Vector3f pointAtA = Eigen::Vector3f(0, 0, 0);
362  Eigen::Vector3f pointAtB;
363  position = Eigen::Vector3f(0, 2, 3.5);
364  pointAtB = Eigen::Vector3f(0, 0, 5);
365  reproduction->setCamera(position, pointAtA, pointAtB);
366  reproduction->viewer->getCamera()->viewAll(this->viewer->getRootNode(), SbViewportRegion());
367  return reproduction;
368 }
369 
370 
371 
372 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
373 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
374 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
375 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
376 ///CALLBACK METHODS
377 /// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
378 void CoinRobotViewerAdapter::manipFinishCallback(void* data, SoDragger* dragger)
379 {
381  if (controller)
382  {
383  if (controller->observer.lock())
384  {
385  controller->observer.lock()->refresh();
386  }
387  }
388 }
389 
390 void CoinRobotViewerAdapter::manipMovedCallback(void* data, SoDragger* dragger)
391 {
393  if (controller)
394  {
395  controller->manipulatorMoved = true;
396  if (controller->observer.lock())
397  {
398  controller->observer.lock()->refresh();
399  }
400  }
401 }
402 
403 void CoinRobotViewerAdapter::autoFollowSensorTimerCB(void* data, SoSensor* sensor)
404 {
406 
407  if (controller && controller->manipulatorMoved)
408  {
409  if (controller->observer.lock())
410  {
411  controller->observer.lock()->refresh();
412  }
413  }
414 }
415 
416 void CoinRobotViewerAdapter::made_selection(void* data, SoPath* path)
417 {
419  if (controller)
420  {
421  //ARMARX_INFO << std::to_string(controller->selectedWaypoint);
422  std::string s = path->getTail()->getName().getString();
423  std::string number = s.substr(1);
424  controller->selectedWaypoint = std::stoi(number);
425  //ARMARX_INFO << std::to_string(controller->selectedWaypoint);
426  if (controller->observer.lock())
427  {
428  controller->observer.lock()->refresh();
429  }
430  }
431 }
432 
433 void CoinRobotViewerAdapter::unmade_selection(void* data, SoPath* path)
434 {
436  if (!controller || !controller->robot)
437  {
438  return;
439  }
440 }
441 
442 SoPath* CoinRobotViewerAdapter::pickFilterCB(void* data, const SoPickedPoint* pick)
443 {
445  if (!controller || !controller->robot)
446  {
447  return new SoPath();
448  }
449 
450  SoFullPath* p = (SoFullPath*)pick->getPath();
451  //Make sure we didn't select a manipulator
452  for (int i = 0; i < p->getLength();)
453  {
454  SoNode* n = p->getNode(p->getLength() - 1);
455  //ARMARX_INFO << std::to_string(controller->wayPointCounter);
456  //TODO find out how to get counter
457  for (int j = 0; j < 50; j++)
458  {
459  std::string currentName = std::string(n->getName().getString());
460  //ARMARX_INFO << currentName << "XXXXXXXXXXXX";
461  //ARMARX_INFO << "W" + std::to_string(j) << "XLOKEDFOR";
462  if (currentName == "W" + std::to_string(j))
463  {
464  return p;
465  }
466  }
467  p->truncate(p->getLength() - 1);
468  }
469  return new SoPath();
470 }
471 
472 void CoinRobotViewerAdapter::refreshSelectedPoint()
473 {
474  SoNode* selectedPoint = static_cast<SoNode*>(wayPoints.get(this->selectedWaypoint));
475  this->viewer->getRootNode()->deselectAll();
476  this->viewer->getRootNode()->select(selectedPoint);
477 }
478 
479 void CoinRobotViewerAdapter::robotUpdateTimerCB(void* data, SoSensor* sensor)
480 {
481  //static_cast<SoPerspectiveCamera*>(viewer->getCamera()->);
483  if (!controller || !controller->robot)
484  {
485  return;
486  }
487  //UPDATE SELCETION
488  if (controller->viewer->getRootNode()->getList()->getLength() != 0)
489  {
490  SoPath* p = (SoPath*)controller->viewer->getRootNode()->getList()->get(0);
491  if (p)
492  {
493  std::string s = p->getTail()->getName().getString();
494  if (s.length() != 0)
495  {
496  std::string number = s.substr(1);
497  controller->selectedWaypoint = std::stoi(number);
498  controller->refreshSelectedPoint();
499  if (controller->observer.lock())
500  {
501  controller->observer.lock()->refresh();
502  }
503 
504  }
505  }
506  }
507  controller->viewer->render();
508 
509 
510  if (controller->startUpCameraPositioningFlag)
511  {
512  controller->viewer->cameraViewAll();
513  controller->startUpCameraPositioningFlag = false;
514  }
515 }
armarx::CoinRobotViewerAdapter::setManipulator
void setManipulator(VirtualRobot::RobotNodeSetPtr kc, std::vector< float >jointAngles) override
SETTING MANIPULATOR.
Definition: CoinRobotViewerAdapter.cpp:311
armarx::CoinRobotViewerAdapter::enableVisualization
void enableVisualization() override
enableVisualization shows the viewer
Definition: CoinRobotViewerAdapter.cpp:332
armarx::CoinRobotViewerAdapter
The CoinRobotViewerAdapter class.
Definition: CoinRobotViewerAdapter.h:41
boost::shared_ptr< VirtualRobot::CoinVisualization >
armarx::navigation::core::Pose
Eigen::Isometry3f Pose
Definition: basic_types.h:31
index
uint8_t index
Definition: EtherCATFrame.h:59
VirtualRobot
Definition: FramedPose.h:43
armarx::CoinRobotViewerAdapter::removeWaypointVisualization
void removeWaypointVisualization(int index) override
removeWaypointVisualization removes the Waypoint with index so that it is no longer visualized
Definition: CoinRobotViewerAdapter.cpp:285
armarx::CoinRobotViewerAdapter::disableVisualization
void disableVisualization() override
disableVisualization hides the viewer
Definition: CoinRobotViewerAdapter.cpp:337
Pose.h
armarx::CoinRobotViewerAdapter::addWaypointVisualization
void addWaypointVisualization(int index, PoseBasePtr waypoint, VirtualRobot::EndEffectorPtr tcp) override
METHODS FOR WAYPOINTS.
Definition: CoinRobotViewerAdapter.cpp:247
c
constexpr T c
Definition: UnscentedKalmanFilterTest.cpp:43
scene3D::ScenePtr
std::shared_ptr< Scene > ScenePtr
Definition: PointerDefinitions.h:36
armarx::RobotVisualization::scene
VirtualRobot::ScenePtr scene
Definition: RobotVisualization.h:155
armarx::CoinRobotViewerAdapter::removeTransitionVisualization
void removeTransitionVisualization(int index) override
removeTransitionVisualization removes visualization of a certain transition
Definition: CoinRobotViewerAdapter.cpp:203
armarx::CoinRobotViewerAdapter::removeAllWaypointVisualizations
void removeAllWaypointVisualizations() override
removeAllWaypointVisualizations removes all waypoints that are currently visualized
Definition: CoinRobotViewerAdapter.cpp:293
armarx::CoinRobotViewerAdapter::setSelectedWaypoint
void setSelectedWaypoint(int index) override
removeWaypointVisualization removes the Waypoint with index so that it is no longer visualized
Definition: CoinRobotViewerAdapter.cpp:302
armarx::AdvancedCoinVisualizationFactory
Definition: AdvancedCoinVisualizationFactory.h:33
armarx::CoinRobotViewerAdapter::highlightTransitionVisualization
void highlightTransitionVisualization(int index, std::vector< PoseBasePtr > transition) override
highlightTransitionVisualization highlights the transition with index i by changing the color of all ...
Definition: CoinRobotViewerAdapter.cpp:210
AUTO_FOLLOW_UPDATE
#define AUTO_FOLLOW_UPDATE
Definition: CoinRobotViewerAdapter.cpp:60
controller
Definition: AddOperation.h:39
armarx::RobotVisualization
Definition: RobotVisualization.h:39
data
uint8_t data[1]
Definition: EtherCATFrame.h:68
armarx::RobotVisualization::robot
VirtualRobot::RobotPtr robot
Definition: RobotVisualization.h:156
armarx::Pose::toEigen
virtual Eigen::Matrix4f toEigen() const
Definition: Pose.cpp:334
ROBOT_UPDATE_TIMER_MS
#define ROBOT_UPDATE_TIMER_MS
Definition: CoinRobotViewerAdapter.cpp:58
armarx::AdvancedVisualizationFactoryPtr
std::shared_ptr< AdvancedVisualizationFactory > AdvancedVisualizationFactoryPtr
Definition: AdvancedVisualizationFactory.h:191
armarx::CoinRobotViewerAdapter::addSceneVisualization
void addSceneVisualization(VirtualRobot::ScenePtr scene) override
addSceneVisualization visualizes the whole scene where the robot is placed in
Definition: CoinRobotViewerAdapter.cpp:178
armarx::to_string
const std::string & to_string(const std::string &s)
Definition: StringHelpers.h:40
armarx::ManipulatorVisualization::getUserDesiredPose
Eigen::Matrix4f getUserDesiredPose()
Definition: ManipulatorVisualization.cpp:158
armarx::CoinRobotViewerAdapter::clearTrajectory
void clearTrajectory() override
clearTrajectory removes all visualization of waypoints and transitions but keeps the robot and the ma...
Definition: CoinRobotViewerAdapter.cpp:342
armarx::CoinRobotViewerAdapter::createAdvancedVisualizationFactory
AdvancedVisualizationFactoryPtr createAdvancedVisualizationFactory() override
Definition: CoinRobotViewerAdapter.cpp:242
armarx::channels::KinematicUnitObserver::jointAngles
const KinematicUnitDatafieldCreator jointAngles("jointAngles")
armarx::RobotVisualizationPtr
std::shared_ptr< RobotVisualization > RobotVisualizationPtr
Definition: RobotVisualization.h:161
armarx::Pose
The Pose class.
Definition: Pose.h:242
GfxTL::Matrix4f
MatrixXX< 4, 4, float > Matrix4f
Definition: MatrixXX.h:601
ARMARX_INFO
#define ARMARX_INFO
Definition: Logging.h:174
armarx::CoinRobotViewerAdapter::updateRobotVisualization
void updateRobotVisualization() override
UPDATING OF VISUALIZATION.
Definition: CoinRobotViewerAdapter.cpp:327
armarx::RobotViewer
Definition: RobotViewer.h:32
armarx::ManipulatorVisualization::removeVisualization
void removeVisualization()
Definition: ManipulatorVisualization.cpp:138
armarx::ManipulatorVisualization
Definition: ManipulatorVisualization.h:51
armarx::CoinRobotViewerAdapter::getManipulatorPose
Eigen::Matrix4f getManipulatorPose() override
INHERITED BY OBSERVER.
Definition: CoinRobotViewerAdapter.cpp:231
armarx::CoinRobotViewerAdapter::setCamera
void setCamera(const Eigen::VectorXf position, const Eigen::VectorXf pointAtA, const Eigen::VectorXf pointAtB) override
setCamera sets the camera at a certain position
Definition: CoinRobotViewerAdapter.cpp:184
armarx::ManipulatorVisualization::setVisualization
void setVisualization(VirtualRobot::EndEffectorPtr endEffector)
Definition: ManipulatorVisualization.cpp:52
CoinRobotViewerAdapter.h
armarx::CoinRobotViewerAdapter::reproduce
RobotVisualizationPtr reproduce(QWidget *parent) override
UPDATING OF VISUALIZATION.
Definition: CoinRobotViewerAdapter.cpp:355
Logging.h
armarx::CoinRobotViewerAdapter::addTransitionVisualization
void addTransitionVisualization(int index, std::vector< PoseBasePtr > transition) override
METHODS FOR TRANSITIONS.
Definition: CoinRobotViewerAdapter.cpp:194
armarx::CoinRobotViewerAdapter::~CoinRobotViewerAdapter
~CoinRobotViewerAdapter()
Definition: CoinRobotViewerAdapter.cpp:106
armarx::ctrlutil::s
double s(double t, double s0, double v0, double a0, double j)
Definition: CtrlUtil.h:33
armarx::CoinRobotViewerAdapter::addRobotVisualization
void addRobotVisualization(VirtualRobot::RobotPtr robot, QString selectedChain) override
METHODS FOR VISUALIZATION SETUP.
Definition: CoinRobotViewerAdapter.cpp:140
armarx
This file offers overloads of toIce() and fromIce() functions for STL container types.
Definition: ArmarXTimeserver.cpp:28
armarx::AdvancedCoinVisualizationFactoryPtr
std::shared_ptr< AdvancedCoinVisualizationFactory > AdvancedCoinVisualizationFactoryPtr
Definition: AdvancedCoinVisualizationFactory.h:49
VirtualRobot::RobotPtr
std::shared_ptr< class Robot > RobotPtr
Definition: Bus.h:18
armarx::CoinRobotViewerAdapter::getSelectedWaypoint
int getSelectedWaypoint() override
getSelectedWaypoint
Definition: CoinRobotViewerAdapter.cpp:236