@@ -66,13 +66,6 @@ bool Tesseract::init(tesseract_scene_graph::SceneGraph::Ptr scene_graph)
66
66
auto srdf = std::make_shared<tesseract_scene_graph::SRDFModel>();
67
67
srdf->getName () = scene_graph->getName ();
68
68
69
- manipulator_manager_ = std::make_shared<ManipulatorManager>();
70
- if (!manipulator_manager_->init (environment_, srdf))
71
- {
72
- CONSOLE_BRIDGE_logError (" Failed to initialize manipulator manager." );
73
- return false ;
74
- }
75
-
76
69
registerDefaultContactManagers ();
77
70
78
71
initialized_ = true ;
@@ -92,19 +85,12 @@ bool Tesseract::init(tesseract_scene_graph::SceneGraph::Ptr scene_graph,
92
85
93
86
// Construct Environment from Scene Graph
94
87
environment_ = std::make_shared<tesseract_environment::Environment>();
95
- if (!environment_->init <tesseract_environment::OFKTStateSolver>(*scene_graph))
88
+ if (!environment_->init <tesseract_environment::OFKTStateSolver>(*scene_graph, srdf_model ))
96
89
{
97
90
CONSOLE_BRIDGE_logError (" Failed to initialize environment." );
98
91
return false ;
99
92
}
100
93
101
- manipulator_manager_ = std::make_shared<ManipulatorManager>();
102
- if (!manipulator_manager_->init (environment_, std::make_shared<tesseract_scene_graph::SRDFModel>(*srdf_model)))
103
- {
104
- CONSOLE_BRIDGE_logError (" Failed to initialize manipulator manager." );
105
- return false ;
106
- }
107
-
108
94
registerDefaultContactManagers ();
109
95
110
96
initialized_ = true ;
@@ -135,16 +121,6 @@ bool Tesseract::init(const std::string& urdf_string, const tesseract_scene_graph
135
121
return false ;
136
122
}
137
123
138
- auto srdf = std::make_shared<tesseract_scene_graph::SRDFModel>();
139
- srdf->getName () = scene_graph->getName ();
140
-
141
- manipulator_manager_ = std::make_shared<ManipulatorManager>();
142
- if (!manipulator_manager_->init (environment_, srdf))
143
- {
144
- CONSOLE_BRIDGE_logError (" Failed to initialize manipulator manager." );
145
- return false ;
146
- }
147
-
148
124
registerDefaultContactManagers ();
149
125
150
126
initialized_ = true ;
@@ -183,19 +159,12 @@ bool Tesseract::init(const std::string& urdf_string,
183
159
184
160
// Construct Environment
185
161
environment_ = std::make_shared<tesseract_environment::Environment>();
186
- if (!environment_->init <tesseract_environment::OFKTStateSolver>(*scene_graph))
162
+ if (!environment_->init <tesseract_environment::OFKTStateSolver>(*scene_graph, srdf ))
187
163
{
188
164
CONSOLE_BRIDGE_logError (" Failed to initialize environment." );
189
165
return false ;
190
166
}
191
167
192
- manipulator_manager_ = std::make_shared<ManipulatorManager>();
193
- if (!manipulator_manager_->init (environment_, srdf))
194
- {
195
- CONSOLE_BRIDGE_logError (" Failed to initialize manipulator manager." );
196
- return false ;
197
- }
198
-
199
168
registerDefaultContactManagers ();
200
169
201
170
initialized_ = true ;
@@ -227,16 +196,6 @@ bool Tesseract::init(const boost::filesystem::path& urdf_path,
227
196
return false ;
228
197
}
229
198
230
- auto srdf = std::make_shared<tesseract_scene_graph::SRDFModel>();
231
- srdf->getName () = scene_graph->getName ();
232
-
233
- manipulator_manager_ = std::make_shared<ManipulatorManager>();
234
- if (!manipulator_manager_->init (environment_, srdf))
235
- {
236
- CONSOLE_BRIDGE_logError (" Failed to initialize manipulator manager." );
237
- return false ;
238
- }
239
-
240
199
registerDefaultContactManagers ();
241
200
242
201
initialized_ = true ;
@@ -275,34 +234,24 @@ bool Tesseract::init(const boost::filesystem::path& urdf_path,
275
234
276
235
// Construct Environment
277
236
environment_ = std::make_shared<tesseract_environment::Environment>();
278
- if (!environment_->init <tesseract_environment::OFKTStateSolver>(*scene_graph))
237
+ if (!environment_->init <tesseract_environment::OFKTStateSolver>(*scene_graph, srdf ))
279
238
{
280
239
CONSOLE_BRIDGE_logError (" Failed to initialize environment." );
281
240
return false ;
282
241
}
283
242
284
- manipulator_manager_ = std::make_shared<ManipulatorManager>();
285
- if (!manipulator_manager_->init (environment_, srdf))
286
- {
287
- CONSOLE_BRIDGE_logError (" Failed to initialize manipulator manager." );
288
- return false ;
289
- }
290
-
291
243
registerDefaultContactManagers ();
292
244
293
245
initialized_ = true ;
294
246
return true ;
295
247
}
296
248
297
- bool Tesseract::init (const tesseract_environment::Environment& env, const ManipulatorManager& manipulator_manager )
249
+ bool Tesseract::init (const tesseract_environment::Environment& env)
298
250
{
299
251
clear ();
300
252
init_info_ = std::make_shared<TesseractInitInfo>();
301
- init_info_->type = TesseractInitType::ENVIRONMENT_MANIPULATOR_MANAGER ;
253
+ init_info_->type = TesseractInitType::ENVIRONMENT ;
302
254
init_info_->environment = env.clone ();
303
- init_info_->manipulator_manager = manipulator_manager.clone (init_info_->environment );
304
- environment_ = env.clone ();
305
- manipulator_manager_ = manipulator_manager.clone (environment_);
306
255
initialized_ = true ;
307
256
return initialized_;
308
257
}
@@ -329,8 +278,8 @@ bool Tesseract::init(const TesseractInitInfo::Ptr& init_info)
329
278
case TesseractInitType::URDF_PATH_SRDF_PATH:
330
279
init (init_info->urdf_path , init_info->srdf_path , init_info->resource_locator );
331
280
break ;
332
- case TesseractInitType::ENVIRONMENT_MANIPULATOR_MANAGER :
333
- init (*init_info->environment , *init_info-> manipulator_manager );
281
+ case TesseractInitType::ENVIRONMENT :
282
+ init (*init_info->environment );
334
283
break ;
335
284
default :
336
285
CONSOLE_BRIDGE_logError (" Unsupported TesseractInitInfo type." );
@@ -346,10 +295,6 @@ Tesseract::Ptr Tesseract::clone() const
346
295
if (environment_)
347
296
clone->environment_ = environment_->clone ();
348
297
349
- if (clone->environment_ )
350
- if (manipulator_manager_)
351
- clone->manipulator_manager_ = manipulator_manager_->clone (clone->environment_ );
352
-
353
298
clone->init_info_ = init_info_;
354
299
clone->initialized_ = initialized_;
355
300
clone->find_tcp_cb_ = find_tcp_cb_;
@@ -372,8 +317,14 @@ const tesseract_scene_graph::ResourceLocator::Ptr& Tesseract::getResourceLocator
372
317
tesseract_environment::Environment::Ptr Tesseract::getEnvironment () { return environment_; }
373
318
tesseract_environment::Environment::ConstPtr Tesseract::getEnvironment () const { return environment_; }
374
319
375
- ManipulatorManager::Ptr Tesseract::getManipulatorManager () { return manipulator_manager_; }
376
- ManipulatorManager::ConstPtr Tesseract::getManipulatorManager () const { return manipulator_manager_; }
320
+ tesseract_environment::ManipulatorManager::Ptr Tesseract::getManipulatorManager ()
321
+ {
322
+ return environment_->getManipulatorManager ();
323
+ }
324
+ tesseract_environment::ManipulatorManager::ConstPtr Tesseract::getManipulatorManager () const
325
+ {
326
+ return environment_->getManipulatorManager ();
327
+ }
377
328
378
329
/* * @brief registerDefaultContactManagers */
379
330
bool Tesseract::registerDefaultContactManagers ()
@@ -399,7 +350,6 @@ void Tesseract::clear()
399
350
{
400
351
initialized_ = false ;
401
352
environment_ = nullptr ;
402
- manipulator_manager_ = nullptr ;
403
353
init_info_ = nullptr ;
404
354
find_tcp_cb_.clear ();
405
355
}
@@ -409,7 +359,7 @@ Eigen::Isometry3d Tesseract::findTCP(const tesseract_planning::ManipulatorInfo&
409
359
if (manip_info.tcp .empty ())
410
360
return Eigen::Isometry3d::Identity ();
411
361
412
- auto composite_mi_fwd_kin = manipulator_manager_ ->getFwdKinematicSolver (manip_info.manipulator );
362
+ auto composite_mi_fwd_kin = environment_-> getManipulatorManager () ->getFwdKinematicSolver (manip_info.manipulator );
413
363
if (composite_mi_fwd_kin == nullptr )
414
364
throw std::runtime_error (" findTCP: Manipulator '" + manip_info.manipulator + " ' does not exist!" );
415
365
@@ -418,8 +368,8 @@ Eigen::Isometry3d Tesseract::findTCP(const tesseract_planning::ManipulatorInfo&
418
368
{
419
369
// Check Manipulator Manager for TCP
420
370
const std::string& tcp_name = manip_info.tcp .getString ();
421
- if (manipulator_manager_ ->hasGroupTCP (manip_info.manipulator , tcp_name))
422
- return manipulator_manager_ ->getGroupsTCP (manip_info.manipulator , tcp_name);
371
+ if (environment_-> getManipulatorManager () ->hasGroupTCP (manip_info.manipulator , tcp_name))
372
+ return environment_-> getManipulatorManager () ->getGroupsTCP (manip_info.manipulator , tcp_name);
423
373
424
374
// Check Environment for links and calculate TCP
425
375
tesseract_environment::EnvState::ConstPtr env_state = environment_->getCurrentState ();
0 commit comments