Configuration (config.json)

Specific entries

Below are the global configuration entries. You might also want to check out the following documentation for more specific entries:

config.json entries

Here is an example of complete config.json file, with details below:

// config.json general options
// for urdf or mujoco specific options, see documentation
{
    // Onshape assembly URL
    "url": "https://cad.onshape.com/documents/11a7f59e37f711d732274fca/w/7807518dc67487ad405722c8/e/5233c6445c575366a6cc0d50",
    // Output format: urdf or mujoco (required)
    "output_format": "urdf",
    // Output filename (default: "robot")
    // Extension (.urdf, .xml) will be added automatically
    "output_filename": "robot",
    // Assets directory (default: "assets")
    "assets_dir": "assets",

    // If you don't use "url", you can alternatively specify the following
    // The Onshape document id to parse, see "getting started" (optional)
    "document_id": "document-id",
    // The document version id (optional)
    "version_id": "version-id",
    // The workspace id (optional)
    "workspace_id": "workspace-id",
    // Element id (optional)
    "element_id": "element-id",
    // Assembly name to use in the document (optional)
    "assembly_name": "robot",

    // Onshape configuration to use (default: "default")
    "configuration": "Configuration=BigFoot;RodLength=50mm",
    // Robot name (default: "onshape")
    "robot_name": "robot",

    // Ignore limits (default: false)
    "ignore_limits": true,

    // Parts to ignore (default: {})
    "ignore": {
        // Ignore visual for visual
        "part1": "visual",
        "screw*": "visual",

        // Ignore everything expect "leg" for collision
        "*" : "collision"
        "!leg": "collision"
    },

    // Whether to keep frame links (default: false)
    "draw_frames": true,
    // Override the color of all links (default: None)
    "color": [0.5, 0.1, 0.1],

    // Disable dynamics retrieval (default: false)
    "no_dynamics": true,

    // Post import commands (default: [])
    "post_import_commands" [
        "echo 'Import done'",
        "echo 'Do something else'"
    ],

    // Custom processors
    "processors": [
        "my_project.my_custom_processor:MyCustomProcessor"
    ]

    // More options available in specific exporters (URDF, SDF, MuJoCo)
    // More options available in processors
}

Note

Comments are supported in the config.json file.

Note

Since 1.0.0, all configuration entries are now snake case. For backward compatibility reasons, the old camel case entries are still supported. (for example, document_id and documentId are equivalent).

url (required)

The Onshape URL of the assembly to be exported. Be sure you are on the correct tab when copying the URL.

output_format (required)

required

This should be either urdf or mujoco to specify which output format is wanted for robot description created by the export.

output_filename (default: robot)

This is the name of the output file without extension. By default “robot” (for example: robot.urdf, robot.sdf or robot.xml).

assets_dir (default: “assets”)

This is the directory where the assets (like meshes) will be stored.

assembly_name (optional)

This can be used to specify the name of the assembly (in the Onshape document) to be used for robot export.

If this is not provided, onshape-to-robot will list the assemblies. If more than one assembly is found, an error will be raised.

document_id (optional)

If you don’t specify the URL, this is the onshape ID of the document to be imported. It can be found in the Onshape URL, just after document/.

https://cad.onshape.com/documents/XXXXXXXXX/w/YYYYYYYY/e/ZZZZZZZZ
                                  ^^^^^^^^^
                            This is the document id

version_id (optional)

If you don’t specify the URL, this argument can be used to use a specific version of the document instead of the last one. The version ID can be found in URL, after the /v/ part when selecting a specific version in the tree.

If it is not specified, the workspace will be retrieved and the live version will be used.

workspace_id (optional)

If you don’t specify the URL, this argument can be used to use a specific workspace of the document. This can be used for specific branches ofr your robot without making a version. The workspace ID can be found in URL, after the /w/ part when selecting a specific version in the tree.

element_id (optional)

If you don’t specify the URL, this argument can be used to use a specific element of the document. The element ID can be found in URL, after the /e/ part when selecting a specific version in the tree.

configuration (default: “default”)

This is the robot configuration string that will be passed to Onshape. Lists, booleans and quantities are allowed. For example:

_images/configuration.png

Should be written as the following:

Configuration=Long;RemovePart=true;Length=30mm

Note

Alternatively, you can specify the configuration as a dictionary:

{
    // ...
    "configuration": {
        "Configuration": "Long",
        "RemovePart": true,
        "Length": "30mm"
    }
}

robot_name (default: “dirname”)

Specifies the robot name. This value is typically present in the header of the exported files.

If it is not specified, the directory name will be used.

ignore_limits (default: false)

If set to true, the joint limits coming from Onshape will be ignored during export.

ignore (default: {})

This can be a list of parts that you want to be ignored during the export.

Alternatively, you can use a dict, where the values are either all, visual or collision. The rules will apply in order of appearance.

You can use wildcards * to match multiple parts.

You can prefix the part name with ! to exclude it from the rule. For example, the following will ignore all parts for visual, except the leg part, turning the ignore list to a whitelist:

{
    // Ignore everything from visual
    "*": "collision",
    // Except the leg part
    "!leg": "collision"
}

Note

The dynamics of the part will not be ignored, but the visual and collision aspect will.

draw_frames (default: false)

When , the part that is used for positionning the frame is by default excluded from the output description (a dummy link is kept instead). Passing this option to true will keep it instead.

no_dynamics (default: false)

This flag can be set if there is no dynamics. In that case all masses and inertia will be set to 0. In pyBullet, this will result in static object (think of some environment for example).

color (default: None)

Can override the color for parts (should be an array: [r, g, b] with numbers from 0 to 1)

post_import_commands (default: [])

This is an array of commands that will be executed after the import is done. It can be used to be sure that some processing scripts are run everytime you run onshape-to-robot.

processors (default: None)

See custom processors for more information.