diff --git a/MotionPlanning/examples/GraspRRT/GraspRrtWindow.cpp b/MotionPlanning/examples/GraspRRT/GraspRrtWindow.cpp index 20b0f099b814650e74f5565217aadf2b993b8094..891e5f6b22d5fde3855fba9c1876d2050e436ee1 100644 --- a/MotionPlanning/examples/GraspRRT/GraspRrtWindow.cpp +++ b/MotionPlanning/examples/GraspRRT/GraspRrtWindow.cpp @@ -815,59 +815,67 @@ void GraspRrtWindow::testGraspPose() void GraspRrtWindow::plan() { - if (!robot || !rns || !eef || !graspQuality) + if (not (robot and rns and eef and graspQuality)) { return; } - // setup collision detection + // Setup collision detection. CDManagerPtr cdm(new CDManager()); if (colModelRobA) { cdm->addCollisionModel(colModelRobA); } - if (colModelRobB) { cdm->addCollisionModel(colModelRobB); } - if (colModelEnv) { cdm->addCollisionModel(colModelEnv); } cdm->addCollisionModel(targetObject); - cspace.reset(new Saba::CSpaceSampled(robot, cdm, rns, 500000)); - float sampl = (float)UI.doubleSpinBoxCSpaceSampling->value(); - float samplDCD = (float)UI.doubleSpinBoxColChecking->value(); - cspace->setSamplingSize(sampl); - cspace->setSamplingSizeDCD(samplDCD); - float minGraspScore = (float)UI.doubleSpinBoxMinGraspScore->value(); - Saba::GraspRrtPtr graspRrt(new Saba::GraspRrt(cspace, eef, targetObject, graspQuality, colModelEnv, 0.1f, minGraspScore)); + unsigned int maxConfigs = 500000; + cspace = std::make_shared<Saba::CSpaceSampled>(robot, cdm, rns, maxConfigs); + + float sampleSize = static_cast<float>(UI.doubleSpinBoxCSpaceSampling->value()); + float sampleSizeDCD = static_cast<float>(UI.doubleSpinBoxColChecking->value()); + float minGraspScore = static_cast<float>(UI.doubleSpinBoxMinGraspScore->value()); + cspace->setSamplingSize(sampleSize); + cspace->setSamplingSizeDCD(sampleSizeDCD); + + Saba::GraspRrtPtr graspRrt = std::make_shared<Saba::GraspRrt>( + cspace, eef, targetObject, graspQuality, colModelEnv, 0.1f, minGraspScore); graspRrt->setStart(startConfig); - //bool planOk = false; bool planOK = graspRrt->plan(); - if (planOK) { - VR_INFO << " Planning succeeded " << std::endl; + VR_INFO << "Planning succeeded " << std::endl; solution = graspRrt->getSolution(); - Saba::ShortcutProcessorPtr postProcessing(new Saba::ShortcutProcessor(solution, cspace, false)); - solutionOptimized = postProcessing->optimize(100); + + Saba::ShortcutProcessorPtr postProcessing = + std::make_shared<Saba::ShortcutProcessor>(solution, cspace, false); + int steps = 100; + solutionOptimized = postProcessing->optimize(steps); + tree = graspRrt->getTree(); - std::vector<Saba::GraspRrt::GraspInfo, Eigen::aligned_allocator<Saba::GraspRrt::GraspInfo> > vStoreGraspInfo; - graspRrt->getGraspInfoResult(vStoreGraspInfo); + + Saba::GraspRrt::GraspInfoVector graspInfoVector; + graspRrt->getGraspInfoResult(graspInfoVector); grasps.clear(); - for (size_t i = 0; i < vStoreGraspInfo.size(); i++) + for (size_t i = 0; i < graspInfoVector.size(); i++) { std::cout << "processing grasp " << i << std::endl; - VirtualRobot::GraspPtr g(new VirtualRobot::Grasp("GraspRrt Grasp", robot->getType(), eef->getName(), vStoreGraspInfo[i].handToObjectTransform, "GraspRrt", vStoreGraspInfo[i].graspScore)); + VirtualRobot::GraspPtr g = std::make_shared<VirtualRobot::Grasp>( + "GraspRrt Grasp", robot->getType(), eef->getName(), + graspInfoVector[i].handToObjectTransform, "GraspRrt", + graspInfoVector[i].graspScore); grasps.push_back(g); } } @@ -903,7 +911,7 @@ void GraspRrtWindow::sliderSolution(int pos) s = solutionOptimized; } - float p = (float)pos / 1000.0f; + float p = static_cast<float>(pos) / 1000.0f; Eigen::VectorXf iPos; s->interpolate(p, iPos); robot->setJointValues(rns, iPos);