-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Pull Request for GSoC Work Product Submission #1
Open
karnikram
wants to merge
63
commits into
MRPT:master
Choose a base branch
from
karnikram:master
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* Setup the main GUI window * Added setup elements * Added initialization elements
…ses for the calibration (calib_core), the GUI squeleton (autocalib-gui), testing individual examples, program unit tests, build the doc with doxygen, and search for dependencies with cmake scripts (cmake_modules). Remove temporary files
Set the project structure
* Change QTextEdit to QSpinBox, QGroupBox to QDockWidget * Add new buttons, re-arrange setup widgets * Load rawlog file * Adopt MRPT code style guidelines
* Custom tree model to represent and display the rawlog entries as a tree * Setup a viewer container as the central widget * Refactoring and cleaning
* Added three pcl visualizers as qvtkwidgets * Initialized with place-holder point cloud * Setup config widget * Layout changes to viewer container
* Reorganized and resized widgets for better clarity * Linked visualizers to observation clouds * Changed visualizer background, added coordinate system
* Handling observation set, observation item clicks separately * Added class for plane-matching algorithm, not able to convert Observation3DRangeScan into organized point cloud for pcl's normal estimation method * Refactoring
* Add dockwidget for algo config, insert algo specific widget based on selection * Setup code to pass values from ui to core algo * Refactoring
* Not able to include ui_*.h files properly * Code to share setup values and UI across classes * Refactoring
* Passed std::function objects pointing to the update text method inside the ui, instead of passing the ui itself * Refactoring
* CMake changes to build with the latest mrpt libraries. * Added Q_MOC_RUN macro for compatibility with Qt 5.7. * Removed redundant code, added helper messages
* Implemented observer design pattern for more modularity. CPlaneMatching is a subject and it maintain a list of observers and notifies them automatically about status changes through a common interface, CObserver. The observers register with the subject without tight coupling. * Refactoring
* Able to run plane segmentation on the rawlog, and visualize the segmented planes * Added normal estimation parameters to gui * Refactoring
* Clicking on any observation tree item will now show the original cloud with the extracted planes overlayed * Refactoring
* Added a progress dialog to show feedback on load progress * Display rawlog stats * Fix bug that caused the last observation set to not be loaded * Refactoring, moved to 18.04 with PCL 1.8 and Qt 5.9.5
* Added image viewer, re-arranged viewer elements * Added classes for line matching algorithm
* Added QListWidget with checkboxes for selecting the sensors the user wishes to calibrate. * Setup Doxyfile for Doxygen document generation. * Updated README.
Added 2 new classes to organize the calibration functions.
* Added option to regroup observations based on time stamp proximity * Added a list view to display original list of observations * Refactoring
* Added classes as wrappers around the core classes
* Loads initial calib, grouping, and plane seg params * Writes initial calib, grouping params * Writing plane seg params needs fix * Refactoring
* Items and sets on the grouped tree view can now be visualized * More doxygen comments and refactoring
* Now visualizing the correct clouds upon click by maintaining the indices of the items in the original model. * Fixed indentation issues
* Created CObservationTree and CObservationTreeItem classes to manage the observations loaded from the rawlog, independent of gui, and their synchronization. * Subclassed CObservationTree as CObservationTreeGui to display the tree in gui. * Running plane segmentation now directly on the synced observation tree. But display causes a crash. * Fixed missing image for input2 issue, and the issue of incorrectly transforming point clouds before display. * Yet to add QProgressDialog.
* Regrouped parameters into one file, with one container TCalibFromPlanesParams structure * Fixed minor label counting bug
* Now displaying the contours of the segmented planes and their normals in the cloud viewers * Displaying the 2D plane contours in the image viewers * Fixed minor label count bug, and segfault in previous commit * Renamed some gui elements
* Reorganized setup elements to now load a config file before loading rawlog file * Sensor poses are now stored inside the model * Added a combo box to select a sensor pose and edit its values * mrpt complains about pose to rvec conversion saying rotation matrix is not orthogonal and causes a crash
* Now loads plane matching params from config file and passed to CCalibFromPlanes through the gui * sensor_poses now gets modified according to sensors selected for synchronization
* Added code for matching of planes by applying distance and normal constratints, yet to visualize * Overlapped point clouds are now being shown in the middle window like before, "extract planes" and "match planes" button clicks are now being handled better by maintaining the status as an enum * Now using saved clouds during display, but wrong cloud is being displayed
* Added code visualizing the plane matches in the middle viewer, and an interface class for communication between the viewer and the calib class * However the problem of incorrect clouds and its matches being displayed is still there
* Added code for calibrating the rotations, yet to be tested * Refactored plane matching code to use maps and their pair-wise visualization, yet to be tested * Saving loaded clouds within CObservationTreeItem for quick access and display * GUI changes for inputting matching, solver params
* Integrated line segmentation with gui, runs properly * Added code for visualization of the extracted 2d line segments on images but mrpt img causes a crash when it is being released * Cleaned rotation estimation from planes, error still always increases
* Segmented lines and planes are now being drawn on the 2d images properly using shared pointers * Now able to dynamically switch algorithms, by hiding/showing widgets * Cloud viewer text added back * Cleaning
* Created new CLine class for storing the geometric properties of the extracted lines * Added code for estimating these properties * Added code for visualization of 3D lines, doesn't match the 2D line segments - needs debugging
* Added code for matching of 3D lines based on normal-normal and normal-line dot product constraints * Added code for visualizaiton of matched 3D lines in the main viewer, needs fixing
* Added code for selection of which sensor's observations to visualize in the viewers. Works only for observations selected from the list as of now (not the sync sets) * Fix bug related to printing of matching stats
…needs to be tested. 2) Fix bug in CCalibFromPlanes::findPotentialMatches. 3) Added a new config file for a new dataset.
* Can now switch between multiple sensors in the viewers in order to visalize their clouds, images, and extracted and matched features if any. Used a vector of buffer structures to store the data of all the observations from a set * Introduced a downsampling factor to easily sample spaced out observation sets for calibration * Saving and access of loaded clouds is now working properly, except in the case of CCalibFromPlanesGui where behavior is somewhat random
* Used pbmap methods to remove duplicate planes out of all the planes extracted from a cloud observation, along with the gui changes to input the methods' params * Code cleaning
* Introduced angular and distance uncertainty in gui and config files, used for matching features, and stored in model * Rearranged gui elements to better match with calib workflow - like editing initial calib values along with the calib params * Moved calib params object to core classes * Stored results of solver in separate object, using for printing * Code cleaning
karnikram
changed the title
Pull Request for Final Project Submission
Pull Request for GSoC Work Product Submission
Aug 14, 2018
* Updated readme with details of all work done, to be done, a demo video, and others * Minor code clean
@EduFdez : Let me know when this PR is ready to be merged, at your judgement... |
I'll let you know! |
* 3D lines extracted (by back-projecting 2D lines) were relative to the camera's frame. Had to transform them back to the depth sensor's frame.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Have added an elaborate README with details of all work done, to be done, links to a demo video and blog post among others.
Includes some commits made by mentor as well.