:zap: The Mobile Robot Programming Toolkit (MRPT)

The MRPT project

gcc/clang: MSVC: Last stable release:

GH downloads: SF downloads (datasets):

Last Win64 builds:

Workspace: Gitpod ready-to-code

1. Introduction

Mobile Robot Programming Toolkit (MRPT) provides C++ libraries aimed at researchers in mobile robotics and computer vision. Libraries include SLAM solutions, 3D(6D) geometry, SE(2)/SE(3) Lie groups, probability density functions (pdfs) over points, landmarks, poses and maps, Bayesian inference (Kalman filters, particle filters), image processing, obstacle avoidance, etc. MRPT also provides GUI apps for Stereo camera calibration, dataset inspection, and much more.

2. Resources

3. Install

Packaging status

3.1. Ubuntu

See this PPA for nightly builds from the develop branch, or this one for stable releases.

    sudo add-apt-repository ppa:joseluisblancoc/mrpt   # develop branch
    #sudo add-apt-repository ppa:joseluisblancoc/mrpt-stable   # master (stable releases) branch
    #sudo apt update # Only required for Ubuntu 16.04
    sudo apt install libmrpt-dev mrpt-apps

Supported distributions:

  • Ubuntu 20.04 LTS (Focal), Ubuntu 18.04 LTS (Bionic), 18.10 (Cosmic), 19.10 (Eoan)
  • Ubuntu 16.04 LTS Xenial (EOL: April 2021)
    • Using 16.04 requires installing gcc-7 due to some bugs in gcc-5:

      add-apt-repository ppa:ubuntu-toolchain-r/test
      apt-get update
      apt-get install -y g++-7
      

3.2. Build from sources

Minimum compiler requisites:

  • gcc-7 or newer.
    • Ubuntu 16.04LTS Xenial: Instructions for installing gcc-7 in this version of Ubuntu.
    • Ubuntu 18.04 or newer: default gcc version is ok.
  • clang-4 or newer.
  • Windows: Visual Studio 2017 version 15.3 or newer.
  • cmake >= 3.3 required (>=3.4 for Windows).
  • Eigen >= 3.3 required.

To build in Debian/Ubuntu follow the steps below. See full build docs online for Windows instructions or to learn all the details.

  • Install minimum recommended dependencies:
sudo apt install build-essential pkg-config cmake libwxgtk3.0-dev libwxgtk3.0-gtk3-dev \
libopencv-dev libeigen3-dev libgtest-dev

MRPT builds against OpenCV 2.4.x, 3.x, 4.x, but it is recommended to use 3.0 or later.

  • Recommended: Install additional dependencies to enable most MRPT features (except ROS bridges):
sudo apt install libftdi-dev freeglut3-dev zlib1g-dev libusb-1.0-0-dev \
libudev-dev libfreenect-dev libdc1394-22-dev libavformat-dev libswscale-dev \
libassimp-dev libjpeg-dev   libsuitesparse-dev libpcap-dev liboctomap-dev \
libglfw3-dev
  • Install additional dependencies for ros1bridge using official Ubuntu repositories. If you already have a ROS distribution installed, doing source /opt/ros/xxx/setup.bash is enough, no further packages must be installed.
sudo apt install libcv-bridge-dev libgeometry-msgs-dev libnav-msgs-dev librosbag-storage-dev libroscpp-dev libsensor-msgs-dev libstd-srvs-dev libstereo-msgs-dev libtf2-dev libtf2-msgs-dev libbz2-dev
  • Build with cmake as usual:
mkdir build && cd build
cmake ..
make

3.3. Windows precompiled versions

Executables (.exes and .dlls) and development libraries (.hs and .libs) included:

Last Win64 builds:

4. License

MRPT is released under the new BSD license.

Stargazers over time

Stargazers over time

Owner
Comments
  • Port to C++14

    Port to C++14

    To be done (in 2017? -> yes) when it's safe to assume everyone has a decent C++14 compiler.

    This implies:

    • [x] Deprecate support for Ubuntu precise (and also trusty but only in PPA, for the next item:)
    • [x] Use modern CMake 3.1+ C++ compiler features: target_compile_features, WriteCompilerDetectionHeader, set (CMAKE_CXX_STANDARD 11), etc.
    • [x] Smart pointers: forget about stlplus and move to C++11 smart pointers.
    • [x] Threads: move to std::thread, unless there are strong reasons not to do so.
    • [x] Switch tfest/indiv-compat-decls.h to <functional>
    • [x] CMake: use EXPORT, etc.
    • [x] Direct use of Eigen? Moved to its own issue: #496
    • [x] Semaphore -> http://stackoverflow.com/a/27852868
    • [x] MRPT_OVERRIDE -> override
    • [x] CPipe : avoid deprecated auto_ptr<>
    • [x] Search and rewrite all areas having an #if MRPT_HAS_CXX11
    • [x] Drop mrpt::synch::CAtomicCounter in favor of C++11 std::atomic.
    • [x] Prefer nullptr
    • [x] MRPT_NO_THROWS ==> C++11.
    • [x] Make all destructors noexcept
    • [x] Consider replacing uint32_t enums with correct C++11 typed enums. E.g. in GNSS_BINARY_MSG_DEFINITION_START
    • [x] Review usages of mrpt::utils::delete_safe and consider changing them to use C++11 smart pointers.
    • [x] Foo::Create with make_shared ()
    • [x] std::function typedefs or similar for ZMQ wrappers: See #231
    • [x] Support move semantics (read below)
    • [x] typedefs ==> using
    • [x] Add constexpr to geometry constructors, etc.
    • [x] alignas instead of Eigen align macros
    • [x] Simplify ctors via member initialization in headers, e.g. int a { 0 }; or int a = 0;
    • [x] Replace copy_ptr<>, etc. with simple using ... partial template specializations.
    • [x] Use using FP=... to define functors.
    • [x] Use template<> using ... instead of current aligned STL containers. ==> Nope: it would break existing code, it's not worth (Nov 3, 2017)
    • [x] Replace std::vector of fixed length with std::array. E.g. ReactiveNav classes, etc.
    • [x] Make sure all move ctors and move = operators are declared noexcept. Otherwise, they will not be eligible for "real move".
    • [x] refactor type traits
    • [x] Use weak_ptr for m_frame_tf API in ReactiveNav

    Minimum compilers (see this table)

    • MSVC 15 aka 14.1 (2017)
    • GCC 4.8 (?)
    • CLANG 3.3 (?)

    Minimum CMake version: 3.1

  • Build issues when Qt or OpenGL disabled

    Build issues when Qt or OpenGL disabled

    • [x] Qt5 components shouldn't be required. They should be optional and build to succeed if the optional components are not found.
    • [x] Disabling OpenGL should not break the build.

    From: https://gitter.im/MRPT/mrpt

    Alex Giokas @alexge233 Oct 05 04:47 Hi Hunter, I'm trying to build a minimal version of MRPT-1.9.9 (from github) without any GUI stuff. I keep running into the same issue:

    -- Architecture (uname -m): x86_64
    -- Kernel name (uname -s): Linux
    -- Could NOT find OpenGL (missing:  OPENGL_INCLUDE_DIR) 
    -- Could NOT find GLUT (missing:  GLUT_glut_LIBRARY GLUT_INCLUDE_DIR) 
    -- **Warning**: OpenGL and/or GLUT not found! OpenGL capabilities will be disabled.
    --                      OPENGL_gl_LIBRARY: /usr/lib/x86_64-linux-gnu/libGL.so
    --                      OPENGL_glu_LIBRARY: OPENGL_glu_LIBRARY-NOTFOUND
    --                      GLUT_glut_LIBRARY: GLUT_glut_LIBRARY-NOTFOUND
    --                      OPENGL_INCLUDE_DIR: OPENGL_INCLUDE_DIR-NOTFOUND
    -- Could NOT find wxWidgets (missing:  wxWidgets_LIBRARIES wxWidgets_INCLUDE_DIRS) 
    wxWidgets was not found automatically. Please, set wxWidgets_ROOT_DIR to the lib directory to enable it in MRPT.
    CMake Warning at cmakemodules/script_qt.cmake:10 (find_package):
      By not providing "FindQt5.cmake" in CMAKE_MODULE_PATH this project has
      asked CMake to find a package configuration file provided by "Qt5", but
      CMake did not find one.
    
      Could not find a package configuration file provided by "Qt5" with any of
      the following names:
    
        Qt5Config.cmake
        qt5-config.cmake
    
      Add the installation prefix of "Qt5" to CMAKE_PREFIX_PATH or set "Qt5_DIR"
      to a directory containing one of the above files.  If "Qt5" provides a
      separate development package or SDK, be sure it has been installed.
    Call Stack (most recent call first):
      CMakeLists.txt:234 (include)
    
    
    -- cotire 1.7.9 loaded.
    And when I build:
    [ 45%] Building CXX object libs/gui/CMakeFiles/mrpt-gui.dir/src/CGlCanvasBase.cpp.o
    /root/mrpt/libs/gui/src/CGlCanvasBase.cpp: In member function ‘void mrpt::gui::CGlCanvasBase::resizeViewport(int, int)’:
    /root/mrpt/libs/gui/src/CGlCanvasBase.cpp:119:20: error: ‘GLint’ was not declared in this scope
      glViewport(0, 0, (GLint)w, (GLint)h);
                        ^
    /root/mrpt/libs/gui/src/CGlCanvasBase.cpp:119:37: error: ‘glViewport’ was not declared in this scope
      glViewport(0, 0, (GLint)w, (GLint)h);
                                         ^
    /root/mrpt/libs/gui/src/CGlCanvasBase.cpp: In member function ‘void mrpt::gui::CGlCanvasBase::clearColors()’:
    /root/mrpt/libs/gui/src/CGlCanvasBase.cpp:124:65: error: ‘glClearColor’ was not declared in this scope
      glClearColor(clearColorR, clearColorG, clearColorB, clearColorA);
                                                                     ^
    /root/mrpt/libs/gui/src/CGlCanvasBase.cpp: In member function ‘virtual double mrpt::gui::CGlCanvasBase::renderCanvas(int, int)’:
    /root/mrpt/libs/gui/src/CGlCanvasBase.cpp:260:16: error: ‘GL_ALL_ATTRIB_BITS’ was not declared in this scope
       glPushAttrib(GL_ALL_ATTRIB_BITS);
                    ^
    /root/mrpt/libs/gui/src/CGlCanvasBase.cpp:260:34: error: ‘glPushAttrib’ was not declared in this scope
       glPushAttrib(GL_ALL_ATTRIB_BITS);
                                      ^
    /root/mrpt/libs/gui/src/CGlCanvasBase.cpp:263:12: error: ‘GL_DEPTH_TEST’ was not declared in this scope
       glEnable(GL_DEPTH_TEST);
                ^
    /root/mrpt/libs/gui/src/CGlCanvasBase.cpp:263:25: error: ‘glEnable’ was not declared in this scope
       glEnable(GL_DEPTH_TEST);
                             ^
    /root/mrpt/libs/gui/src/CGlCanvasBase.cpp:264:12: error: ‘GL_ALPHA_TEST’ was not declared in this scope
       glEnable(GL_ALPHA_TEST);
                ^
    /root/mrpt/libs/gui/src/CGlCanvasBase.cpp:265:12: error: ‘GL_TEXTURE_2D’ was not declared in this scope
       glEnable(GL_TEXTURE_2D);
                ^
    /root/mrpt/libs/gui/src/CGlCanvasBase.cpp:269:19: error: ‘GLsizei’ was not declared in this scope
       resizeViewport((GLsizei)width, (GLsizei)height);
                       ^
    /root/mrpt/libs/gui/src/CGlCanvasBase.cpp:293:17: error: ‘GL_MODELVIEW’ was not declared in this scope
        glMatrixMode(GL_MODELVIEW);
                     ^
    /root/mrpt/libs/gui/src/CGlCanvasBase.cpp:293:29: error: ‘glMatrixMode’ was not declared in this scope
        glMatrixMode(GL_MODELVIEW);
                                 ^
    /root/mrpt/libs/gui/src/CGlCanvasBase.cpp:294:19: error: ‘glLoadIdentity’ was not declared in this scope
        glLoadIdentity();
                       ^
    /root/mrpt/libs/gui/src/CGlCanvasBase.cpp:307:11: error: ‘glFlush’ was not declared in this scope
       glFlush();
               ^
    /root/mrpt/libs/gui/src/CGlCanvasBase.cpp:312:15: error: ‘glPopAttrib’ was not declared in this scope
       glPopAttrib();
                   ^
    /root/mrpt/libs/gui/src/CGlCanvasBase.cpp:316:15: error: ‘glPopAttrib’ was not declared in this scope
       glPopAttrib();
                   ^
    /root/mrpt/libs/gui/src/CGlCanvasBase.cpp:325:15: error: ‘glPopAttrib’ was not declared in this scope
       glPopAttrib();
    Do you have a CMAKE macro/flag to turn OpenGL/GUI off?
    

    Hunter Laux @jolting Oct 05 10:38 Did you try USE_QT=false?

    Alex Giokas @alexge233 Oct 06 02:08 I did now. This is weird, Cmake spots no presence of QT, wxWidgets but it still tries to build the GUI library. I've also run into a similar issue: I can compile the library if I install freeglut-dev, but when I build by application which links to mrpt, then I get link errors to assimp.so.4. Where do you default to using gui and opengl, maybe I can hack into it and turn them off.

    Alex Giokas @alexge233 Oct 06 02:14 For example, running with -DUSE_QT=false it still tries to build velodyne (which I don't need) which then fails to link to pthread:

    [ 87%] Building CXX object tests/CMakeFiles/test_mrpt_hwdrivers.dir/__/libs/hwdrivers/src/CVelodyneScanner_unittest.cpp.o
    /usr/bin/ld: CMakeFiles/velodyne-view.dir/velodyne-view_main.cpp.o: undefined reference to symbol '[email protected]@GLIBC_2.2.5'
    //lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line
    collect2: error: ld returned 1 exit status
    apps/velodyne-view/CMakeFiles/velodyne-view.dir/build.make:162: recipe for target 'bin/velodyne-view' failed
    make[2]: *** [bin/velodyne-view] Error 1
    CMakeFiles/Makefile2:2549: recipe for target 'apps/velodyne-view/CMakeFiles/velodyne-view.dir/all' failed
    make[1]: *** [apps/velodyne-view/CMakeFiles/velodyne-view.dir/all] Error 2
    make[1]: *** Waiting for unfinished jobs....
    

    Just fyi, I am willing to contribute if you point me to the right direction, it's the least I can do

    Alex Giokas @alexge233 Oct 06 05:51 This is what I'm trying with right now:

    cmake .. -DDISABLE_OPENGL=ON -DDISABLE_LIBUSB=ON -DDISABLE_OPENNI2=ON -DDISABLE_PCAP=ON -DDISABLE_PCL=ON -DDISABLE_PHIDGETS=ON -DDISABLE_PYTHON_BINDINGS=ON -DUSE_QT=OFF -DDISABLE_ROS=ON
    

    Still, I get:

    - List of MRPT libs/modules to be built (and dependencies):
    -- -----------------------------------------------------------------
    --   mrpt-hwdrivers : mrpt-base;mrpt-comms;mrpt-maps;mrpt-obs;mrpt-gui;mrpt-opengl;mrpt-maps;mrpt-vision;mrpt-graphs 
    --   mrpt-graphs : mrpt-opengl;mrpt-base 
    --   mrpt-base :  
    --   mrpt-vision : mrpt-obs;mrpt-opengl;mrpt-base;mrpt-opengl 
    --   mrpt-tfest : mrpt-base 
    --   mrpt-comms : mrpt-base 
    --   mrpt-bayes : mrpt-base   (header-only)
    --   mrpt-graphslam : mrpt-base;mrpt-graphs;mrpt-gui;mrpt-maps;mrpt-obs;mrpt-opengl;mrpt-slam;mrpt-vision 
    --   mrpt-detectors : mrpt-vision;mrpt-maps;mrpt-gui;mrpt-slam;mrpt-base;mrpt-opengl;mrpt-obs;mrpt-graphs 
    --   mrpt-hmtslam : mrpt-slam;mrpt-graphslam;mrpt-graphs;mrpt-vision;mrpt-maps;mrpt-base;mrpt-obs;mrpt-opengl;mrpt-gui 
    --   mrpt-topography : mrpt-base;mrpt-obs;mrpt-opengl;mrpt-tfest 
    --   mrpt-opengl : mrpt-base 
    --   mrpt-slam : mrpt-bayes;mrpt-graphs;mrpt-vision;mrpt-tfest;mrpt-maps;mrpt-obs;mrpt-opengl;mrpt-base 
    --   mrpt-obs : mrpt-opengl;mrpt-base 
    --   mrpt-kinematics : mrpt-opengl;mrpt-base 
    --   mrpt-maps : mrpt-obs;mrpt-graphs;mrpt-opengl;mrpt-base 
    --   mrpt-gui : mrpt-opengl;mrpt-base 
    --   mrpt-nav : mrpt-graphs;mrpt-maps;mrpt-kinematics;mrpt-graphs;mrpt-obs;mrpt-opengl;mrpt-base
    What I really want is slam, obs, nav, maps and base.
    As it builds, it runs into:
    Scanning dependencies of target test_mrpt_graphs
    [ 48%] Building CXX object libs/gui/CMakeFiles/mrpt-gui.dir/src/CAboutBoxBase.cpp.o
    [ 48%] Building CXX object libs/gui/CMakeFiles/mrpt-gui.dir/src/CWxGLCanvasBase.cpp.o
    [ 50%] Building CXX object libs/gui/CMakeFiles/mrpt-gui.dir/src/CGlCanvasBase.cpp.o
    [ 50%] Building CXX object libs/gui/CMakeFiles/mrpt-gui.dir/src/CAboutBox_wx.cpp.o
    [ 50%] Building CXX object libs/gui/CMakeFiles/mrpt-gui.dir/src/CDisplayWindowPlots.cpp.o
    [ 50%] Building CXX object libs/gui/CMakeFiles/mrpt-gui.dir/src/WxUtils.cpp.o
    [ 50%] Building CXX object libs/gui/CMakeFiles/mrpt-gui.dir/src/CDisplayWindow.cpp.o
    [ 50%] Building CXX object libs/gui/CMakeFiles/mrpt-gui.dir/src/registerAllClasses.cpp.o
    [ 50%] Building CXX object libs/gui/CMakeFiles/mrpt-gui.dir/src/gui-precomp.cpp.o
    [ 50%] Building CXX object libs/gui/CMakeFiles/mrpt-gui.dir/src/CAboutBoxQt.cpp.o
    [ 50%] Building CXX object tests/CMakeFiles/test_mrpt_graphs.dir/test_main.cpp.o
    [ 50%] Building CXX object tests/CMakeFiles/test_mrpt_graphs.dir/__/libs/graphs/src/ScalarFactorGraph_unittest.cpp.o
    /home/zuperath/code/mrpt/libs/gui/src/CGlCanvasBase.cpp: In member function ‘void mrpt::gui::CGlCanvasBase::resizeViewport(int, int)’:
    /home/zuperath/code/mrpt/libs/gui/src/CGlCanvasBase.cpp:119:20: error: ‘GLint’ was not declared in this scope
      glViewport(0, 0, (GLint)w, (GLint)h);
                        ^
    /home/zuperath/code/mrpt/libs/gui/src/CGlCanvasBase.cpp:119:37: error: ‘glViewport’ was not declared in this scope
      glViewport(0, 0, (GLint)w, (GLint)h);
                                         ^
    /home/zuperath/code/mrpt/libs/gui/src/CGlCanvasBase.cpp: In member function ‘void mrpt::gui::CGlCanvasBase::clearColors()’:
    /home/zuperath/code/mrpt/libs/gui/src/CGlCanvasBase.cpp:124:65: error: ‘glClearColor’ was not declared in this scope
      glClearColor(clearColorR, clearColorG, clearColorB, clearColorA);
                                                                     ^
    /home/zuperath/code/mrpt/libs/gui/src/CGlCanvasBase.cpp: In member function ‘virtual double mrpt::gui::CGlCanvasBase::renderCanvas(int, int)’:
    /home/zuperath/code/mrpt/libs/gui/src/CGlCanvasBase.cpp:260:16: error: ‘GL_ALL_ATTRIB_BITS’ was not declared in this scope
       glPushAttrib(GL_ALL_ATTRIB_BITS);
                    ^
    /home/zuperath/code/mrpt/libs/gui/src/CGlCanvasBase.cpp:260:34: error: ‘glPushAttrib’ was not declared in this scope
       glPushAttrib(GL_ALL_ATTRIB_BITS);
                                      ^
    /home/zuperath/code/mrpt/libs/gui/src/CGlCanvasBase.cpp:263:12: error: ‘GL_DEPTH_TEST’ was not declared in this scope
       glEnable(GL_DEPTH_TEST);
                ^
    /home/zuperath/code/mrpt/libs/gui/src/CGlCanvasBase.cpp:263:25: error: ‘glEnable’ was not declared in this scope
       glEnable(GL_DEPTH_TEST);
                             ^
    /home/zuperath/code/mrpt/libs/gui/src/CGlCanvasBase.cpp:264:12: error: ‘GL_ALPHA_TEST’ was not declared in this scope
       glEnable(GL_ALPHA_TEST);
                ^
    /home/zuperath/code/mrpt/libs/gui/src/CGlCanvasBase.cpp:265:12: error: ‘GL_TEXTURE_2D’ was not declared in this scope
       glEnable(GL_TEXTURE_2D);
                ^
    /home/zuperath/code/mrpt/libs/gui/src/CGlCanvasBase.cpp:269:19: error: ‘GLsizei’ was not declared in this scope
       resizeViewport((GLsizei)width, (GLsizei)height);
                       ^
    /home/zuperath/code/mrpt/libs/gui/src/CGlCanvasBase.cpp:293:17: error: ‘GL_MODELVIEW’ was not declared in this scope
        glMatrixMode(GL_MODELVIEW);
                     ^
    /home/zuperath/code/mrpt/libs/gui/src/CGlCanvasBase.cpp:293:29: error: ‘glMatrixMode’ was not declared in this scope
        glMatrixMode(GL_MODELVIEW);
                                 ^
    /home/zuperath/code/mrpt/libs/gui/src/CGlCanvasBase.cpp:294:19: error: ‘glLoadIdentity’ was not declared in this scope
        glLoadIdentity();
                       ^
    /home/zuperath/code/mrpt/libs/gui/src/CGlCanvasBase.cpp:307:11: error: ‘glFlush’ was not declared in this scope
       glFlush();
               ^
    
  • Segmentation Fault when saving ICP map

    Segmentation Fault when saving ICP map

    I'm using mrpt 1.5 from an Ubuntu PPA.

    The ICP builder exposes some methods which AFAIK allow the CSimpleMap to be saved, however they all SEGFAULT when I try:

    • saveCurrentMapToFile segfaults right away
    • setCurrentMapFile when the builder is destroyed, it tries to save the map file
    • getCurrentlyBuiltMap does not fill the map, which when I try to save segfaults also

    Am I using this wrongly, or is this a bug? Running under gdb and backtracing pinpoints to mrpt::obs::CSensoryFrame::writeToStream which in turn hints towards a dynamic_cast.

  • MRPT runs on MacOS10.14

    MRPT runs on MacOS10.14

    Emmm... I have tried to build mrpt on MacOS10.14, but some requirements can not be fullfilled.

    Is there any solutions for running MRPT on MacOS? Or does anyone try to fix it? I would like to join this fixed work.

  • Fix static builds on Linux

    Fix static builds on Linux

    Hello, I complied mrpt 1.5.6 on my Ubuntu Xenial using the source file in the branch. However, when I run the test "test_mrpt_base" I get a failure message: [ FAILED ] Matrices.SerializeCMatrixD [ FAILED ] SerializeTestBase.WriteReadToMem.

    Similarly, when I run "test_mrpt_slam", MRPT throws an exception and I get a failure message. [ FAILED ] MonteCarlo2D.RunSampleDataset.

    Please can someone tell me if there are fixes for these because I am new to mrpt.

    Thank you!

  • Octomap include problem

    Octomap include problem

    When building current master, if there is ros-octomap installed, cmake script finds octomap directory correctly. However, when compiling, there is an error octomap/octomap.h: No such file or directory: build log When uninstalling ros-octomap and using internal one, there is no problem. Built with internal octomap, MRPT installs and then there is an error when building catkin workspace with MRPT included: build log Installing ros-octomap between building MRPT and catkin workspace solves compilation problem but looks like a piece of duct tape.

    Isn't it related to #574?

    Sincerely, Borys.

  • Graphslam devel2

    Graphslam devel2

    Changed apps/libraries:

    • mrpt-graphslam
    • mrpt-graphs
    • mrpt-base

    Notes on Pull-Request

    • Current PR improves in the robustness of mrpt-graphslam lib (numerous bug fixes) and also adds support for implementing multi-robot graphSLAM - see mrpt_graphslam_2d for an example of such usage
    • Add support for implementing 3D graphSLAM using CGraphSlamEngine.
    • mrpt-graphs is a standard lib (not header-only)
    • Instead of a single function that plots a graph, add separate classes for visualizing graphs produced by a single or by multiple agents - refer to CMRVisualizer.h, CVisualizer.h.
    • Add compile-time traits for determining whether a PosePDF class holds the uncertainty in covariance or information based form - see pose_traits
    • Modify the look of github PR template file

    For an more in-depth analysis of the proposed changes refer to the commit messages.


    I acknowledge to have:

    (Notify: @MRPT/owners )

  • Errors building with MinGW 4.9  (Was: The Eigen/Array header does no longer exist in Eigen3)

    Errors building with MinGW 4.9 (Was: The Eigen/Array header does no longer exist in Eigen3)

    Hi all, I am trying to compile mrpt 1.3.2 under Windows and MinGW32. The CMake configuration has the EIGEN_USE_EMBEDDED_VERSION checked, and my make command is [mingw32-make -f makefile CXXFLAGS="-std=gnu++11" SHARED=1 UNICODE=1 BUILD=release]

    The build explodes compiling bayes/CParticleFilter.cpp, and yields the error message "The Eigen/Array header does no longer exist in Eigen3. All that functionality has moved to Eigen/Core."

    What am I doing wrong (besides building under Windows ;) )?

  • merge JSON-capable serialization methods

    merge JSON-capable serialization methods

    By @rachit173 for GSOC 2018. See #783

    Additional tasks to be done before merging:

    • [x] Helper macros
    • [x] Add serialization for CPose* classes.
    • [x] Add serialization for, at least, some CObservation* classes. Moved to #820
    • [x] Add real unit tests?
    • [x] Add examples + update dox docs with the 2 ways to use JSON serialization ("raw" and "opaque").
  • MinGW x64 building issue

    MinGW x64 building issue

    Hello!

    I got issue compiling mrpt wint MinGW64:

    cmake .. -G "MSYS Makefiles" - ok mingw32-make: `$ make Scanning dependencies of target EP_octomap [ 0%] Creating directories for 'EP_octomap' [ 0%] Performing download step (download, verify and extract) for 'EP_octomap' -- Downloading... dst='D:/Programming/libs/mrpt-1.5.6/build/EP_octomap-prefix/src/devel.zip' timeout='none' -- Using src='https://github.com/MRPT/octomap/archive/devel.zip' -- Downloading... done -- extracting... src='D:/Programming/libs/mrpt-1.5.6/build/EP_octomap-prefix/src/devel.zip' dst='D:/Programming/libs/mrpt-1.5.6/build/otherlibs/octomap' -- extracting... [tar xfz] -- extracting... [analysis] -- extracting... [rename] -- extracting... [clean up] -- extracting... done [ 0%] No patch step for 'EP_octomap' [ 0%] No update step for 'EP_octomap' [ 1%] Performing configure step for 'EP_octomap' -- The C compiler identification is GNU 7.2.0 -- The CXX compiler identification is GNU 7.2.0 -- Check for working C compiler: D:/Programming/tools/msys2/mingw64/bin/gcc.exe -- Check for working C compiler: D:/Programming/tools/msys2/mingw64/bin/gcc.exe -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Check for working CXX compiler: D:/Programming/tools/msys2/mingw64/bin/g++.exe -- Check for working CXX compiler: D:/Programming/tools/msys2/mingw64/bin/g++.exe -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done

    -- octomap building as Release -- Found Doxygen: C:/Program Files/doxygen/bin/doxygen.exe (found version "1.8.10") found components: doxygen missing components: dot

    -- Compile octomap using: make -- Install octomap using: make install -- (be sure to set the correct CMAKE_INSTALL_PREFIX before) -- Compile API-documentation using: make docs

    -- Configuring done -- Generating done -- Build files have been written to: D:/Programming/libs/mrpt-1.5.6/build/EP_octomap-prefix/src/EP_octomap-build [ 1%] Performing build step for 'EP_octomap' Scanning dependencies of target octomath-static [ 7%] Building CXX object octomap/src/math/CMakeFiles/octomath-static.dir/Vector3.cpp.obj [ 14%] Building CXX object octomap/src/math/CMakeFiles/octomath-static.dir/Quaternion.cpp.obj [ 21%] Building CXX object octomap/src/math/CMakeFiles/octomath-static.dir/Pose6D.cpp.obj [ 28%] Linking CXX static library /D/Programming/libs/mrpt-1.5.6/build/otherlibs/octomap/lib/liboctomath.a [ 28%] Built target octomath-static Scanning dependencies of target octomap-static [ 35%] Building CXX object octomap/src/CMakeFiles/octomap-static.dir/AbstractOcTree.cpp.obj [ 42%] Building CXX object octomap/src/CMakeFiles/octomap-static.dir/AbstractOccupancyOcTree.cpp.obj [ 50%] Building CXX object octomap/src/CMakeFiles/octomap-static.dir/Pointcloud.cpp.obj [ 57%] Building CXX object octomap/src/CMakeFiles/octomap-static.dir/ScanGraph.cpp.obj [ 64%] Building CXX object octomap/src/CMakeFiles/octomap-static.dir/CountingOcTree.cpp.obj [ 71%] Building CXX object octomap/src/CMakeFiles/octomap-static.dir/OcTree.cpp.obj [ 78%] Building CXX object octomap/src/CMakeFiles/octomap-static.dir/OcTreeNode.cpp.obj [ 85%] Building CXX object octomap/src/CMakeFiles/octomap-static.dir/OcTreeStamped.cpp.obj [ 92%] Building CXX object octomap/src/CMakeFiles/octomap-static.dir/ColorOcTree.cpp.obj [100%] Linking CXX static library /D/Programming/libs/mrpt-1.5.6/build/otherlibs/octomap/lib/liboctomap.a [100%] Built target octomap-static [ 1%] No install step for 'EP_octomap' [ 1%] No test step for 'EP_octomap' [ 1%] Completed 'EP_octomap' [ 1%] Built target EP_octomap Scanning dependencies of target DocumentationFiles [ 1%] Built target DocumentationFiles [ 1%] Generating C unity source libs/base/cotire/mrpt-base_C_unity.c [ 2%] Generating CXX prefix source libs/base/cotire/mrpt-base_CXX_prefix.cxx [ 2%] Generating CXX prefix header libs/base/cotire/mrpt-base_CXX_prefix.hxx [ 2%] Building CXX precompiled header libs/base/cotire/mrpt-base_CXX_prefix.hxx.gch [ 2%] Generating C prefix source libs/base/cotire/mrpt-base_C_prefix.c [ 2%] Generating C prefix header libs/base/cotire/mrpt-base_C_prefix.h [ 2%] Building C precompiled header libs/base/cotire/mrpt-base_C_prefix.h.gch Scanning dependencies of target mrpt-base [ 2%] Building CXX object libs/base/CMakeFiles/mrpt-base.dir/src/bayes/CParticleFilter.cpp.obj [ 2%] Building CXX object libs/base/CMakeFiles/mrpt-base.dir/src/bayes/CParticleFilterCapable.cpp.obj [ 2%] Building CXX object libs/base/CMakeFiles/mrpt-base.dir/src/compress/zip.cpp.obj [ 2%] Building CXX object libs/base/CMakeFiles/mrpt-base.dir/src/math/CAtan2LookUpTable.cpp.obj [ 2%] Building CXX object libs/base/CMakeFiles/mrpt-base.dir/src/math/CHistogram.cpp.obj [ 2%] Building CXX object libs/base/CMakeFiles/mrpt-base.dir/src/math/CMatrix.cpp.obj [ 2%] Building CXX object libs/base/CMakeFiles/mrpt-base.dir/src/math/CMatrixB.cpp.obj [ 2%] Building CXX object libs/base/CMakeFiles/mrpt-base.dir/src/math/CMatrixD.cpp.obj [ 3%] Building CXX object libs/base/CMakeFiles/mrpt-base.dir/src/math/CPolygon.cpp.obj [ 3%] Building CXX object libs/base/CMakeFiles/mrpt-base.dir/src/math/CRuntimeCompiledExpression.cpp.obj D:/Programming/tools/msys2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/7.2.0/../../../../x86_64-w64-mingw32/bin/as.exe: CMakeFiles/mrpt-base.dir/src/math/CRuntimeCompiledExpression.cpp.obj: too many sections (49113) D:\Programming\tools\msys2\tmp\ccPuqE9n.s: Assembler messages: D:\Programming\tools\msys2\tmp\ccPuqE9n.s: Fatal error: can't write 19 bytes to section .text of CMakeFiles/mrpt-base.dir/src/math/CRuntimeCompiledExpression.cpp.obj because: 'File too big' D:/Programming/tools/msys2/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/7.2.0/../../../../x86_64-w64-mingw32/bin/as.exe: CMakeFiles/mrpt-base.dir/src/math/CRuntimeCompiledExpression.cpp.obj: too many sections (49113) D:\Programming\tools\msys2\tmp\ccPuqE9n.s: Fatal error: can't close CMakeFiles/mrpt-base.dir/src/math/CRuntimeCompiledExpression.cpp.obj: File too big make[2]: *** [libs/base/CMakeFiles/mrpt-base.dir/build.make:325: libs/base/CMakeFiles/mrpt-base.dir/src/math/CRuntimeCompiledExpression.cpp.obj] Error 1 make[1]: *** [CMakeFiles/Makefile2:332: libs/base/CMakeFiles/mrpt-base.dir/all] Error 2 make: *** [Makefile:152: all] Error 2 `

  • particle filters: use values vs. pointers; enable C++17 in MRPT

    particle filters: use values vs. pointers; enable C++17 in MRPT

    • CProbabilityParticle now has a "storage" template param.
    • SE(2) / SE(2) particle filters now use value storage instead of smart pointers for robot poses, saving huge numbers of memory allocations.
    • MRPT now requires C++17 to build. See minimum compilers in updated README.md

    Pending before merging:

    • [x] Take a look at what's wrong with the python bindings. I fixed many error there but the remaining one, I can't localize the problem origin...
  • When configuring the running environment of pl-slam, install mrpt software, and then this error occurs

    When configuring the running environment of pl-slam, install mrpt software, and then this error occurs

    When configuring the running environment of pl-slam, install mrpt software, and then this error occurs。Mrpt version is https://github.com/MRPT/mrpt/tree/0c3d605c3cbf5f2ffb8137089e43ebdae5a55de3

    error: /usr/bin/ld: /usr/local/wxWidgets/lib/libwx_baseu-3.1.a(baselib_threadinfo.o): relocation R_X86_64_TPOFF32 against _ZZN12_GLOBAL__N_117GetThisThreadInfoEvE16s_thisThreadInfo' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: /usr/local/wxWidgets/lib/libwx_baseu-3.1.a(baselib_utilsunx.o): relocation R_X86_64_PC32 against symbol_ZN16wxAppConsoleBase14ms_appInstanceE' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: The last link failed: wrong value collect2: error: ld returned 1 exit status libs/base/CMakeFiles/mrpt-base.dir/build.make:3638: recipe for target 'lib/libmrpt-base.so.1.5.0' failed make[2]: *** [lib/libmrpt-base.so.1.5.0] Error 1 CMakeFiles/Makefile2:259: recipe for target 'libs/base/CMakeFiles/mrpt-base.dir/all' failed make[1]: *** [libs/base/CMakeFiles/mrpt-base.dir/all] Error 2 Makefile:151: recipe for target 'all' failed make: *** [all] Error 2

    ubuntu 18.04 wxWidgets3.1.0 opencv3.1.0 gcc7.5.0

  • pymrpt.so already registered; second conversion method ignored.

    pymrpt.so already registered; second conversion method ignored.

    on noetic if I link the pymrpt.so so that it is in the pythonpath many warnings are generated. The library does work.

    $ ln -s /opt/ros/noetic/lib/x86_64-linux-gnu/python3.8/dist-packages/pymrpt.so /usr/local/lib/python3.8/dist-packages/pymrpt.so
    
    $ python
    Python 3.8.10 (default, Mar 15 2022, 12:22:08) 
    [GCC 9.4.0] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import pymrpt
    <frozen importlib._bootstrap>:219: RuntimeWarning: to-Python converter for std::shared_ptr<mrpt::poses::CPose2D> already registered; second conversion method ignored.
    <frozen importlib._bootstrap>:219: RuntimeWarning: to-Python converter for std::shared_ptr<mrpt::poses::CPosePDF> already registered; second conversion method ignored.
    <frozen importlib._bootstrap>:219: RuntimeWarning: to-Python converter for std::shared_ptr<mrpt::poses::CPosePDFGaussian> already registered; second conversion method ignored.
    <frozen importlib._bootstrap>:219: RuntimeWarning: to-Python converter for std::shared_ptr<mrpt::poses::CPosePDFParticles> already registered; second conversion method ignored.
    <frozen importlib._bootstrap>:219: RuntimeWarning: to-Python converter for std::shared_ptr<mrpt::poses::CPose3D> already registered; second conversion method ignored.
    <frozen importlib._bootstrap>:219: RuntimeWarning: to-Python converter for std::shared_ptr<mrpt::poses::CPose3DPDF> already registered; second conversion method ignored.
    <frozen importlib._bootstrap>:219: RuntimeWarning: to-Python converter for std::shared_ptr<mrpt::poses::CPose3DPDFGaussian> already registered; second conversion method ignored.
    <frozen importlib._bootstrap>:219: RuntimeWarning: to-Python converter for std::shared_ptr<mrpt::poses::CPose3DPDFParticles> already registered; second conversion method ignored.
    <frozen importlib._bootstrap>:219: RuntimeWarning: to-Python converter for std::shared_ptr<mrpt::obs::CAction> already registered; second conversion method ignored.
    <frozen importlib._bootstrap>:219: RuntimeWarning: to-Python converter for std::shared_ptr<mrpt::obs::CActionRobotMovement2D> already registered; second conversion method ignored.
    <frozen importlib._bootstrap>:219: RuntimeWarning: to-Python converter for std::shared_ptr<mrpt::obs::CObservation> already registered; second conversion method ignored.
    <frozen importlib._bootstrap>:219: RuntimeWarning: to-Python converter for std::shared_ptr<mrpt::obs::CObservationOdometry> already registered; second conversion method ignored.
    <frozen importlib._bootstrap>:219: RuntimeWarning: to-Python converter for std::shared_ptr<mrpt::obs::CObservationRange> already registered; second conversion method ignored.
    <frozen importlib._bootstrap>:219: RuntimeWarning: to-Python converter for std::shared_ptr<mrpt::obs::CObservation2DRangeScan> already registered; second conversion method ignored.
    <frozen importlib._bootstrap>:219: RuntimeWarning: to-Python converter for std::shared_ptr<mrpt::obs::CObservationBearingRange> already registered; second conversion method ignored.
    <frozen importlib._bootstrap>:219: RuntimeWarning: to-Python converter for std::shared_ptr<mrpt::obs::CSensoryFrame> already registered; second conversion method ignored.
    <frozen importlib._bootstrap>:219: RuntimeWarning: to-Python converter for std::shared_ptr<mrpt::maps::TMapGenericParams> already registered; second conversion method ignored.
    <frozen importlib._bootstrap>:219: RuntimeWarning: to-Python converter for std::shared_ptr<mrpt::maps::CMetricMap> already registered; second conversion method ignored.
    <frozen importlib._bootstrap>:219: RuntimeWarning: to-Python converter for std::shared_ptr<mrpt::maps::COccupancyGridMap2D> already registered; second conversion method ignored.
    <frozen importlib._bootstrap>:219: RuntimeWarning: to-Python converter for std::shared_ptr<mrpt::maps::CPointsMap> already registered; second conversion method ignored.
    <frozen importlib._bootstrap>:219: RuntimeWarning: to-Python converter for std::shared_ptr<mrpt::maps::CSimplePointsMap> already registered; second conversion method ignored.
    <frozen importlib._bootstrap>:219: RuntimeWarning: to-Python converter for std::shared_ptr<mrpt::maps::CSimpleMap> already registered; second conversion method ignored.
    <frozen importlib._bootstrap>:219: RuntimeWarning: to-Python converter for std::shared_ptr<mrpt::maps::CMultiMetricMap> already registered; second conversion method ignored.
    <frozen importlib._bootstrap>:219: RuntimeWarning: to-Python converter for std::shared_ptr<mrpt::maps::CMultiMetricMapPDF> already registered; second conversion method ignored.
    <frozen importlib._bootstrap>:219: RuntimeWarning: to-Python converter for std::shared_ptr<mrpt::opengl::CRenderizable> already registered; second conversion method ignored.
    <frozen importlib._bootstrap>:219: RuntimeWarning: to-Python converter for std::shared_ptr<mrpt::opengl::CGridPlaneXY> already registered; second conversion method ignored.
    <frozen importlib._bootstrap>:219: RuntimeWarning: to-Python converter for std::shared_ptr<mrpt::opengl::CSetOfObjects> already registered; second conversion method ignored.
    <frozen importlib._bootstrap>:219: RuntimeWarning: to-Python converter for std::shared_ptr<mrpt::opengl::CSetOfLines> already registered; second conversion method ignored.
    <frozen importlib._bootstrap>:219: RuntimeWarning: to-Python converter for std::shared_ptr<mrpt::opengl::CEllipsoid3D> already registered; second conversion method ignored.
    <frozen importlib._bootstrap>:219: RuntimeWarning: to-Python converter for std::shared_ptr<mrpt::opengl::CEllipsoid2D> already registered; second conversion method ignored.
    <frozen importlib._bootstrap>:219: RuntimeWarning: to-Python converter for std::shared_ptr<mrpt::opengl::COpenGLScene> already registered; second conversion method ignored.
    
    
  • Kinect v2 calibration using Camera calibration app

    Kinect v2 calibration using Camera calibration app

    Hi, I am trying to calibrate Kinect V2 camera. Does the camera-calib app supports the Kinvect V2. I was using kinect v2 with libfreenect2. I tried the app but it doesnt detect the Kinect V2.

    Thanks.

  • benchmarkingImageFeatures_GUI segfault - needs refactor (Was: rawlog files not readable)

    benchmarkingImageFeatures_GUI segfault - needs refactor (Was: rawlog files not readable)

    Some rawlog files are not readable anymore.

    1. download rawlog_rgbd_dataset_freiburg1_360.tgz from https://www.mrpt.org/Collection_of_Kinect_RGBD_datasets_with_ground_truth_CVPR_TUM_2011
    2. run the benchmarkingImageFeatures_GUI example with that log file

    This will print the errors:

    QImage::scaled: Image is a null image
    QImage::scaled: Image is a null image
    QImage::scaled: Image is a null image
    Exception message: Assert condition failed: rows > 0 && cols > 0
    ==== MRPT exception backtrace ====
    [1] ../libs/obs/src/CObservation3DRangeScan.cpp:447: [virtual void mrpt::obs::CObservation3DRangeScan::serializeFrom(mrpt::serialization::CArchive&, uint8_t)] Assert condition failed: rows > 0 && cols > 0
    [0] ../libs/serialization/src/CArchive.cpp:462: [void mrpt::serialization::CArchive::internal_ReadObject(mrpt::serialization::CSerializable*, const string&, bool, int8_t)] Exception while parsing typed object 'CObservation3DRangeScan' from stream!
    

    and crash once trying to read the next image.

    The first image might be indeed empty, but this used to work with older MRPT versions. It would be very useful to retain backward compatibility with log files.

  • can't compile with mingw64

    can't compile with mingw64

    Hi

    I tried to compile MRPT on windows with mingw64: I have created a build directory next to the CMakeLists.txt file

    cd build
    cmake-gui ..
    configure
    generate
    make
    

    I have directly the following error: Building CXX object libs/core/CMakeFiles/core.dir/src/WorkerThreadsPool.cpp.obj In function 'void mySetThreadName(const string&, std::thread&)': error: 'SetThreadDescription' was not declared in this scope SetThreadDescription(theThread.native_handle(), wName);

    I can't find any reference to that issue anywhere.

    Help would be appreciated. Regards

A compiler for the Bon programming language.

bonc A compiler for the Bon programming language. About Note: This project is extremely WIP, like no executables being produced WIP Bon is a work in p

Mar 14, 2022
Base64 Encoding implementation in C Programming Language

cb64 Base64 Encoding implementation in C Programming Language Spec: https://datatracker.ietf.org/doc/html/rfc4648#page-5 Header only So just copy cb64

Dec 14, 2021
Mobile Robot Programming Toolkit (MRPT) provides C++ libraries aimed at researchers in mobile robotics and computer vision
Mobile Robot Programming Toolkit (MRPT) provides C++ libraries aimed at researchers in mobile robotics and computer vision

The MRPT project 1. Introduction Mobile Robot Programming Toolkit (MRPT) provides C++ libraries aimed at researchers in mobile robotics and computer v

Sep 28, 2022
Dummy-Robot my super mini robot arm robot items
Dummy-Robot my super mini robot arm robot items

Dummy-Robot 我的超迷你机械臂机器人项目。 资料待整理 已添加3D模型设计源文件。 已添加夹爪硬件设计文件和LED灯环PCB 已添加无线空间定位控制器PCB文件 已添加无线示教器Peak软硬件工程(作为submodule) 已添加REF的硬件设计文件 已添加DummyStudio上位机 已

Oct 3, 2022
✔️The smallest header-only GUI library(4 KLOC) for all platforms
✔️The smallest header-only GUI library(4 KLOC) for all platforms

Welcome to GUI-lite The smallest header-only GUI library (4 KLOC) for all platforms. 中文 Lightweight ✂️ Small: 4,000+ lines of C++ code, zero dependenc

Oct 2, 2022
:zap: KCP - A Fast and Reliable ARQ Protocol
:zap: KCP - A Fast and Reliable ARQ Protocol

KCP - A Fast and Reliable ARQ Protocol README in English 简介 KCP是一个快速可靠协议,能以比 TCP 浪费 10%-20% 的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降低三倍的传输效果。纯算法实现,并不负责底层协议(如UDP

Sep 28, 2022
Mobile robot simulator

The Stage Simulator This is the Stage README file, containing an introduction, license and citation information. Stage is a 2(.5)D robotics standalone

Sep 19, 2022
SMARTmBOT - a new, customizable, scalable, and fully opensource mobile robot platform
SMARTmBOT - a new, customizable, scalable, and fully opensource mobile robot platform

The goal of this repository is to introduce a new, customizable, scalable, and fully opensource mobile robot platform, called SMARTmBOT. This repository provides a guide, and all design files and source codes so that you can build your own SMARTmBOT. SMARTmBOT can be useful for studying the basics of robotics, especially mobile robotics. It can also be used to study advanced topics such as swarm robotics.

Sep 17, 2022
Simple ROS mobile robot
Simple ROS mobile robot

Do-it-yourself differential drive ROS robot This project started out when my wife bought me a Raspberry-Pi 4 (w/ 8GB RAM) for my birthday. At the time

Oct 2, 2022
A ROS package for mobile robot localization with 2D LiDAR

mcl_ros About mcl_ros mcl_ros is a ROS package for mobile robot localization with 2D LiDAR. To implement localization, Monte Carlo localization (MCL)

Aug 29, 2022
WIP: ESP32 powered robot dog, quadruped robot. This is just code, hardware in the other repositories
WIP: ESP32 powered robot dog, quadruped robot. This is just code, hardware in the other repositories

Small Robot dog (quadruped) Hardware ESP32 IMU (not implemented) 12 servos TowerPro mg90d (hope it will work) Two 18650 Software Arduino IDE compatibl

Sep 23, 2022
A ROS robot supporting voice control, autonomous navigation and robot arm motion.
A ROS robot supporting voice control, autonomous navigation and robot arm motion.

ROS Service Robot Project Due to the GitLab restrictions, only screenshot is displayed here. Warehouse Overview robot: The development source code is

Aug 24, 2022
Sep 16, 2022
Microsoft Cognitive Toolkit (CNTK), an open source deep-learning toolkit

CNTK Chat Windows build status Linux build status The Microsoft Cognitive Toolkit (https://cntk.ai) is a unified deep learning toolkit that describes

Sep 29, 2022
Lite.AI.ToolKit 🚀🚀🌟: A lite C++ toolkit of awesome AI models such as RobustVideoMatting🔥, YOLOX🔥, YOLOP🔥 etc.
Lite.AI.ToolKit 🚀🚀🌟:  A lite C++ toolkit of awesome AI models such as RobustVideoMatting🔥, YOLOX🔥, YOLOP🔥 etc.

Lite.AI.ToolKit ?? ?? ?? : A lite C++ toolkit of awesome AI models which contains 70+ models now. It's a collection of personal interests. Such as RVM, YOLOX, YOLOP, YOLOR, YoloV5, DeepLabV3, ArcFace, etc.

Oct 1, 2022
Nov 13, 2020
Insight Toolkit (ITK) is an open-source, cross-platform toolkit for N-dimensional scientific image processing, segmentation, and registration
 Insight Toolkit (ITK) is an open-source, cross-platform toolkit for N-dimensional scientific image processing, segmentation, and registration

ITK: The Insight Toolkit C++ Python Linux macOS Windows Linux (Code coverage) Links Homepage Download Discussion Software Guide Help Examples Issue tr

Sep 30, 2022
Microsoft Cognitive Toolkit (CNTK), an open source deep-learning toolkit
Microsoft Cognitive Toolkit (CNTK), an open source deep-learning toolkit

The Microsoft Cognitive Toolkit is a unified deep learning toolkit that describes neural networks as a series of computational steps via a directed graph.

Oct 2, 2022
PLP Project Programming Language | Programming for projects and computer science and research on computer and programming.
PLP Project Programming Language | Programming for projects and computer science and research on computer and programming.

PLPv2b PLP Project Programming Language Programming Language for projects and computer science and research on computer and programming. What is PLP L

Aug 20, 2022
The Synthesis ToolKit in C++ (STK) is a set of open source audio signal processing and algorithmic synthesis classes written in the C++ programming language.

The Synthesis ToolKit in C++ (STK) By Perry R. Cook and Gary P. Scavone, 1995--2021. This distribution of the Synthesis ToolKit in C++ (STK) contains

Sep 24, 2022