Visualize URDF(Unified Robot Description Format) file.
urdf-viz
is written in Rust-lang.
cargo
If you are using rust-lang already and cargo
is installed, you can install by cargo install
.
bash
$ cargo install urdf-viz
cargo
bash
$ curl https://sh.rustup.rs -sSf | sh
and follow the instruction of the installer.
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
You need freetype.lib in your PATH, which is required by freetype-sys
.
You can find binaries here
Install freetype by brew.
$ brew install freetype
If you don't want to install rust
and cargo
, you can find
binary releases of urdf-viz
for Ubuntu16.04/14.04 64bit, Windows, MacOS here.
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
.
bash
$ 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
.
bash
$ urdf-viz XACRO_FILE.urdf.xacro
For other options, please read the output of -h
option.
bash
$ urdf-viz -h
If there are no "package://" in mesh tag, and don't use xacro you can skip install of ROS.
In the GUI, you can do some operations with keyboard and mouse.
Up
/Down
keyCtrl
+ Drag to move the angle of a joint[
and ]
Shift
+ Drag to use inverse kinematics(Y and Z axis)Shift
+ Ctrl
+ Drag to use inverse kinematics(X and Z axis),
or .
r
key to set random joints
urdf-viz
is strongly depend on kiss3d
, which is super easy to use, great 3D graphic engine.urdf-rs
.kiss3d
supports .obj
files natively, but urdf contains dae
or stl
files. These files are converted to kiss3d mesh model by assim-rs
You can disable assimp by disable assimp
feature which is enabled in default.
It can handle .obj
files even if you disable assimp
.
assimp
works on Linux/Windows/MacOS now, we don't need this now.
$ cargo build --no-default-features