Skip to content

Instantly share code, notes, and snippets.

@MaidouPP
Last active August 11, 2018 18:19
Show Gist options
  • Save MaidouPP/36370d985431ef93d9085604cd640b8b to your computer and use it in GitHub Desktop.
Save MaidouPP/36370d985431ef93d9085604cd640b8b to your computer and use it in GitHub Desktop.
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: RoboSherlock/robosherlock#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: RoboSherlock/robosherlock#139
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment