joansola / slamtb Goto Github PK
View Code? Open in Web Editor NEWSLAM Toolbox
License: GNU General Public License v3.0
SLAM Toolbox
License: GNU General Public License v3.0
SLAM Toolbox for Matlab. ======================== This git repository provides EKF-SLAM and graph-SLAM toolboxes. I. Copyright and license. ========================= (c) 2007, 2008, 2009, 2010 Joan Sola @ LAAS-CNRS; (c) 2010, 2011, 2012, 2013 Joan Sola (c) 2014, 2015, 2016--2018 Joan Sola @ IRI-UPC-CSIC; (c) 2009 Joan Sola, David Marquez, Jean Marie Codol, Aurelien Gonzalez and Teresa Vidal-Calleja, @ LAAS-CNRS; (c) 2018 Marija Popovic @ ETH, thanks for the ellipse drawing in graph SLAM Maintained by Joan Sola Please write feedback, suggestions and bugs to: [email protected] or use the GitHub web tools. Published under GPL license. See COPYING.txt. II. Giving credit ================= In addition to the GPL license, users should consider, in their scientific communications : A. acknowledging the use of this toolbox. B. citing one of the papers of the authors: - SOLA-ETAL-IJCV-11 "Impact of landmark parametrization on monocular EKF-SLAM with points and lines" - SOLA-ETAL-IROS-09 "Undelayed initialization of line segments in monocular SLAM" - SOLA-ETAL-TRO-08 "Fusing monocular information in multi-camera SLAM" - SOLA-ETAL-IROS-05 "Undelayed initialization in bearing only SLAM" appearing in the References section in the documentation. III. Installation and quick usage. ================================== To make it work, (1) open a terminal (for example, a linux terminal) and (2) start Matlab. Then follow these steps: To use EKF-SLAM ------------------- A. In the [Linux / MacOSX] terminal: A.1. Get the source code, git clone git://github.com/joansola/slamtb.git A.2. Go to the toolbox cd slamtb A.3. Select the EKF-SLAM project. git checkout ekf B. In the Matlab command window: B.1. Go to the toolbox >> cd slamtb B.2. Add all subdirectories in slamtb/ to your Matlab path using the provided script: >> slamrc B.3. Edit user data file, and enter the data of your experiment. >> edit userData.m. B.4. Run the main script >> slamtb. B.5. To develop methods, read first slamToolbox.pdf and guidelines.pdf. To use graph-SLAM ------------------- A. In the [Linux / MacOSX] terminal: A.1. Get the source code, git clone git://github.com/joansola/slamtb.git A.2. Go to the toolbox cd slamtb A.3. Select the graph-SLAM project. git checkout graph B. In the Matlab prompt: B.1. Go to the toolbox >> cd slamtb B.2. Add all subdirectories in slamtb/ to your Matlab path using the provided script: >> slamrc B.3. Edit user data file, and enter the data of your experiment. >> edit userDataGraph.m B.4. Run the main script >> slamtb_graph B.5. To develop methods, read first slamToolbox.pdf and guidelines.pdf. For graph-SLAM, read also courseSLAM.pdf. Enjoy!
I am working on this program recent days, and I want to do some research on the graph slam. When I add a robot and also add a sonser on it, then I try to run slamtb_graph.m, it comes out a error which said
In solveGraphQR (line 60)
In solveGraph (line 16)
In slamtb_graph (line 236)
Warning: The matrix is singularly working with precision.
Wrong use atan2
The input must be a real number.
Error q2au (line 21)
a = 2*atan2(n,s);
Error q2v (line 17)
[a,u,A_q,U_q] = q2au(q);
Error qpose2vpose (line 14)
[v, V_q] = q2v(qp(4:7));
Error computeError (line 36)
[Fac.err.z, Z_pq] = qpose2vpose(pq);
Error computeResidual (line 31)
[Fac(fac), e, W] =
computeError(Rob(rob),Sen(sen),Lmk(lmk),Obs(sen,lmk),Frm(frames),Fac(fac));
Error solveGraphQR (line 75)
[res, err_max] =
computeResidual(Rob,Sen,Lmk,Obs,Frm,Fac);
Error solveGraph (line 16)
[Rob,Sen,Lmk,Obs,Frm,Fac] =
solveGraphQR(Rob,Sen,Lmk,Obs,Frm,Fac,Opt.solver);
Error slamtb_graph (line 236)
[Rob,Sen,Lmk,Obs,Frm,Fac] =
solveGraph(Rob,Sen,Lmk,Obs,Frm,Fac,Opt);
I want to know why this happened?Thank you!
when I Run the main script >>slamtb
some error occured , in createLandmarks.m --line 23 : Lmk(lmk).state.dsize = Opt.map.lmkDSize;
but in userData.m --line 185 : Opt.map has no lmkDSize,
so is there a minor mistake? thanks : )
change pitch by this
e(1) = atan2(-_R(2,0), sqrt(_R(0,0)*_R(0,0) + _R(1,0)*_R(1,0)));
indices are 012
not 123
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.