You can subscribe to this list here.
2010 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2011 |
Jan
(4) |
Feb
(6) |
Mar
(16) |
Apr
(9) |
May
(6) |
Jun
(2) |
Jul
|
Aug
(14) |
Sep
(10) |
Oct
(12) |
Nov
(15) |
Dec
(3) |
2012 |
Jan
(15) |
Feb
(9) |
Mar
(10) |
Apr
(19) |
May
(20) |
Jun
(14) |
Jul
(1) |
Aug
(2) |
Sep
|
Oct
(3) |
Nov
(1) |
Dec
(2) |
2013 |
Jan
(13) |
Feb
(8) |
Mar
(11) |
Apr
(20) |
May
(11) |
Jun
(11) |
Jul
(12) |
Aug
(3) |
Sep
|
Oct
(7) |
Nov
(9) |
Dec
(1) |
2014 |
Jan
(1) |
Feb
(4) |
Mar
(13) |
Apr
(5) |
May
(10) |
Jun
(27) |
Jul
(17) |
Aug
|
Sep
(8) |
Oct
(12) |
Nov
(19) |
Dec
(31) |
2015 |
Jan
(21) |
Feb
(11) |
Mar
(15) |
Apr
(1) |
May
(15) |
Jun
(11) |
Jul
(23) |
Aug
(6) |
Sep
(28) |
Oct
(17) |
Nov
(18) |
Dec
(1) |
2016 |
Jan
(14) |
Feb
(42) |
Mar
(20) |
Apr
(10) |
May
(11) |
Jun
(3) |
Jul
(9) |
Aug
(6) |
Sep
(6) |
Oct
(8) |
Nov
|
Dec
(1) |
2017 |
Jan
(3) |
Feb
(1) |
Mar
(2) |
Apr
(6) |
May
(11) |
Jun
(5) |
Jul
(1) |
Aug
(1) |
Sep
(1) |
Oct
(4) |
Nov
(1) |
Dec
(8) |
2018 |
Jan
(8) |
Feb
(1) |
Mar
|
Apr
(2) |
May
(3) |
Jun
(8) |
Jul
(21) |
Aug
(7) |
Sep
(12) |
Oct
(4) |
Nov
(3) |
Dec
(2) |
2019 |
Jan
(9) |
Feb
(7) |
Mar
(5) |
Apr
(1) |
May
(4) |
Jun
(1) |
Jul
(2) |
Aug
(2) |
Sep
(2) |
Oct
(5) |
Nov
(2) |
Dec
(5) |
2020 |
Jan
(5) |
Feb
(5) |
Mar
(9) |
Apr
|
May
(2) |
Jun
(10) |
Jul
(7) |
Aug
(1) |
Sep
|
Oct
(3) |
Nov
|
Dec
(1) |
2021 |
Jan
(4) |
Feb
(5) |
Mar
(2) |
Apr
(5) |
May
(1) |
Jun
|
Jul
(2) |
Aug
(13) |
Sep
(5) |
Oct
(5) |
Nov
(1) |
Dec
(1) |
2022 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
(4) |
Oct
|
Nov
(1) |
Dec
|
2023 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2024 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
From: Javier V <jav...@gm...> - 2015-07-08 17:03:45
|
"I have experimented with simplified representations (bounding boxes) for complex meshes with 100k+ vertices and observed very little change in computation time for collisions using FCL." That is something I have never expected. However, you mention that (if I understood correctly) distance queries with bounding boxes could actually improve distance queries with complex meshes. But do you think these times would be comparable to those using complex meshes and collision queries? Javier |
From: Ryan L. <Lun...@gm...> - 2015-07-08 15:52:35
|
Hello Javier, OMPL.app provides a complete StateValidityChecker <http://ompl.kavrakilab.org/classompl_1_1app_1_1FCLStateValidityChecker.html> around FCL for mesh collision checking and distance computations. FCL optimizes the mesh collision checking process considerably using a bounding volume hierarchy. I have experimented with simplified representations (bounding boxes) for complex meshes with 100k+ vertices and observed very little change in computation time for collisions using FCL. Mesh distance computation can easily be one order of magnitude more than a collision query. I suspect that a simplified representation with bounding volumes may speed this up, but I have not tried this. Ryan On Wed, Jul 8, 2015 at 10:29 AM, Javier V <jav...@gm...> wrote: > Hello everyone, > > I would like to know what is the best way to do collision checking in > OMPLapp. Concretely, I am concerned about which robot mesh to use. > Obviously, the simpler the better. however, as I have to load a mesh for > the robot model, I guess a cube would be better than a cylinder, and a > cylinder better than a sphere. Am I wrong? > > Furthermore, in order to optimize it, most probably the best it to use > point-to-plane distance computation, where the plane is each face of the > environment mesh. Does OMPL/FCL provide any simple way of doing this? > > Thanks! > Javier V. Gomez > > > ------------------------------------------------------------------------------ > Don't Limit Your Business. Reach for the Cloud. > GigeNET's Cloud Solutions provide you with the tools and support that > you need to offload your IT needs and focus on growing your business. > Configured For All Businesses. Start Your Cloud Today. > https://www.gigenetcloud.com/ > _______________________________________________ > ompl-users mailing list > omp...@li... > https://lists.sourceforge.net/lists/listinfo/ompl-users > > |
From: Javier V <jav...@gm...> - 2015-07-08 15:29:46
|
Hello everyone, I would like to know what is the best way to do collision checking in OMPLapp. Concretely, I am concerned about which robot mesh to use. Obviously, the simpler the better. however, as I have to load a mesh for the robot model, I guess a cube would be better than a cylinder, and a cylinder better than a sphere. Am I wrong? Furthermore, in order to optimize it, most probably the best it to use point-to-plane distance computation, where the plane is each face of the environment mesh. Does OMPL/FCL provide any simple way of doing this? Thanks! Javier V. Gomez |
From: Mark M. <mm...@ri...> - 2015-07-05 21:48:12
|
Dear Muhayyuddin, There is no reason why different planners should produce a similar number of states in a solution path for a given problem. KPIECE tends to produce many states very quickly. In the sampling-based planning community it is often assumed that any feasible path produced by a planner is post-processed to optimize smoothness/length/etc., since this can usually be done in a small fraction of the planning time. In your code you can add this statement before getting the solution path: ss.simplifySolution(); This will apply a standard “bag of tricks” to make the path look nicer. Best, Mark > On Jul 2, 2015, at 4:50 PM, muhayyuddin Gillani <muh...@ho...> wrote: > > Hi > I am trying to compare the RRT and KPIECE for OpenDE demo in omplapp > Why KPIECE generate to many states as compare to RRT? i am retrieving the size of solution states like this > > std::cout<<"Solution states: "<<ss.getSolutionPath().getStates().size(); > > on average for RRT the states are less than 150 and for KPIECE more than 350 > > I want to know that how the solution path (not geometric) is constructed for KPIECE because KPIECE samples the > motions and each motion contains several states > > Best Regards > Muhayyuddin > ------------------------------------------------------------------------------ > Don't Limit Your Business. Reach for the Cloud. > GigeNET's Cloud Solutions provide you with the tools and support that > you need to offload your IT needs and focus on growing your business. > Configured For All Businesses. Start Your Cloud Today. > https://www.gigenetcloud.com/_______________________________________________ > ompl-users mailing list > omp...@li... > https://lists.sourceforge.net/lists/listinfo/ompl-users |
From: muhayyuddin G. <muh...@ho...> - 2015-07-02 21:50:58
|
HiI am trying to compare the RRT and KPIECE for OpenDE demo in omplappWhy KPIECE generate to many states as compare to RRT? i am retrieving the size of solution states like this std::cout<<"Solution states: "<<ss.getSolutionPath().getStates().size(); on average for RRT the states are less than 150 and for KPIECE more than 350 I want to know that how the solution path (not geometric) is constructed for KPIECE because KPIECE samples themotions and each motion contains several states Best RegardsMuhayyuddin |
From: Syed R. <reh...@ho...> - 2015-06-24 21:31:08
|
The goal was derived from the GoalRegion, now I derived it from the GoalSamplableRegion and it works :-) Thank you > Subject: Re: [ompl-users] SyCLoP with OpenDE > From: mm...@ri... > Date: Wed, 24 Jun 2015 10:37:17 -0500 > CC: omp...@li... > To: reh...@ho... > > It’s hard to say why it doesn’t work without knowing how CarGoal is defined. If you are using the OpenDE demo from omplapp, then it won’t work. CarGoal is derived from GoalRegion, but you need a goal that is derived from GoalSampleableRegion (or one of its derived classes: GoalState, GoalStates, …). > > > Best, > Mark > > > > > On Jun 24, 2015, at 8:30 AM, Syed Rehan <reh...@ho...> wrote: > > > > Hi, > > I want to used SyCLoP for planning with OpenDE, after few seconds of planning it generates the following error > > Error: SyclopRRT: Unable to sample a valid goal state > > at line 100 in /home/Software-Tools/omplapp-1.0.0-Source/ompl/src/ompl/control/planners/syclop/src/Syclop.cpp > > > > I am using Grid decomposition as bellow > > > > > > class MyDecomposition : public oc::GridDecomposition > > { > > public: > > MyDecomposition(const int length, const ob::RealVectorBounds& bounds) > > : GridDecomposition(length, 2, bounds) > > { > > } > > virtual void project(const ob::State* s, std::vector<double>& coord) const > > { > > coord.resize(2); > > > > coord[0]=s->as<ob::CompoundState>()->as<ob::RealVectorStateSpace::StateType>(0)->values[0]; > > coord[1]=s->as<ob::CompoundState>()->as<ob::RealVectorStateSpace::StateType>(0)->values[1]; > > > > // const double *pos = s->as<oc::OpenDEStateSpace::StateType>()->getBodyPosition(0); > > // coord[0] = pos[0]; > > // coord[1] = pos[1]; > > > > > > } > > virtual void sampleFullState(const ob::StateSamplerPtr& sampler, const std::vector<double>& coord, ob::State* s) const > > { > > sampler->sampleUniform(s); > > s->as<ob::CompoundState>()->as<ob::RealVectorStateSpace::StateType>(0)->values[0] = coord[0]; > > s->as<ob::CompoundState>()->as<ob::RealVectorStateSpace::StateType>(0)->values[1] = coord[1]; > > > > } > > > > }; > > > > And here is the problem setup > > > > dInitODE2(0); > > > > oc::OpenDEEnvironmentPtr ce(new CarEnvironment()); > > ob::StateSpacePtr sm(new CarStateSpace(ce)); > > oc::ControlSpacePtr cm(new CarControlSpace(sm)); > > oc::OpenDESimpleSetup ss(cm); > > > > ob::RealVectorBounds vb(3); > > vb.low[0] = -50; > > vb.low[1] = -50; > > vb.low[2] = -5; > > vb.high[0] = 50; > > vb.high[1] = 50; > > vb.high[2] = 10; > > ss.setVolumeBounds(vb); > > > > oc::SpaceInformationPtr si=ss.getSpaceInformation(); > > > > // Create a 10x10 grid decomposition for Syclop > > oc::DecompositionPtr decomp(new MyDecomposition(10,vb)); > > ob::PlannerPtr planner(new oc::SyclopRRT(si,decomp)); > > ss.setPlanner(planner); > > ss.setGoal(ob::GoalPtr(new CarGoal(ss.getSpaceInformation(), GOAL_X, GOAL_Y))); > > > > ss.setup(); > > ss.print(); > > boost::thread *th = NULL; > > > > std::cout << "Planning for at most 60 seconds ..." << std::endl; > > > > if (ss.solve(60)) > > { > > .... > > Please tell me where is the problem how can i configure Syclop with ODE > > > > Best Regards > > > > ------------------------------------------------------------------------------ > > Monitor 25 network devices or servers for free with OpManager! > > OpManager is web-based network management software that monitors > > network devices and physical & virtual servers, alerts via email & sms > > for fault. Monitor 25 devices for free with no restriction. Download now > > http://ad.doubleclick.net/ddm/clk/292181274;119417398;o_______________________________________________ > > ompl-users mailing list > > omp...@li... > > https://lists.sourceforge.net/lists/listinfo/ompl-users > |
From: Mark M. <mm...@ri...> - 2015-06-24 15:37:29
|
It’s hard to say why it doesn’t work without knowing how CarGoal is defined. If you are using the OpenDE demo from omplapp, then it won’t work. CarGoal is derived from GoalRegion, but you need a goal that is derived from GoalSampleableRegion (or one of its derived classes: GoalState, GoalStates, …). Best, Mark > On Jun 24, 2015, at 8:30 AM, Syed Rehan <reh...@ho...> wrote: > > Hi, > I want to used SyCLoP for planning with OpenDE, after few seconds of planning it generates the following error > Error: SyclopRRT: Unable to sample a valid goal state > at line 100 in /home/Software-Tools/omplapp-1.0.0-Source/ompl/src/ompl/control/planners/syclop/src/Syclop.cpp > > I am using Grid decomposition as bellow > > > class MyDecomposition : public oc::GridDecomposition > { > public: > MyDecomposition(const int length, const ob::RealVectorBounds& bounds) > : GridDecomposition(length, 2, bounds) > { > } > virtual void project(const ob::State* s, std::vector<double>& coord) const > { > coord.resize(2); > > coord[0]=s->as<ob::CompoundState>()->as<ob::RealVectorStateSpace::StateType>(0)->values[0]; > coord[1]=s->as<ob::CompoundState>()->as<ob::RealVectorStateSpace::StateType>(0)->values[1]; > > // const double *pos = s->as<oc::OpenDEStateSpace::StateType>()->getBodyPosition(0); > // coord[0] = pos[0]; > // coord[1] = pos[1]; > > > } > virtual void sampleFullState(const ob::StateSamplerPtr& sampler, const std::vector<double>& coord, ob::State* s) const > { > sampler->sampleUniform(s); > s->as<ob::CompoundState>()->as<ob::RealVectorStateSpace::StateType>(0)->values[0] = coord[0]; > s->as<ob::CompoundState>()->as<ob::RealVectorStateSpace::StateType>(0)->values[1] = coord[1]; > > } > > }; > > And here is the problem setup > > dInitODE2(0); > > oc::OpenDEEnvironmentPtr ce(new CarEnvironment()); > ob::StateSpacePtr sm(new CarStateSpace(ce)); > oc::ControlSpacePtr cm(new CarControlSpace(sm)); > oc::OpenDESimpleSetup ss(cm); > > ob::RealVectorBounds vb(3); > vb.low[0] = -50; > vb.low[1] = -50; > vb.low[2] = -5; > vb.high[0] = 50; > vb.high[1] = 50; > vb.high[2] = 10; > ss.setVolumeBounds(vb); > > oc::SpaceInformationPtr si=ss.getSpaceInformation(); > > // Create a 10x10 grid decomposition for Syclop > oc::DecompositionPtr decomp(new MyDecomposition(10,vb)); > ob::PlannerPtr planner(new oc::SyclopRRT(si,decomp)); > ss.setPlanner(planner); > ss.setGoal(ob::GoalPtr(new CarGoal(ss.getSpaceInformation(), GOAL_X, GOAL_Y))); > > ss.setup(); > ss.print(); > boost::thread *th = NULL; > > std::cout << "Planning for at most 60 seconds ..." << std::endl; > > if (ss.solve(60)) > { > .... > Please tell me where is the problem how can i configure Syclop with ODE > > Best Regards > > ------------------------------------------------------------------------------ > Monitor 25 network devices or servers for free with OpManager! > OpManager is web-based network management software that monitors > network devices and physical & virtual servers, alerts via email & sms > for fault. Monitor 25 devices for free with no restriction. Download now > http://ad.doubleclick.net/ddm/clk/292181274;119417398;o_______________________________________________ > ompl-users mailing list > omp...@li... > https://lists.sourceforge.net/lists/listinfo/ompl-users |
From: Syed R. <reh...@ho...> - 2015-06-24 14:24:26
|
Hi, I want to used SyCLoP for planning with OpenDE, after few seconds of planning it generates the following error Error: SyclopRRT: Unable to sample a valid goal state at line 100 in /home/Software-Tools/omplapp-1.0.0-Source/ompl/src/ompl/control/planners/syclop/src/Syclop.cpp I am using Grid decomposition as bellow class MyDecomposition : public oc::GridDecomposition { public: MyDecomposition(const int length, const ob::RealVectorBounds& bounds) : GridDecomposition(length, 2, bounds) { } virtual void project(const ob::State* s, std::vector<double>& coord) const { coord.resize(2); coord[0]=s->as<ob::CompoundState>()->as<ob::RealVectorStateSpace::StateType>(0)->values[0]; coord[1]=s->as<ob::CompoundState>()->as<ob::RealVectorStateSpace::StateType>(0)->values[1]; // const double *pos = s->as<oc::OpenDEStateSpace::StateType>()->getBodyPosition(0); // coord[0] = pos[0]; // coord[1] = pos[1]; } virtual void sampleFullState(const ob::StateSamplerPtr& sampler, const std::vector<double>& coord, ob::State* s) const { sampler->sampleUniform(s); s->as<ob::CompoundState>()->as<ob::RealVectorStateSpace::StateType>(0)->values[0] = coord[0]; s->as<ob::CompoundState>()->as<ob::RealVectorStateSpace::StateType>(0)->values[1] = coord[1]; } }; And here is the problem setup dInitODE2(0); oc::OpenDEEnvironmentPtr ce(new CarEnvironment()); ob::StateSpacePtr sm(new CarStateSpace(ce)); oc::ControlSpacePtr cm(new CarControlSpace(sm)); oc::OpenDESimpleSetup ss(cm); ob::RealVectorBounds vb(3); vb.low[0] = -50; vb.low[1] = -50; vb.low[2] = -5; vb.high[0] = 50; vb.high[1] = 50; vb.high[2] = 10; ss.setVolumeBounds(vb); oc::SpaceInformationPtr si=ss.getSpaceInformation(); // Create a 10x10 grid decomposition for Syclop oc::DecompositionPtr decomp(new MyDecomposition(10,vb)); ob::PlannerPtr planner(new oc::SyclopRRT(si,decomp)); ss.setPlanner(planner); ss.setGoal(ob::GoalPtr(new CarGoal(ss.getSpaceInformation(), GOAL_X, GOAL_Y))); ss.setup(); ss.print(); boost::thread *th = NULL; std::cout << "Planning for at most 60 seconds ..." << std::endl; if (ss.solve(60)) { .... Please tell me where is the problem how can i configure Syclop with ODE Best Regards |
From: Syed R. <reh...@ho...> - 2015-06-24 13:31:00
|
Hi, I want to used SyCLoP for planning with OpenDE, after few seconds of planning it generates the following error Error: SyclopRRT: Unable to sample a valid goal state at line 100 in /home/Software-Tools/omplapp-1.0.0-Source/ompl/src/ompl/control/planners/syclop/src/Syclop.cpp I am using Grid decomposition as bellow class MyDecomposition : public oc::GridDecomposition { public: MyDecomposition(const int length, const ob::RealVectorBounds& bounds) : GridDecomposition(length, 2, bounds) { } virtual void project(const ob::State* s, std::vector<double>& coord) const { coord.resize(2); coord[0]=s->as<ob::CompoundState>()->as<ob::RealVectorStateSpace::StateType>(0)->values[0]; coord[1]=s->as<ob::CompoundState>()->as<ob::RealVectorStateSpace::StateType>(0)->values[1]; // const double *pos = s->as<oc::OpenDEStateSpace::StateType>()->getBodyPosition(0); // coord[0] = pos[0]; // coord[1] = pos[1]; } virtual void sampleFullState(const ob::StateSamplerPtr& sampler, const std::vector<double>& coord, ob::State* s) const { sampler->sampleUniform(s); s->as<ob::CompoundState>()->as<ob::RealVectorStateSpace::StateType>(0)->values[0] = coord[0]; s->as<ob::CompoundState>()->as<ob::RealVectorStateSpace::StateType>(0)->values[1] = coord[1]; } }; And here is the problem setup dInitODE2(0); oc::OpenDEEnvironmentPtr ce(new CarEnvironment()); ob::StateSpacePtr sm(new CarStateSpace(ce)); oc::ControlSpacePtr cm(new CarControlSpace(sm)); oc::OpenDESimpleSetup ss(cm); ob::RealVectorBounds vb(3); vb.low[0] = -50; vb.low[1] = -50; vb.low[2] = -5; vb.high[0] = 50; vb.high[1] = 50; vb.high[2] = 10; ss.setVolumeBounds(vb); oc::SpaceInformationPtr si=ss.getSpaceInformation(); // Create a 10x10 grid decomposition for Syclop oc::DecompositionPtr decomp(new MyDecomposition(10,vb)); ob::PlannerPtr planner(new oc::SyclopRRT(si,decomp)); ss.setPlanner(planner); ss.setGoal(ob::GoalPtr(new CarGoal(ss.getSpaceInformation(), GOAL_X, GOAL_Y))); ss.setup(); ss.print(); boost::thread *th = NULL; std::cout << "Planning for at most 60 seconds ..." << std::endl; if (ss.solve(60)) { .... Please tell me where is the problem how can i configure Syclop with ODE Best Regards |
From: Javier V <jav...@gm...> - 2015-06-23 13:44:14
|
Just for the record, I have faced this problem but without using MoveIt!. In that case, I used the OMPL as any other third-party library, that is, not mentioning it in the package.xml and in the CMakeLists.txt of the corresponding catkin package, I included the typical lines: find_package(OMPL REQUIRED) include_directories( ${catkin_INCLUDE_DIRS} ${OMPL_INCLUDE_DIRS} ... include ) link_directories(${OMPL_LIBRARY_DIRS}) In order to make it work properly, I had to remove the ros-indigo-ompl package (and related) and remove the build and devel directory of my catkin workspace in order to ensure a compilation from scratch. Best, Javier V. Gomez |
From: Mark M. <mm...@ri...> - 2015-06-17 15:51:04
|
If you run Planner Arena locally, then uploading the database will just create copy of the database in a temp directory. In other words, no data will be uploaded to plannerarena.org or any other server. It is also not necessary to run shiny-server. You can avoid the extra upload step by copying your benchmark database to ompl/scripts/plannerarena/www/benchmark.db. This is the default location that will be checked for a benchmark database. Best, Mark > On Jun 17, 2015, at 9:52 AM, Dalek Chef <dal...@gm...> wrote: > > Thank you very much for this terrific software. I am especially impressed by the PlannerArena provided with OMPL. > > I would like to use PlannerArena to visualize a database of results generated with OMPL benchmarks. It is VERY important that this data is not moved outside my local machine. > > If I follow the instructions here: > http://ompl.kavrakilab.org/plannerarena.html > > Will this result in my data being uploaded to a remote location, or will the results only be stored locally when I click "upload"? > > Or do I need to instead follow the instructions here: http://rstudio.github.io/shiny-server/latest/.to ensure my data is only available locally by hosting my own server? > > Thank you very much for your help, > ------------------------------------------------------------------------------ > _______________________________________________ > ompl-users mailing list > omp...@li... > https://lists.sourceforge.net/lists/listinfo/ompl-users |
From: Dalek C. <dal...@gm...> - 2015-06-17 14:52:59
|
Thank you very much for this terrific software. I am especially impressed by the PlannerArena provided with OMPL. I would like to use PlannerArena to visualize a database of results generated with OMPL benchmarks. It is VERY important that this data is not moved outside my local machine. If I follow the instructions here: http://ompl.kavrakilab.org/plannerarena.html Will this result in my data being uploaded to a remote location, or will the results only be stored locally when I click "upload"? Or do I need to instead follow the instructions here: http://rstudio.github.io/shiny-server/latest/.to ensure my data is only available locally by hosting my own server? Thank you very much for your help, |
From: Mark M. <mm...@ri...> - 2015-06-10 18:37:12
|
Mark, See http://ompl.kavrakilab.org/pybindingsPlanner.html for information on how to add python bindings for your own planner. If it all works correctly, your planner will be automatically be added to the existing python GUI (ompl_app.py). I am a little confused by “C++ using Qt”. Are you saying you wrote a pure C++ GUI that doesn’t use the python bindings? If so, I don’t understand what the problem is. Best, Mark > On Jun 10, 2015, at 12:23 PM, Mark Thompson <mar...@ou...> wrote: > I would like to create a new class that inherits from the RRT* class and add that to the ompl.app, I have a modified version of the app ( c++ using Qt), this new class will mainly be used to access the tree built by the RRT*, would it be possible to have the necessary code snippet for this new class ( namespace, header file...etc) |
From: Mark T. <mar...@ou...> - 2015-06-10 17:23:25
|
Hi! I would like to create a new class that inherits from the RRT* class and add that to the ompl.app, I have a modified version of the app ( c++ using Qt), this new class will mainly be used to access the tree built by the RRT*, would it be possible to have the necessary code snippet for this new class ( namespace, header file...etc) Thank you |
From: Ryan L. <Lun...@gm...> - 2015-06-10 16:08:26
|
SelfConfig <http://ompl.kavrakilab.org/classompl_1_1tools_1_1SelfConfig.html> configures the range to a common default when the value is set to zero. This is done in RRT::setup(). SelfConfig will not override a manually configured range value. After calling setup, you can see the configured values using Planner::printSettings(). Ryan On Wed, Jun 10, 2015 at 10:05 AM, Dalek Chef <dal...@gm...> wrote: > Why is the default 'range' for the RRT planner 0? > > Is it because this must always be set manually when the planner is used or > perhaps I am misunderstanding the meaning of this parameter? > > > ------------------------------------------------------------------------------ > > _______________________________________________ > ompl-users mailing list > omp...@li... > https://lists.sourceforge.net/lists/listinfo/ompl-users > > |
From: Dalek C. <dal...@gm...> - 2015-06-10 15:06:00
|
Why is the default 'range' for the RRT planner 0? Is it because this must always be set manually when the planner is used or perhaps I am misunderstanding the meaning of this parameter? |
From: Mark M. <mm...@ri...> - 2015-05-29 23:01:24
|
Hi Mohammed, The paths produced by RRT* are of type PathGeometric. Inside a path object, there is a vector of states. You can simply append the states of the second path to the states of the first path. If you simplify the resulting path from AC, it may not longer pass through B. It this is not what you want, you can simplify the two paths before concatenation. -- Mark Moll > On May 27, 2015, at 1:16 PM, Mohammed Ibrahim <moh...@gm...> wrote: > > Dear OMPL Team! > > I want to run an RRT* from a base point (A) to another point (B) then from point B to the goal (C). So I would like to know how can I do that, and how can I concatenate between the two paths (AB) and (BC). in order to to perform the path smoothing over the concatenated path. |
From: Mohammed I. <moh...@gm...> - 2015-05-27 20:16:56
|
Dear OMPL Team! I want to run an RRT* from a base point (A) to another point (B) then from point B to the goal (C). So I would like to know how can I do that, and how can I concatenate between the two paths (AB) and (BC). in order to to perform the path smoothing over the concatenated path. Thank you! |
From: Javier V <jav...@gm...> - 2015-05-27 16:53:44
|
Hi Jan, To me, it sounds that you are misunderstanding few things. The plots in http://ompl.kavrakilab.org/CForest.html are for a different problem: the Alpha Puzzle problem. The costs results are not comparable with those given for CForestCircleGridBenchmark as they are two completely different planning problems and thus costs are different. Any further information about the plots would be welcome (what are the X axis labels?) I recommend you to take a look to OMPLapp, create a benchmark configuration file and then use CForest with the Alpha Puzzle. Take a look at http://ompl.kavrakilab.org/benchmark.html specially "Create a benchmark configuration file" and then take a look at this example file: https://bitbucket.org/ompl/omplapp/src/e52242e787207eb5ca1327cdbccdf89a8530e6cd/resources/3D/alpha-1.5.cfg?at=default Best, Javier 2015-05-27 17:19 GMT+02:00 Jan Šramota <ja...@st...>: > Hi Javier, > > sending the requested link with files. > https://www.dropbox.com/sh/8dt5dmvr6fuwnpt/AABARdS5dSYYeQisJxViKaJ_a?dl=0 > > I'm using CForestCircleGridBenchmark.cpp with minimum changes in a code ( > as changed parametres or changed saveResultsToFile name directly in a code. I'm > doing cross-compilation from Eclipse on host to a target device ). Anyway > to be sure that results are not affected by my changes > or cross-compilation, I compiled a CForestCircleGridBenchmark.cpp code on > a target machine with > g++ CForestCircleGridBenchmark.cpp -lompl -lboost_system > -lboost_program_options -o main > and executed the file in the way that you recommended. Results are still > same so the problem must be somewhere else. > > Can the 'best costs' results be different from 'OMPL 1.0.0' and 'Alpha > puzzle'? > Kind Regards! > > Jan Sramota > ja...@st... > > > > ------ Původní zpráva ------ > Od: "Javier V" <jav...@gm...> > Komu: omp...@li... > Odesláno: 27.5.2015 14:12:01 > Předmět: [ompl-users] Different results with CForestCircleGridBenchmark > > > Hi Jan, > > Please, provide links (Dropbox, Google Drive, etc) to the attached files > as they have been removed. > > All you have to do to change the parameters is to execute as (if I > remember correctly): > > ./demo_CForestCircleGridBenchmark --option value > > Example: > > ./demo_CForestCircleGridBenchmark --obstacle-radius 0.5 > > > We have tested CForest in many different computers and the results were > stable, I have no idea what can be causing it. Have you modified something? > Compiled with default parameters, etc? > > You can use the OMPLapp demos to create a more complex demo ( > http://ompl.kavrakilab.org/demos_2SE3RigidBodyPlanning_2SE3RigidBodyPlanning_8cpp_source.html) > Or use the ompl_benchmark program. Note that all the results in the CForest > doc are in Alpha puzzle. > > Best > Javier V. Gomez > > |
From: Jan Š. <ja...@st...> - 2015-05-27 15:19:54
|
Hi Javier, sending the requested link with files. https://www.dropbox.com/sh/8dt5dmvr6fuwnpt/AABARdS5dSYYeQisJxViKaJ_a?dl=0 I'm using CForestCircleGridBenchmark.cpp with minimum changes in a code ( as changed parametres or changed saveResultsToFile name directly in a code. I'm doing cross-compilation from Eclipse on host to a target device ). Anyway to be sure that results are not affected by my changes or cross-compilation, I compiled a CForestCircleGridBenchmark.cpp code on a target machine with g++ CForestCircleGridBenchmark.cpp -lompl -lboost_system -lboost_program_options -o main and executed the file in the way that you recommended. Results are still same so the problem must be somewhere else. Can the 'best costs' results be different from 'OMPL 1.0.0' and 'Alpha puzzle'? Kind Regards! Jan Sramota ja...@st... ------ Původní zpráva ------ Od: "Javier V" <jav...@gm...> Komu: omp...@li... Odesláno: 27.5.2015 14:12:01 Předmět: [ompl-users] Different results with CForestCircleGridBenchmark >Hi Jan, > >Please, provide links (Dropbox, Google Drive, etc) to the attached >files as they have been removed. > >All you have to do to change the parameters is to execute as (if I >remember correctly): > >./demo_CForestCircleGridBenchmark --option value > >Example: > >./demo_CForestCircleGridBenchmark --obstacle-radius 0.5 > > >We have tested CForest in many different computers and the results were >stable, I have no idea what can be causing it. Have you modified >something? Compiled with default parameters, etc? > >You can use the OMPLapp demos to create a more complex demo >(http://ompl.kavrakilab.org/demos_2SE3RigidBodyPlanning_2SE3RigidBodyPlanning_8cpp_source.html) >Or use the ompl_benchmark program. Note that all the results in the >CForest doc are in Alpha puzzle. > >Best >Javier V. Gomez > |
From: Javier V <jav...@gm...> - 2015-05-27 12:12:09
|
Hi Jan, Please, provide links (Dropbox, Google Drive, etc) to the attached files as they have been removed. All you have to do to change the parameters is to execute as (if I remember correctly): ./demo_CForestCircleGridBenchmark --option value Example: ./demo_CForestCircleGridBenchmark --obstacle-radius 0.5 We have tested CForest in many different computers and the results were stable, I have no idea what can be causing it. Have you modified something? Compiled with default parameters, etc? You can use the OMPLapp demos to create a more complex demo ( http://ompl.kavrakilab.org/demos_2SE3RigidBodyPlanning_2SE3RigidBodyPlanning_8cpp_source.html) Or use the ompl_benchmark program. Note that all the results in the CForest doc are in Alpha puzzle. Best Javier V. Gomez |
From: Jan Š. <ja...@st...> - 2015-05-26 23:07:48
|
/********************************************************************* * Software License Agreement (BSD License) * * Copyright (c) 2014, Rice University * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials provided * with the distribution. * * Neither the name of the Rice University nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. *********************************************************************/ /* Author: Javier V. Gomez, Mark Moll */ #include <ompl/base/spaces/DubinsStateSpace.h> #include <ompl/base/spaces/ReedsSheppStateSpace.h> #include <ompl/geometric/planners/rrt/RRTstar.h> #include <ompl/geometric/planners/cforest/CForest.h> #include <ompl/base/objectives/PathLengthOptimizationObjective.h> #include <ompl/geometric/SimpleSetup.h> #include <ompl/tools/benchmark/Benchmark.h> #include <boost/program_options.hpp> namespace ob = ompl::base; namespace og = ompl::geometric; namespace ot = ompl::tools; namespace po = boost::program_options; ompl::base::OptimizationObjectivePtr getPathLengthObjective(const ompl::base::SpaceInformationPtr& si) { return ompl::base::OptimizationObjectivePtr(new ompl::base::PathLengthOptimizationObjective(si)); } bool isStateValid(double radiusSquared, const ob::State *state) { const ob::SE2StateSpace::StateType *s = state->as<ob::SE2StateSpace::StateType>(); double x=s->getX(), y=s->getY(); x = std::abs(x - std::floor(x)); y = std::abs(y - std::floor(y)); x = std::min(x, 1. - x); y = std::min(y, 1. - y); return x*x + y*y > radiusSquared; } int main(int argc, char **argv) { int distance, gridLimit, runCount; double obstacleRadius, turningRadius, runtimeLimit; ob::StateSpacePtr space(new ob::SE2StateSpace()); po::options_description desc("Options"); desc.add_options() ("help", "show help message") ("dubins", "use Dubins state space") ("dubinssym", "use symmetrized Dubins state space") ("reedsshepp", "use Reeds-Shepp state space") ("distance", po::value<int>(&distance)->default_value(3), "integer grid distance between start and goal") ("obstacle-radius", po::value<double>(&obstacleRadius)->default_value(.25), "radius of obstacles") ("turning-radius", po::value<double>(&turningRadius)->default_value(.5), "turning radius of robot (ignored for default point robot)") ("grid-limit", po::value<int>(&gridLimit)->default_value(10), "size of the grid") ("runtime-limit", po::value<double>(&runtimeLimit)->default_value(.5), "time limit for every test") ("run-count", po::value<int>(&runCount)->default_value(100), "number of times to run each planner") ; po::variables_map vm; po::store(po::parse_command_line(argc, argv, desc), vm); po::notify(vm); if (vm.count("help")) { std::cout << desc << "\n"; return 1; } if (vm.count("dubins")) space = ob::StateSpacePtr(new ob::DubinsStateSpace(turningRadius)); if (vm.count("dubinssym")) space = ob::StateSpacePtr(new ob::DubinsStateSpace(turningRadius, true)); if (vm.count("reedsshepp")) space = ob::StateSpacePtr(new ob::ReedsSheppStateSpace(turningRadius)); // set the bounds for the R^2 part of SE(2) ob::RealVectorBounds bounds(2); bounds.setLow(-.5 * gridLimit); bounds.setHigh(.5 * gridLimit); space->as<ob::SE2StateSpace>()->setBounds(bounds); // define a simple setup class og::SimpleSetup ss(space); // set state validity checking for this space ss.setStateValidityChecker(boost::bind(&isStateValid, obstacleRadius*obstacleRadius, _1)); // define start & goal states ob::ScopedState<ob::SE2StateSpace> start(space), goal(space); start->setXY(0., 0.5); start->setYaw(0.); goal->setXY(0., (double)distance + .5); goal->setYaw(0); ss.setStartAndGoalStates(start, goal); // setting collision checking resolution to 0.05 (absolute) ss.getSpaceInformation()->setStateValidityCheckingResolution(0.05 / gridLimit); ss.getProblemDefinition()->setOptimizationObjective(getPathLengthObjective(ss.getSpaceInformation())); // by default, use the Benchmark class double memoryLimit = 4096; ot::Benchmark::Request request(runtimeLimit, memoryLimit, runCount); ot::Benchmark b(ss, "CircleGrid"); b.addPlanner(ob::PlannerPtr(new og::RRTstar(ss.getSpaceInformation()))); b.addPlanner(ob::PlannerPtr(new og::CForest(ss.getSpaceInformation()))); b.benchmark(request); b.saveResultsToFile("ompl_circleGrid.log"); exit(0); } |
From: Mark M. <mm...@ri...> - 2015-05-20 22:27:26
|
Hi Mark, Many of the things you’d like to have do already exist in OMPL: - You can define multiple start states with ompl::base::ProblemDefinition::addStartState - The ompl::base::Path::length() method will return the length of the path. - There are several bidirectional planners in OMPL: RRTConnect, SBL, BKPIECE. Applying path simplification to solutions found by these planners will usually produce a pretty good path. If you want more, you can add a couple instances of these planners to ompl::geometric::AnytimePathShortening to create an anytime planner that will likely produce even better solutions. - You can access the roadmap / tree produced by any of the planners by calling Planner::getPlannerData. Under the hood, the tree is stored as a Boost::Graph object. There are some demos that how you can use this. Currently there is no bidirectional version of RRT* included with OMPL. -- Mark Moll > On May 20, 2015, at 2:45 PM, Mark Thompson <mar...@ou...> wrote: > > Hi > > I'm a new user of OMPL and I would like to modify the way the solver works, I would like to have two start positions to one goal, and I would need to have the length of the two paths, ideally I would like to run two RTT* one from a start and the other one from the goal, also I would like to access and reuse the trees. Any suggestions on how to do that ? > Thank you! > > Kindest Regards, > Mark Thompson |
From: Mark T. <mar...@ou...> - 2015-05-20 19:45:14
|
Hi I'm a new user of OMPL and I would like to modify the way the solver works, I would like to have two start positions to one goal, and I would need to have the length of the two paths, ideally I would like to run two RTT* one from a start and the other one from the goal, also I would like to access and reuse the trees. Any suggestions on how to do that ? Thank you! Kindest Regards, Mark Thompson |
From: Eduardo A. <eri...@gm...> - 2015-05-12 22:05:16
|
Hi I'm really new to OMPL and I'd like to know if it's possible to adapt the demo_SE3RigidBodyPlanning from OmplApp to plan a ROV path. Instead of planning 3 degrees of translation (x,y,z) and 3 degrees of rotation (roll, pitch, yaw), I'd like to generate a path only for 3 degrees of translation and 1 degree of rotation (just yaw). How can I do this? Is there any example? I'm trying to create a compound space (R^3 + SO2) but I'm having a hard time. Can somebody give me any hint? Thanks Eduardo Rizzo de Albuquerque |