Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Plotjuggler | 3,631 | a day ago | 117 | mpl-2.0 | C++ | |||||
The Time Series Visualization Tool that you deserve. | ||||||||||
Webviz | 1,650 | 2 | 3 | a year ago | 1 | April 03, 2019 | 119 | apache-2.0 | JavaScript | |
web-based visualization libraries | ||||||||||
Studio | 1,470 | 3 | 11 hours ago | 116 | September 06, 2023 | 37 | mpl-2.0 | TypeScript | ||
Robotics visualization and debugging | ||||||||||
Ros | 325 | 4 months ago | mit | CMake | ||||||
🔥ROS(c++)机器人操作系统 学习(写于2020年夏) | ||||||||||
Urdf Viz | 310 | 2 | 15 days ago | 71 | November 17, 2022 | 8 | apache-2.0 | Rust | ||
visualize URDF/XACRO file, URDF Viewer works on Windows/MacOS/Linux | ||||||||||
Jsk_visualization | 283 | 3 days ago | 34 | C++ | ||||||
jsk visualization ros packages | ||||||||||
Xpp | 222 | 2 years ago | 6 | bsd-3-clause | C++ | |||||
Visualization of Motions for Legged Robots in ros-rviz | ||||||||||
Dso_ros | 218 | 5 years ago | 14 | gpl-3.0 | C++ | |||||
ROS wrapper for dso | ||||||||||
Ros_openpose | 94 | 10 months ago | 5 | mit | C++ | |||||
ROS wrapper for OpenPose | ||||||||||
Obstacle_avoidance_for_uav | 83 | 8 months ago | 3 | mit | Makefile | |||||
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. |
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
.
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.
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
.
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
You can download prebuilt binaries from the release page. Prebuilt binaries are available for macOS, Linux, and Windows.
You can install urdf-viz using Homebrew tap on macOS and Linux:
brew install openrr/tap/urdf-viz
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.
In the GUI, you can do some operations with keyboard and mouse.
l
key to reload the urdf from filec
key to toggle collision model or visual modeUp
/Down
keyCtrl
+ Drag to move the angle of a jointo
([
) and p
(]
)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 jointsz
key to reset joint positions and originYou 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)
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]}' http://127.0.0.1:7777/set_joint_positions | jq
{
"is_ok": true,
"reason": ""
}
The result JSON format of getting the joint angles is the same as the Set method.
$ curl http://127.0.0.1:7777/get_joint_positions | jq
{
"names": [
"r_shoulder_yaw",
"r_shoulder_pitch",
"r_shoulder_roll",
"r_elbow_pitch",
"r_wrist_yaw",
"r_wrist_pitch",
"l_shoulder_yaw",
"l_shoulder_pitch",
"l_shoulder_roll",
"l_elbow_pitch",
"l_wrist_yaw",
"l_wrist_pitch"
],
"positions": [
0.8,
-0.8,
-1.3447506,
-1.6683152,
-1.786362,
-1.0689334,
0.11638665,
-0.5987091,
0.7868867,
-0.027412653,
0.019940138,
-0.6975361
]
}
$ 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]}' http://127.0.0.1:7777/set_robot_origin
{"is_ok":true,"reason":""}
The order of the quaternion elements is w, i, j, k
.
$ curl http://127.0.0.1:7777/get_robot_origin
{"position":[0.2,0.0,0.0],"quaternion":[1.0,0.0,0.0,0.0]}
curl http://127.0.0.1:7777/get_urdf_text
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 assimp-rs
OpenRR
CommunityHere is a discord server for OpenRR
users and developers.