{"id":19855161,"url":"https://github.com/leggedrobotics/urdf2robcogen","last_synced_at":"2025-05-02T01:30:41.739Z","repository":{"id":83356561,"uuid":"159849145","full_name":"leggedrobotics/urdf2robcogen","owner":"leggedrobotics","description":"A tool that translates a robot URDF description into the kindsl format that can be processed by RobCoGen.","archived":false,"fork":false,"pushed_at":"2020-10-01T14:03:35.000Z","size":34,"stargazers_count":32,"open_issues_count":2,"forks_count":10,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-04-06T20:46:28.887Z","etag":null,"topics":["kindsl","rigid-body-dynamics","robcogen","ros","urdf"],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/leggedrobotics.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2018-11-30T16:21:38.000Z","updated_at":"2025-03-19T08:16:24.000Z","dependencies_parsed_at":"2023-03-12T18:07:43.806Z","dependency_job_id":null,"html_url":"https://github.com/leggedrobotics/urdf2robcogen","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leggedrobotics%2Furdf2robcogen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leggedrobotics%2Furdf2robcogen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leggedrobotics%2Furdf2robcogen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leggedrobotics%2Furdf2robcogen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leggedrobotics","download_url":"https://codeload.github.com/leggedrobotics/urdf2robcogen/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251969266,"owners_count":21673183,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["kindsl","rigid-body-dynamics","robcogen","ros","urdf"],"created_at":"2024-11-12T14:11:52.084Z","updated_at":"2025-05-02T01:30:40.216Z","avatar_url":"https://github.com/leggedrobotics.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# URDF2ROBCOGEN {#mainpage}\n\n**Authors**: Jan Carius (jcarius@ethz.ch) and Ruben Grandia (rgrandia@ethz.ch), based on an earlier version by Diego Pardo (depardo@ethz.ch)\u003cbr\u003e\n\n**Maintainers**: Jan Carius (jcarius@ethz.ch) and Ruben Grandia (rgrandia@ethz.ch)\n\n## What is this repository for?\n\nThis tool generates the [RobCoGen](https://robcogenteam.bitbucket.io/) description files (.kindsl \u0026 .dtdsl) from a [URDF](http://wiki.ros.org/urdf) description format.\n\n## Building\n[![Build Status](https://ci.leggedrobotics.com/buildStatus/icon?job=github_leggedrobotics/urdf2robcogen/master)](https://ci.leggedrobotics.com/job/github_leggedrobotics/job/urdf2robcogen/job/master/)\n\n**Dependencies**\n\n* [Eigen](http://eigen.tuxfamily.org)\n* [Boost](https://www.boost.org/)\n* [ros::urdf](http://wiki.ros.org/urdf)\n* [kindr](https://github.com/ethz-asl/kindr) (a kinematics library for robotics)\n\n**Build the executable**\n\nWe use [catkin](http://wiki.ros.org/catkin) as a build system.\nTo build the bare version use\n```bash\ncatkin build urdf2robcogen\n```\n\n**Build the documentation**\n\nWe use `rosdoc_lite` with doxygen backend to build documentation for this catkin package.\n```base\nrosdoc_lite /path/to/package\n```\n\n\n## Usage\n\nTwo modes of operation are possible.\n\n### A) Run as standalone application (plain URDF file)\nYou must have a URDF description of your robot as a plaintext xml file.\nThis should not contain [xacro](http://wiki.ros.org/xacro) macros, i.e., you must invoke the xacro command beforehand to produce the URDF file.\n\nTo generate the robcogen description, execute\n```bash\n./urdf2robcogen_script RobotName /path/to/description.urdf\n```\n\nThe generated files are written into the directory where the executable was executed (i.e., the output of `pwd`).\n\n### B) Using a launch file (xacro urdf file)\nThe urdf2robcogen.launch file converts a robot description on the parameter server.\n\n```bash\nroslaunch urdf2robcogen urdf2robcogen.launch robot_name:=myRobot description_name:=robot_description\n```\n\nSee xacro_example.launch to see how to integrate this with generation of the robot description.\n\nAs a default, output files are placed in the /generated folder of this package.\n\n## Main differences between URDF and RobCoGen/Kindsl ##\n\n+ URDF:\n  * Frame rotations are extrinsic (rotations about a fixed frame)\n  * The axis of rotation of the joints is set with the vector property 'axis' of the joint element\n  * There is no concept of *Frame*\n  * Artificial links are used to define frames (a.k.a., link\\_frames), they may or may not have inertia\n  * Artificial Joints (usually fixed) are used to connect link\\_frames to the real links\n  * It is common to find URDF with 'virtual' links for compatibility with other tools\n  * Virtual links might have incomplete information (i.e., inertial parameters)\n  * The inertial parameters are expressed w.r.t a frame at the CoM of the link\n\n\n+ RobCoGen:\n  * Frame rotations are intrinsic (rotations about the current frame)\n  * Frame rotation order is x,y,z\n  * The axis of rotation of the joint is always Z\n  * Links always carry inertia and must have a parent joint that is moving (i.e., not fixed)\n  * Additional frames can be defined at any link\n  * Inertial parameters are expressed w.r.t. the link frame (i.e., the corresponding joint frame)\n  * It includes a special feature to set a different frame for expressing the inertial parameters (ref\\_frame)\n\n\n## Caveats\n* Double-check the ordering of the joints/links in the generated files. They may differ from what you expect.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleggedrobotics%2Furdf2robcogen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleggedrobotics%2Furdf2robcogen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleggedrobotics%2Furdf2robcogen/lists"}