Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Google Summer of Code summary

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:

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:

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:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.