GSoC18 Final Summary - Shixin Li
About the project
This project is for making a better user-interface for a robot perception system, called RoboSherlock. We want to relieve users from installing UIMA-CPP library outside of ROS build system, giving better logging when something's wrong with user input, and further simplifying the annotator / analysis engine input from XML to YAML. Some blogs can be found here.
Part 1: Migrating UIMA-CPP library from autotools to ROS-CMake project and Integrating with RoboSherlock
- My work is mainly in converting the existing UIMA-CPP project, which is built with autotools, to a CMake/ROS-build project.
- To be more specific, I wrote new CMake-related scripts, ROS-related configuration files and got rid of all the autotools scripts. Meanwhile, I also modified the Robosherlock side so as to integrate with the new UIMA-ros project, to make sure the new RS can include and link to uima-ros headers and libraries as before.
- Pull request link for RoboSherlock: https://github.com/RoboSherlock/robosherlock/pull/118
Part 2: Adding proper error handler into new UIMACPP_ROS package
- I worked on adding proper error handler into UIMACPP_ROS so as to make debugging easier when something’s wrong. Original uimacpp usually just crashes and gives segfault, which is almost useless for programmers. I investigated different wrong inputs and corresponding responds from UIMACPP_ROS, and then inserted proper logging for dealing with them.
- I further completed the migration of UIMACPP to the ROS version, as well as for robosherlock. I re-investigated the original autotool configurations and made the new CMake configurations consistent as the counterpart. By doing this, I solved the process crash problem when operating with database.
- All commits made for UIMACPP_ROS: https://github.com/RoboSherlock/uimacpp_ros/commits/master
Part 3: Changing annotator input from XML format to YAML format
- I Migrated XML-based analysis engine input to YAML-based analysis engine input for RoboSherlock, so that users don't need to take care of complex XML structure, instead RoboSherlock will automatically do the transformation.
- To fullfill this function, I added RS-adpated XML parser and XML-to-Yaml converter with new analysis engine builder in both RS and UIMACPP_ROS side.
- Pull request link for RoboSherlock: https://github.com/RoboSherlock/robosherlock/pull/139