WIP: Plugin-based simulator #14
                
     Open
            
            
          
  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.
  
    
  
    
This PR adds a plugin-based simulator for using
gl_depth_simcomponents. There are two types of plugins:SceneUpdaterPluginandRenderPlugin. TheSceneUpdaterPluginis responsible for maintaining the renderable scene by creating a map ofRenderableObjectStateobjects and updating their positions. TheRenderPluginaccepts a copy of this map from theSceneUpdaterPluginand generates a form of rendered display usinggl_depth_simcomponents. This PR implements these interfaces by providing a plugin that can create a scene from URDF and update with TF information, a plugin that renders the scene as a 3D depth camera, and a plugin that renders the scene as a laser scanner.TODO:
SimDepthCamerawith different camera properties can exist at the same time@schornakj can you review the content and structure of this PR and advise on how it fits into your vision for a pure CMake package?