OOPSMP/ directory it may be necessary to first clean the cmake cache, which is accomplished by removing the file CMakeCache.txt rm CMakeCache.txt
cmake -DCMAKE_BUILD_TYPE="Release" CMakeLists.txt or cmake -DCMAKE_BUILD_TYPE="Debug" CMakeLists.txt
cmake, use the makefiles/project files that were created by CMake to build OOPSMP libraries and executable.cmake created makefiles, then run makecmake created project files, then open the main project file oopsmp program.xml list_of_dll_libraries
./bin/oopsmp nongraphical_program.xml ./lib/OOPSMP/libOOPSMPUserPrograms.so
./bin/oopsmp graphical_program.xml ./lib/OOPSMP/libOOPSMPGUserPrograms.so
./oopsmp nongraphical_program.xml ./lib/OOPSMP/libOOPSMPUserPrograms.dylib
./oopsmp graphical_program.xml ./lib/OOPSMP/libOOPSMPGUserPrograms.dylib
bin\debug\oopsmp nongraphical_program.xml lib\OOPSMP\OOPSMPUserPrograms.dll
bin\debug\oopsmp graphical_program.xml lib\OOPSMP\OOPSMPGUserPrograms.dll
bin\oopsmp nongraphical_program.xml lib\OOPSMP\*.dll
bin\oopsmp graphical_program.xml lib\*.dll
[browse OOPSMP/src/UserPrograms/ and OOPSMP/input/xml/UserPrograms/][browse OOPSMP/src/Graphics/GUserPrograms/ and OOPSMP/input/xml/Graphics/GUserPrograms/]GMotionPlannerProgram GMotionPlannerQueriesProgram GMotionPlannerDataProgram GMotionPlannerSolutionsProgram GCoreProgram GWorkspaceProgram
OOPSMP/src/Utils/Geometry/Collision. XML_file ::= XML_nodes
XML_nodes ::= empty | XML_node XML_nodes
XML_node ::= <XML_tag XML_attributes> XML_text XML_nodes XML_text </XML_tag>
XML_attributes::= empty | XML_attribute XML_attributes
XML_attribute ::= XML_name="XML_value"
XML_tag ::= whatever scanf accepts with %s
XML_name ::= whatever scanf accepts with %s
XML_value ::= whatever scanf accepts with %s
XML_text ::= empty | regular text
OOPSMP/CMakeLists.txt to see how OOPSMP searches for libxml2 and perhaps edit this file to correctly find where the libraries and header files for libxml2 are located. <readContentFromFile> file.xml </readContentFromFile>
file.xml, i.e., same effect as copying and pasting the content of file.xml wherever the directive readContentFromFile appears. Anytime this tag is present, the xml parser opens the specified file, reads its content, creates an xml node from the content of the file, and adds it as a child to the parent xml node. readContentFromFile directive makes it possible to setup OOPSMP programs and components using different XML files. file.xml is not found in the current directory, then it will try to read OOPSMP/input/xml/file.xml and <install_prefix>/share/OOPSMP/xml/file.xml. In other words, it is not necessary to specify the full path for XML files that are stored in the "standard" OOPSMP xml directory. OOPSMP/input/xml/UserPrograms/PrintInputProgram.xml for more details. Core/Data/CoreRobotData.xmlCore/StateSpace/SE2StateSpace.xmlCore/Path/SE2GeodesicPathGenerator.xml or to Core/Path/SE2DecoupledGeodesicPathGenerator.xmlCore/LocalPlanner/SubdivisionLocalPlanner.xmlUtils/Geometry/Collision/PQPCollisionDetector2D.xmlUtils/Geometry/Workspace/Workspace2D/SelectedWorkspace2D.xmladdMovingPart2 with 3Core/Data/CoreRobotData.xmlCore/StateSpace/KCarStateSpace.xml
BestRandomControlPathGenerator: go to OOPSMP/input/xml/Core/Path/SelectedPathGenerator.xml and set the selection to Core/Path/RandomControlPathGenerator.xml or to Core/Path/BestRandomControlPathGenerator.xml
Core/LocalPlanner/IncrementalLocalPlanner.xmlUtils/Geometry/Collision/PQPCollisionDetector2D.xmlUtils/Geometry/Workspace/Workspace2D/SelectedWorkspace2D.xmladdMovingPart and that the selected robot is Utils/Geometry/Workspace/Workspace2D/Robots2D/Robot2D_Car.xmlUtils/Geometry/Collision/PQPCollisionDetector2D.xmlUtils/Geometry/Workspace/Workspace2D/SelectedWorkspace2D.xmladdMovingPart as the number of robots you would like to haveCore/Data/CoreRobotsData.xmladdCoreRobotData as the number of moving parts that you selected in the previous steps. <comment>
Core components of the i-th robot: state space, valid state sampler, path generator, and local planner.
Replace SelectedStateSpace_i with the state space for the i-th robot
Replace SelectedPathGenerator_i with the path generator for the i-th robot
Replace SelectedValidStateSampler_i with the state sampler for the i-th robot
Replace SelectedLocalPlanner_i with the local planner for the i-th robot
</comment>
<call fn = "addCoreRobotData"><arg type = "pointer">
<call fn = "setStateSpace"><arg type = "pointer">
<readContentFromFile>Core/StateSpace/SelectedStateSpace_i.xml</readContentFromFile>
</arg></call>
<call fn = "setPathGenerator"><arg type = "pointer">
<readContentFromFile>Core/Path/SelectedPathGenerator_i.xml</readContentFromFile>
</arg></call>
<call fn = "setValidStateSampler"><arg type = "pointer">
<readContentFromFile>Core/Sampler/SelectedValidStateSampler_i.xml</readContentFromFile>
</arg></call>
<call fn = "setLocalPlanner"><arg type = "pointer">
<readContentFromFile>Core/LocalPlanner/SelectedLocalPlanner_i.xml</readContentFromFile>
</arg></call>
</call>
2 with 3//Linux/Unix ./bin/oopsmp program.xml lib/*.so //Mac OS X v10.4 (Tiger) / Mac OS X v10.5 (Leopard) ./bin/oospmp program.xml lib/*.dylib //MS Windows: compiled with Microsoft Visual Studio bin\debug\oopsmp program.xml lib\*.dll lib\debug\*.dll //MS Windows: compiled with MinGW/GCC bin\oopsmp program.xml lib\*.dll
OOPSMP/src/Core/, then try loading OOPSMPCore dynamic library. [ok] if the dynamic library is loaded without any errors and some error message if the dll file is loaded with errors. So the programmer can first try to fix these dll errors and then run the program again. OOPSMP/CMakeLists.txt to properly indicate the paths for these library files. <OpenGL/gl.h>, <OpenGL/glu.h>, <GLUT/glut.h> for Mac computers and in <GL/gl.h>, <GL/glu.h>, <GL/glut.h> for all other systems. If this is not the case, then you can copy the header files into the appropriate directories. cmake files. In particular, you need to edit the file OOPSMP/CMakeLists.txt and add to this file the correct include directories using the command INCLUDE_DIRECTORIES(path_up_to_OpenGL_dir path_up_to_GLUT_dir)
OOPSMP/CMakeLists.txt: ADD_DEFINITIONS(-DOOPSMP_NO_VARIADIC_MACROS)
OOPSMP_NO_VARIADIC_MACROS for versions prior to v.8) RegisterFnFactory with RegisterFnFactoryN, where N is the number of arguments of the function that is being registered for plug-and-play.OOPSMP/src/Utils/General/OOPSMPFactory.H and add macro definitions after RegisterFnFactory6 macro..lib and a file with extension .dll are created. The .lib is required during the compilation process as it tells the compiler the classes and functions that have been exported. The .dll is needed during execution. .lib and .dll files. Similarly, when running the executable, the system needs to know where to find the .dll files. MS Windows provides a mechanism for specifying search paths for .lib and .dll files. Edit the path environment variable to include the directory where the OOPSMP libraries are located. When compiling in debug mode, the executable is created in OOPSMP\projects\bin\debug\ and the libraries are created in OOPSMP\projects\lib\debug\. Similarly, when compiling in release mode, the executable is created in OOPSMP\projects\bin\release\ and the libraries are created in OOPSMP\projects\lib\release\. So just add the following three paths to the PATH variable:
where path is the directory where OOPSMP is located.