{"action":"closed","issue":{"url":"https://api.github.com/repos/RobotLocomotion/drake/issues/3543","repository_url":"https://api.github.com/repos/RobotLocomotion/drake","labels_url":"https://api.github.com/repos/RobotLocomotion/drake/issues/3543/labels{/name}","comments_url":"https://api.github.com/repos/RobotLocomotion/drake/issues/3543/comments","events_url":"https://api.github.com/repos/RobotLocomotion/drake/issues/3543/events","html_url":"https://github.com/RobotLocomotion/drake/issues/3543","id":178404909,"number":3543,"title":"Drake's IIWA Model Cannot be Loaded into Gazebo","user":{"login":"liangfok","id":1388098,"avatar_url":"https://avatars.githubusercontent.com/u/1388098?v=3","gravatar_id":"","url":"https://api.github.com/users/liangfok","html_url":"https://github.com/liangfok","followers_url":"https://api.github.com/users/liangfok/followers","following_url":"https://api.github.com/users/liangfok/following{/other_user}","gists_url":"https://api.github.com/users/liangfok/gists{/gist_id}","starred_url":"https://api.github.com/users/liangfok/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/liangfok/subscriptions","organizations_url":"https://api.github.com/users/liangfok/orgs","repos_url":"https://api.github.com/users/liangfok/repos","events_url":"https://api.github.com/users/liangfok/events{/privacy}","received_events_url":"https://api.github.com/users/liangfok/received_events","type":"User","site_admin":false},"labels":[{"id":410893579,"url":"https://api.github.com/repos/RobotLocomotion/drake/labels/configuration:%20ros","name":"configuration: ros","color":"fbca04","default":false},{"id":366762542,"url":"https://api.github.com/repos/RobotLocomotion/drake/labels/priority:%20medium","name":"priority: medium","color":"e99695","default":false},{"id":333413819,"url":"https://api.github.com/repos/RobotLocomotion/drake/labels/team:%20manipulation","name":"team: manipulation","color":"0052cc","default":false},{"id":77797851,"url":"https://api.github.com/repos/RobotLocomotion/drake/labels/type:%20feature%20request","name":"type: feature request","color":"0e8a16","default":false}],"state":"closed","locked":false,"assignee":{"login":"liangfok","id":1388098,"avatar_url":"https://avatars.githubusercontent.com/u/1388098?v=3","gravatar_id":"","url":"https://api.github.com/users/liangfok","html_url":"https://github.com/liangfok","followers_url":"https://api.github.com/users/liangfok/followers","following_url":"https://api.github.com/users/liangfok/following{/other_user}","gists_url":"https://api.github.com/users/liangfok/gists{/gist_id}","starred_url":"https://api.github.com/users/liangfok/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/liangfok/subscriptions","organizations_url":"https://api.github.com/users/liangfok/orgs","repos_url":"https://api.github.com/users/liangfok/repos","events_url":"https://api.github.com/users/liangfok/events{/privacy}","received_events_url":"https://api.github.com/users/liangfok/received_events","type":"User","site_admin":false},"assignees":[{"login":"liangfok","id":1388098,"avatar_url":"https://avatars.githubusercontent.com/u/1388098?v=3","gravatar_id":"","url":"https://api.github.com/users/liangfok","html_url":"https://github.com/liangfok","followers_url":"https://api.github.com/users/liangfok/followers","following_url":"https://api.github.com/users/liangfok/following{/other_user}","gists_url":"https://api.github.com/users/liangfok/gists{/gist_id}","starred_url":"https://api.github.com/users/liangfok/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/liangfok/subscriptions","organizations_url":"https://api.github.com/users/liangfok/orgs","repos_url":"https://api.github.com/users/liangfok/repos","events_url":"https://api.github.com/users/liangfok/events{/privacy}","received_events_url":"https://api.github.com/users/liangfok/received_events","type":"User","site_admin":false},{"login":"Lucy-tri","id":17619120,"avatar_url":"https://avatars.githubusercontent.com/u/17619120?v=3","gravatar_id":"","url":"https://api.github.com/users/Lucy-tri","html_url":"https://github.com/Lucy-tri","followers_url":"https://api.github.com/users/Lucy-tri/followers","following_url":"https://api.github.com/users/Lucy-tri/following{/other_user}","gists_url":"https://api.github.com/users/Lucy-tri/gists{/gist_id}","starred_url":"https://api.github.com/users/Lucy-tri/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Lucy-tri/subscriptions","organizations_url":"https://api.github.com/users/Lucy-tri/orgs","repos_url":"https://api.github.com/users/Lucy-tri/repos","events_url":"https://api.github.com/users/Lucy-tri/events{/privacy}","received_events_url":"https://api.github.com/users/Lucy-tri/received_events","type":"User","site_admin":false}],"milestone":null,"comments":6,"created_at":"2016-09-21T16:56:47Z","updated_at":"2016-12-22T18:13:22Z","closed_at":"2016-12-22T18:13:21Z","body":"# Problem Definition\n\n[Drake's IIWA model](https://github.com/RobotLocomotion/drake/blob/a2cb01650579aa0e1ce4a4b19743fa641d7cdc10/drake/examples/kuka_iiwa_arm/urdf/iiwa14.urdf) currently references `.obj` (i.e., [Wavefront](https://en.wikipedia.org/wiki/Wavefront_.obj_file)) files because its visualizer [only supports this format](https://github.com/RobotLocomotion/drake/blob/5a7f663a2b9466c2b7225ad2ad1ebd0751aa5cac/drake/systems/plants/shapes/Geometry.cpp#L191). Unfortunately, Gazebo does _not_ support `.obj` files and instead supports `.dae` (i.e., [COLLADA](https://en.wikipedia.org/wiki/COLLADA)) files. Because of this, we are unable to load Drake's IIWA model into Gazebo. Being able to load the same model into Gazebo is beneficial since it will enable us to do comparisons and provide an alternative framework within which to debug and improve the model.\n# Proposed Solutions\n\nThe following options are sorted from least effort the most effort.\n## Option 0\n\nAutomatically convert `.obj` to `.dae` to the other file format on-demand. This can be done automatically by the build system. It could also be done manually by running a script. Basically, the idea is to maintain a single \"master\" version from which other versions using different file formats can be derived.\n## Option 1\n\nUse [xacro](http://wiki.ros.org/xacro) to generate two URDFs. One will be called `iiwa14_drake.urdf`, which references `.obj` files, and other will be called `iiwa14_gazebo.urdf`, which references `.dae` files. Since the same code generator is used to create both files, there shouldn't be a problem keeping the two syncronized.\n## Option 2\n\nConvert `iiwa14.urdf` to [SDF](http://sdformat.com/) and use embedded ruby to generate a version for Gazebo and another version for Drake as described here: http://answers.gazebosim.org/question/14063/how-can-i-declare-a-variable-in-modelsdf-file/.\n## Options 3\n\nModify Drake to support `.dae` files or Gazebo to support `.obj` files. I'm unsure how much work and time this will take.\n# References\n\nFor reference, see: https://github.com/robotlocomotion/drake/pull/3507#issuecomment-248637867\n"}}
{"actor":{"display_login":"jwnimmer-tri"}}