{"action":"created","issue":{"url":"https://api.github.com/repos/clearpathrobotics/navigation/issues/5","labels_url":"https://api.github.com/repos/clearpathrobotics/navigation/issues/5/labels{/name}","comments_url":"https://api.github.com/repos/clearpathrobotics/navigation/issues/5/comments","events_url":"https://api.github.com/repos/clearpathrobotics/navigation/issues/5/events","html_url":"https://github.com/clearpathrobotics/navigation/pull/5","id":72238909,"number":5,"title":"Costmap2D Inflation optimizations","user":{"login":"jasonimercer","id":12039018,"avatar_url":"https://avatars.githubusercontent.com/u/12039018?v=3","gravatar_id":"","url":"https://api.github.com/users/jasonimercer","html_url":"https://github.com/jasonimercer","followers_url":"https://api.github.com/users/jasonimercer/followers","following_url":"https://api.github.com/users/jasonimercer/following{/other_user}","gists_url":"https://api.github.com/users/jasonimercer/gists{/gist_id}","starred_url":"https://api.github.com/users/jasonimercer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jasonimercer/subscriptions","organizations_url":"https://api.github.com/users/jasonimercer/orgs","repos_url":"https://api.github.com/users/jasonimercer/repos","events_url":"https://api.github.com/users/jasonimercer/events{/privacy}","received_events_url":"https://api.github.com/users/jasonimercer/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2015-04-30T18:18:24Z","updated_at":"2015-04-30T18:52:28Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/clearpathrobotics/navigation/pulls/5","html_url":"https://github.com/clearpathrobotics/navigation/pull/5","diff_url":"https://github.com/clearpathrobotics/navigation/pull/5.diff","patch_url":"https://github.com/clearpathrobotics/navigation/pull/5.patch"},"body":"The main changes to the Costmap2D involve the tracking of where each plugin makes changes to the master_grid in their updateCosts methods. \r\n\r\nUsing these changes we can make decisions about what needs to be inflated and what inflation data can be reused.\r\n\r\nCostmaps now have the ability to store sub-costmaps by name. This is used to make caches of inflated \r\ndata, for instance, the static map has a cache of it's inflated form. The master_grid also has a workspace sub-costmap to use as a buffer when building an inflated form from different sources (current master_grid data and cached inflated data).\r\n\r\n2 Classes were added:\r\n  AABB is an axis aligned bounding box and is used to record where layers make changes to the master_grid\r\n  LayerActions stores a sequence of actions made up of source maps, destination maps, source locations, destination locations and action types.\r\n"},"comment":{"url":"https://api.github.com/repos/clearpathrobotics/navigation/issues/comments/97924616","html_url":"https://github.com/clearpathrobotics/navigation/pull/5#issuecomment-97924616","issue_url":"https://api.github.com/repos/clearpathrobotics/navigation/issues/5","id":97924616,"user":{"login":"servos","id":2147442,"avatar_url":"https://avatars.githubusercontent.com/u/2147442?v=3","gravatar_id":"","url":"https://api.github.com/users/servos","html_url":"https://github.com/servos","followers_url":"https://api.github.com/users/servos/followers","following_url":"https://api.github.com/users/servos/following{/other_user}","gists_url":"https://api.github.com/users/servos/gists{/gist_id}","starred_url":"https://api.github.com/users/servos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/servos/subscriptions","organizations_url":"https://api.github.com/users/servos/orgs","repos_url":"https://api.github.com/users/servos/repos","events_url":"https://api.github.com/users/servos/events{/privacy}","received_events_url":"https://api.github.com/users/servos/received_events","type":"User","site_admin":false},"created_at":"2015-04-30T18:52:28Z","updated_at":"2015-04-30T18:52:28Z","body":"Yes it can eventually. We are still behind on pushing some of our other changes upstream and we need to resync our fork with upstream as well."}}