GithubHelp home page GithubHelp logo

fate7788 / slam3d_gx Goto Github PK

View Code? Open in Web Editor NEW

This project forked from gaoxiang12/slam3d_gx

0.0 1.0 0.0 128.61 MB

A 3d SLAM program, using novel plane ICP

License: GNU General Public License v3.0

CMake 16.25% Shell 0.24% Python 12.40% C++ 70.33% C 0.78%

slam3d_gx's Introduction

SLAM3d_gx
Author: xiang gao

Last update date: 3.24.2016
Updates:
This program is out-dated and I'm no longer maintaining it. If you are interested in RGB-D SLAM, please refer to the rgbd-slam-tutor in my repos:
https://github.com/gaoxiang12/rgbd-slam-tutorial-gx 
and the blog: http://www.cnblogs.com/gaoxiang12/


Updates:

2014.8.29
1.	There is a "prepare.sh" in ./tools directory which allow you transmit rgb and depth data directly.
2.	The planar feature is still under test. It's computational cost is too high to meet real-time requirements. It needs pcd data prepared before you run bin/run_SLAM. So I writed another executable file in "bin/run_SLAM_imageonly" which only relies on image files other than pointclouds. However, this program may fail due to featureless occassions so use it carefully. Results will be more accurate if odometry data is provided.


This is a 3D visual SLAM written by xiang gao. It uses Kinect data, i.e. 
rgb and depth images to construct a map of the robot's environment and compute trajectory of the robot itself. The code is experimental and will be updated commonly.

If you have any problem please contact me:

	[email protected]

Note:
1.	In order to have the code compiled successfully, you must have the following preliminary software installed in your pc.
	
	OpenCV		-http://www.opencv.org/
	PCL		-http://www.pointclouds.org/
	yaml-cpp	-sudo apt-get install yaml-cpp
	g2o		-https://github.com/RainerKuemmerle/g2o
	
2.	Build
	The code is organized as a cmake project. To build it, please type:
	
	mkdir build
	cd build
	cmake ..
	make
	
	The binary files will be generated in bin/. 
	
3.	Get some dataset.
	This is a SLAM system so you must have some recorded data to use them as
	input to this program. You can also use public dataset:
	http://vision.in.tum.de/data/datasets/rgbd-dataset
	
	The program's requirement about dataset is listed as follows:
	
	Parameters: ./parameters.yaml   -you can change the parameters at any time.
					-The dataset's dir is also indicated in this file.
	RGB and Depth images: must be put in "rgb_index" and "dep_index" directories,
				or the program cannot find them. The files should be named 
				as 1.png, 2.png and so on.
	Pointclouds: in pcd/ directory. Index of pcd should be same as rgb and depth images.
	Odometry: in odometry.txt The odometry data is optional and you can enable/disable
		odometry input in parameters.yaml.
		
	If you only have rgb and depth files with record time, as the public dataset
	mentioned before, we also provide some tools to convert the file formats. 
	You can find them in tools/ dir. You can use them like this:
	
	mkdir rgb_index depth_index ply pcd
	python generateTxt.py 	--rgb.txt and dep.txt will be generated.
	python associate rgb.txt dep.txt > associate.txt --associate rgb and depth data.
	python img2pcd 	--convert image data to pcd files.
	
4.	Run slam
	After the preparation before you can run our visual slam program like this:
	bin/run_slam [loops]
	After slam process a trajectory file will be generated in data/final.g2o. You can 
	watch the result using g2o_viewer and optimize it:
	g2o_viewer data/final.g2o
	Then save it in any place, like ./fin.g2o
	
5.	Save final result.
	run:
		bin/saveOutput data/keyframe.txt ./fin.g2o
	You will get a pcd file of all input data in ./result.pcd
	If you want to view the trajectory, you should copy odometry.txt to 
	current folder run:
		bin/generateTrajectory data/keyframe ./fin.g2o
		python tools/drawTrajectory.py
	Enjoy!
	
	
	

slam3d_gx's People

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.