Urdf Viz

visualize URDF/XACRO file, URDF Viewer works on Windows/MacOS/Linux
Alternatives To Urdf Viz
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
a day ago117mpl-2.0C++
The Time Series Visualization Tool that you deserve.
Webviz1,65023a year ago1April 03, 2019119apache-2.0JavaScript
web-based visualization libraries
Studio1,470311 hours ago116September 06, 202337mpl-2.0TypeScript
Robotics visualization and debugging
4 months agomitCMake
🔥ROS(c++)机器人操作系统 学习(写于2020年夏)
Urdf Viz310215 days ago71November 17, 20228apache-2.0Rust
visualize URDF/XACRO file, URDF Viewer works on Windows/MacOS/Linux
3 days ago34C++
jsk visualization ros packages
2 years ago6bsd-3-clauseC++
Visualization of Motions for Legged Robots in ros-rviz
5 years ago14gpl-3.0C++
ROS wrapper for dso
10 months ago5mitC++
ROS wrapper for OpenPose
8 months ago3mitMakefile
This is a ROS workspace that creates a trajectory for a UAV to follow passing through a set of given waypoints and avoiding a set of given cylindrical obstacles, using a path planning algorithm.
Alternatives To Urdf Viz
Select To Compare

Alternative Project Comparisons


Build Status crates.io docs discord

Visualize URDF(Unified Robot Description Format) file. urdf-viz is written in Rust-lang.


Install with cargo

If you are using rust-lang already and cargo is installed, you can install by cargo install.

cargo install urdf-viz

If you don't use mesh other than .obj, .stl, and .dae files, you can skip install of assimp by disabling the assimp feature like below.

cargo install urdf-viz --no-default-features

Note: When the assimp feature is disabled, materials are not fully supported yet.

Pre-requirements for build


You need cmake to use assimp (mesh loader). It can be skipped if you use --no-default-features, but it will make it fail to show mesh files other than .obj, .stl, and .dae.

On Linux

If you have not installed ROS, you may need cmake, xorg-dev, glu to compile assimp-sys and glfw-sys.

sudo apt-get install cmake xorg-dev libglu1-mesa-dev

On Windows

You need freetype.lib in your PATH, which is required by freetype-sys. You can find binaries here

On MacOS

Install freetype by brew.

brew install freetype

Download binary

You can download prebuilt binaries from the release page. Prebuilt binaries are available for macOS, Linux, and Windows.

Install via Homebrew

You can install urdf-viz using Homebrew tap on macOS and Linux:

brew install openrr/tap/urdf-viz

How to use

urdf-viz command will be installed. It needs rosrun and rospack to resolve package:// in <mesh> tag, and it uses xacro to convert .xacro file into urdf file. It means you need $ source ~/catkin_ws/devel/setup.bash or something before using urdf-viz.

urdf-viz URDF_FILE.urdf

It is possible to use xacro file directly. It will be converted by rosrun xacro xacro inside of urdf-viz.

urdf-viz XACRO_FILE.urdf.xacro

If your xacro file has some arguments, you can pass them by --xacro-args option.

urdf-viz XACRO_FILE.urdf.xacro --xacro-args arg1=value arg2=value

For other options, please read the output of -h option.

urdf-viz -h

If there are no "package://" in mesh tag, and don't use xacro you can skip install of ROS.

If there are "package://" in mesh tag, but path or URL to package is known and don't use xacro you can also skip install of ROS by replacing package with path or URL.

GUI Usage

In the GUI, you can do some operations with keyboard and mouse.

  • l key to reload the urdf from file
  • c key to toggle collision model or visual mode
  • Move a joint
    • set the angle of a joint by Up/Down key
    • Ctrl + Drag to move the angle of a joint
    • change the joint to be moved by o ([) and p (])
  • Inverse kinematics (only positions)
    • Shift + Drag to use inverse kinematics(Y and Z axis)
    • Shift + Ctrl + Drag to use inverse kinematics(X and Z axis)
    • change the move target for inverse kinematics by , or .
  • r key to set random joints
  • z key to reset joint positions and origin
  • Move view point
    • Mouse Right Drag to translate view camera position
    • Mouse Left Drag to look around
    • Scroll to zoom in/out

Web I/O interface

You can set/get the joint angles using http/JSON. Default port number is 7777. You can change it by -p option. (jq is used for JSON formatter in the following examples)

Set joint angles

POST the JSON data, which format is like below. You have to specify the names of joints and positions (angles). The length of names and positions have to be the same. You don't need write all joint names, it means you can specify a part of the joints.

  "names": ["joint_name1", "joint_name2"],
  "positions": [0.5, -0.1]

You can try it using curl.

$ curl -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{"names": ["r_shoulder_yaw", "r_shoulder_pitch"], "positions": [0.8, -0.8]}' | jq
  "is_ok": true,
  "reason": ""

Get joint angles as JSON

The result JSON format of getting the joint angles is the same as the Set method.

$ curl | jq
  "names": [
  "positions": [

Set Robot Origin

$ curl -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{"position":[0.2,0.0,0.0],"quaternion":[0.0,0.0,0.0,1.0]}'

The order of the quaternion elements is w, i, j, k.

Get Robot Origin

$ curl

Get URDF Text



sawyer_1.png sawyer_2.png

nextage_1.png nextage_2.png

hsr_1.png hsr_2.png

ubr1_1.png ubr1_2.png

pepper_1.png pepper_2.png

pr2_1.png pr2_2.png

thormang3_1.png thormang3_2.png


  • kiss3d: urdf-viz is strongly depend on kiss3d, which is super easy to use, great 3D graphic engine.
  • nalgebra: linear algebra library.
  • k: kinematics library which is based on nalgebra. It can load URDF files using urdf-rs.
  • assimp-rs: assimp rust interface. kiss3d supports .obj files natively, but urdf contains dae or stl files. These files are converted to kiss3d mesh model by assimp-rs
  • urdf-rs: URDF file loader.
  • structopt: super easy command line arguments parser.

OpenRR Community

Here is a discord server for OpenRR users and developers.

Popular Visualization Projects
Popular Ros Projects
Popular User Interface Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Rust Lang