{"id":26965566,"url":"https://github.com/jmuwrobotics/3dtk","last_synced_at":"2025-09-12T12:37:45.763Z","repository":{"id":50620681,"uuid":"120477018","full_name":"JMUWRobotics/3DTK","owner":"JMUWRobotics","description":"The 3D Toolkit provides algorithms and methods to process 3D point clouds. In includes automatic precise registration (6D simultaneous localization and mapping, 6D SLAM) and other tools, e.g., a fast 3D viewer, plane extraction software, etc.","archived":false,"fork":false,"pushed_at":"2025-03-25T13:13:56.000Z","size":81769,"stargazers_count":94,"open_issues_count":9,"forks_count":31,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-03-25T13:34:14.142Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Roff","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JMUWRobotics.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2018-02-06T15:15:26.000Z","updated_at":"2025-03-25T12:36:04.000Z","dependencies_parsed_at":"2025-03-25T13:28:54.085Z","dependency_job_id":"bcf02652-1987-4462-9e6d-0423a25e32b0","html_url":"https://github.com/JMUWRobotics/3DTK","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JMUWRobotics%2F3DTK","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JMUWRobotics%2F3DTK/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JMUWRobotics%2F3DTK/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JMUWRobotics%2F3DTK/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JMUWRobotics","download_url":"https://codeload.github.com/JMUWRobotics/3DTK/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246955737,"owners_count":20860338,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-04-03T07:29:47.202Z","updated_at":"2025-09-12T12:37:45.744Z","avatar_url":"https://github.com/JMUWRobotics.png","language":"Roff","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 3DTK - The 3D Toolkit\n\n[![CI](https://github.com/JMUWRobotics/3DTK/actions/workflows/main.yml/badge.svg?event=push)](https://github.com/JMUWRobotics/3DTK/actions/workflows/main.yml)\n\n## About\n_The 3D Toolkit_ provides algorithms and methods to process 3D point clouds. It includes automatic high-accurate registration (6D simultaneous localization and mapping, 6D SLAM) and other tools, e.g., a fast 3D viewer, plane extraction software, etc. Several file formats for the point clouds are natively supported, new formats can be implemented easily. Check out our [website (threedtk.de)](http://threedtk.de) for more information.\n\n## Build Instructions\nFor installation instructions on **Ubuntu**, **Debian** and **macOS**, please have a look at the [**INSTALL file**](INSTALL.md).\n\nTo compile the project simply call `make`. This will configure slam6d using the default settings. If you wish to configure the project using custom settings do: `make config`. This command requires _ccmake_ be installed on your system.  Alternatively you may change into the build directory `.build` and configure the project with your preferred cmake configurator, i.e.:\n```\nmkdir .build\ncd .build \u0026\u0026 cmake ..\n```\nFor **Microsoft Windows**, use the _cmake-gui_ application provided by _cmake_ to configure and generate project files for the appropriate version of _Microsoft Visual Studio C++_ of your system. Use the `INSTALL`  target to built the entire project.  Executables (and .dll's) will then reside in the `windows` folder. For running the binaries you need to install the proper redistributable package.\nAlternatively on **Windows**, execute the batch script `build.cmd` either from the command line or from the Explorer. It will download and extract the right versions of _boost_ and _opencv_ and then run _cmake_ with the right configuration options.\n\nSome Boost libraries (_graph, regex, serialization, filesystem, interprocess_) are needed to compile the slam6D program. **_3DTK_ is not compatible with boost version 1.49.** Please make sure to use a different version.\n\n### ROS Support\n3DTK currently supports ROS1 distributions like Kinetic, Melodic, and Noetic. Compile the project with the `WITH_ROS` flag. You can call `make config` from the project root directory to set this flag. We are working on support for ROS2. \n\nDependency list for compiling with ROS:\n- catkin\n- ros-std-msgs\n- ros-std-srvs\n- librosbag-dev\n- libnav-msgs-dev\n- libstd-srvs-dev\n- libtf2-sensor-msgs-dev\n- libtf2-eigen-dev\n- libtf2-kdl-dev\n- libtf-conversions-dev\n- libpcl-conversions-dev\n- liblaser-geometry-dev\n- libkdl-parser-dev\n- liburdf-dev\n- librobot-state-publisher-dev\n- liborocos-bfl-dev\n\n### 3DConnexion Space Mouse Support\nThe Applications `show` and `qtshow` supports navigation with the _3DConnexion SpaceMouse_. The left key on the _SpaceMouse Wireless/Compact_ fixes the rotation and the right key fixes the translation.\nThe keyset for other models can be different.\n\n#### Linux\nNo further steps are required for the basic functions. For full support the `libspnav` and the `spacenavd` daemon ([show on GitHub](https://github.com/FreeSpacenav)) is required.\nThen build _3DTK_ with the `WITH_3DMOUSE` option.\n\n#### macOS\nIt's required to install the official driver and build _3DTK_ with the `WITH_3DMOUSE` option.\n\n\u003c!--#### Windows\nShould be the same as for macOS, but is not tested!--\u003e\n\n## Getting Started\nFor a detailed explanation of the programm, its usage, etc., please refer to the [high level documentation](doc/documentation_HL.pdf) (esp. sections 4-6, for starters) and [here](doc/3d_video.md) for creating videos with _3DTK_. Further a reference manual can be found in `doc/html/index.html` after building the doxygen domcumentation (type in `make docu` to get the HTML files).\n\n##### Important:\nTake care to register scans first (`bin/slam6D`) before trying to display them (`bin/show`), and think about using the point reduction ([see section 6](doc/documentation_HL.pdf)) for a much faster scan matching result. Extremely large scans might need to be reduced (using `bin/scan_red`) before registration. This will write reduced scans in the `uos` format into a directory `reduced` in the data directory.\n\n### Datasets:\nThree example scans are included in the dat directory, several larger data sets can be downloaded from the [data repository](http://kos.informatik.uni-osnabrueck.de/3Dscans/).\n\n### Examples:\n#### slam6d and show\n###### Using the data set in the slam6d repository:\n```\nbin/slam6D -m 500 -R 5 -d 25.0 --metascan dat\nbin/show dat\n```\n```\nbin/slam6D --max=500 -r 10.2 -i 20 --metascan dat\nbin/show dat\n```\n\n###### Using `hannover1.tgz` [from data repository](http://kos.informatik.uni-osnabrueck.de/3Dscans/):\n```\nbin/slam6D -s 1 -e 65 -r 10 -i 100 -d 75 -D 250 --epsICP=0.00001\n           -I 50 --cldist=750 -L 0 -G 1 /YOUR/DOWNLOAD/DIRECTORY/dat_hannover1\nbin/show -s 1 -e 65 /YOUR/DOWNLOAD/DIRECTORY/dat_hannover1\n```\n\n###### Using `hannover2.tgz` [from data repository](http://kos.informatik.uni-osnabrueck.de/3Dscans/):\n```\nbin/slam6D -q -r 10 -f rts -s 23 -d 75 -L 4 --cldist=1500 -G 1 -D -1\n           --DlastSLAM 250 --graphDist 200 -I 50 /YOUR/DOWNLOAD/DIRECTORY/hannover2\nbin/show -f rts -s 23 /YOUR/DOWNLOAD/DIRECTORY/hannover2\n```\n\n###### Using `kvarntorp_mine.tgz` (`dat_mine1`) [from data repository](http://kos.informatik.uni-osnabrueck.de/3Dscans/):\n```\nbin/slam6D -s 1 -e 76 -r 10 -m 3000 -d 50 -i 1000 --epsICP=0.000001\n           -I 50 -D 75 --clpairs=5000 -f old /YOUR/DOWNLOAD/DIRECTORY/dat_mine1/\nbin/show -s 1 -e 76 -m 3000 -f old /YOUR/DOWNLOAD/DIRECTORY/dat_mine1/\n```\n\n###### Using `bremen_city.zip` [from data repository](http://kos.informatik.uni-osnabrueck.de/3Dscans/):\n```\nbin/scan_red -s 0 -e 12 -r OCTREE -v 10 --octree 0 -f RIEGL_TXT /YOUR/DOWNLOAD/DIRECTORY/bremen_city\nbin/slam6D -a 2 -q /YOUR/DOWNLOAD/DIRECTORY/bremen_city/reduced -f uos -d 150\n            -s 0 -e 12 --anim=1 -n /YOUR/DOWNLOAD/DIRECTORY/bremen.net\n\t\t  -G 1 -D 100 -i 0 -I 50 -p --epsSLAM=0.0\nbin/show -s 0 -e 12 /YOUR/DOWNLOAD/DIRECTORY/bremen_city/reduced\n```\n\n###### Using `UniKoblenz_CampusTour3_OsnabrueckFormat.tar.gz` [from data repository](http://kos.informatik.uni-osnabrueck.de/3Dscans/):\n```\nbin/slam6D -s 1 -e 320 -r 20 -i 300 --epsICP=0.000001 -d 45 -D 45\n           -f uos --algo=2 -l 10 -L 4 -I 100 -G 1\n           /YOUR/DOWNLOAD/DIRECTORY/UniKoblenz_CampusTour3_OsnabrueckFormat/\nbin/show -s 1 -e 320 -f uos /YOUR/DOWNLOAD/DIRECTORY/UniKoblenz_CampusTour3_OsnabrueckFormat/\n```\n\n#### Detecting Planes\nFor detecting planes compile with the `WITH_PLANE` option. Adapt the settings in `bin/hough.cfg` for your data set.\nUsing the data set in the slam6d repository, no modification of `bin/hough.cfg` necessary:\n```\nbin/planes -s 0 dat\nbin/show -s 0 -e 0 dat -l dat/planes/planes.list\n```\n\n###### Using `bremen_city.zip` [from data repository](http://kos.informatik.uni-osnabrueck.de/3Dscans/):\nAdapt these settings in `bin/hough.cfg`:\n```\nRhoNum              500\nRhoMax              5000\nMaxPointPlaneDist   50.0\nMinPlaneSize        50\nPointDist           100.0\n```\n```\nbin/planes -f riegl_txt -s 0 /YOUR/DOWNLOAD/DIRECTORY/bremen_city/ -r 50 -O 1 -m 5000\nbin/show -s 0 -e 0 /YOUR/DOWNLOAD/DIRECTORY/bremen_city/ -f riegl_txt -l dat/planes/planes.list -r 10 -O 1 -m 5000\n```\n\n## Frequent Use\n\nIf you find yourself using 3DTK frequently, read about [Configuration Files](doc/Configuration%20Files.md) to find out how not to have to type as much on the command line.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjmuwrobotics%2F3dtk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjmuwrobotics%2F3dtk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjmuwrobotics%2F3dtk/lists"}