• Stars
    star
    275
  • Rank 146,203 (Top 3 %)
  • Language
    HTML
  • Created over 5 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

RVizWeb: RViz on the browser

RVizWeb - RViz, but on your browser

RVizWeb provides a convenient way of building and launching a web application with features similar to RViz.

This project makes use of the following:

Quickstart

  1. Create a directory for your catkin workspace:

     mkdir -p ~/ws/src
     cd ~/ws/src
     git clone https://github.com/osrf/rvizweb/
    
  2. You will need the LTS version of Node.js. Add the PPA so that rosdep can fetch it:

     curl -sL https://deb.nodesource.com/setup_8.x | sudo bash -
    
  3. Install ROS and system dependencies (assumes you already have ROS core):

     cd ~/ws
     rosdep install --from-paths src --ignore-src -r -y
    
  4. Build and install your workspace; this will run bower and polymer-cli to generate and install the site:

     cd ~/ws
     catkin_make install
    
  5. Launch RVizWeb:

     . ~/ws/install/setup.bash
     roslaunch rvizweb rvizweb.launch
    
  6. Open the site on the browser

    http://localhost:8001/rvizweb/www/index.html

  7. Let's try an example display to check everything is working. On the UI, click on the + and choose "Markers".

  8. Now open a new terminal and publish the following marker:

     rostopic pub /visualization_marker visualization_msgs/Marker '{header: {frame_id: "base_link"}, id: 1, type: 1, action: 0, pose: {position: {x: 0., y: 0.2, z: 0.}, orientation: {x: 0.3, y: 0.2, z: 0.52, w: 0.85}}, scale: {x: 0.2, y: 0.3, z: 0.1}, color: {r: 1., g: 0., b: 1., a: 0.3}, lifetime: 50000000000}'
    
  9. You should see a pink box show up on the site.

Viewing URDF

By default, RVizWeb will serve the share folder of all the ROS packages that are currently installed in the system to the following address by default:

http://localhost:8001/<package_name/

This means that if you have robot description files installed, all these resources will be automatically served and are ready to be used by RVizWeb.

Let's try an example using a PR2 simulated on Gazebo.

  1. Install the PR2 Gazebo package:

     sudo apt install -y ros-kinetic-pr2-gazebo
    
  2. Launch the simulation:

     roslaunch pr2_gazebo pr2_empty_world.launch
    
  3. Launch RVizWeb:

     roslaunch rvizweb rvizweb.launch
    
  4. Open the site on the browser

    http://localhost:8001/rvizweb/www/index.html

  5. On the UI, click on the + and choose "Robot model".

  6. You should see the PR2 on the browser (it will be dark due to a texture issue).

Viewing interactive markers

To view interactive markers, you will need an interactive_marker_proxy for each interactive marker server you want to run, specifying a target frame and topic.

By default, RVizWeb will run one of these proxies using /base_link as target frame and /basic_controls as the topic.

Let's see an example:

  1. Install interactive_marker_tutorials:

     sudo apt install -y ros-kinetic-interactive-marker-tutorials
    
  2. Run the sample interactive marker server:

     rosrun interactive_marker_tutorials basic_controls
    

Launch RVizWeb as described in Viewing URDF section; this time click + and choose Interactive markers. You should see markers all around the viewer; you can modify their poses with the controls around them!

The target frame and topic are configurable when launching the application, e.g.:

roslaunch rvizweb rvizweb.launch interactive_markers_target_frame:=/base_footprint interactive_markers_topic:=/advanced_controls

If you need additional proxies, you can run them on separate consoles:

rosrun interactive_marker_proxy proxy topic_ns:=/your_topic target_frame:=/your_frame

Finally, you can disable the proxy if you don't need it at all:

roslaunch rvizweb rvizweb.launch interactive_markers:=false

Viewing depth clouds

To view depth clouds, you will need web_video_server and depthcloud_encoder running.

Here's a basic example using Turtlebot:

  1. Install turtlebot_gazebo:

     sudo apt install -y ros-kinetic-turtlebot-gazebo
    
  2. Run turtlebot_world in Gazebo:

     roslaunch turtlebot_gazebo turtlebot_world.launch
    
  3. Launch RVizWeb enabling depth clouds:

     roslaunch rvizweb rvizweb.launch depth_cloud:=true
    

Open RVizWeb as described in Viewing URDF section; click + and choose Depth cloud. You should see Turtlebot's depth cloud stream in the viewer.

Under the hood, depthcloud_encoder is subscribing to depth and RGB image streams and combining them into a single topic (/depthcloud_encoded). You can change the default image stream sources like this:

    roslaunch rvizweb rvizweb.launch depth_cloud:=true depth_topic:=/your_depth_topic rgb_topic:=/your_rgb_topic

Use custom configuration on startup

To launch rvizweb with a custom configuration you will need to provide a JSON file as argument to the launchfile:

roslaunch rvizweb rvizweb.launch config_file:=/path/to/config_file.json

The easiest way of generating a configuration file is the following:

  • Launch rvizweb without any particular arguments, and open it in the browser.
  • Open the components you want to be opened on start, and edit Global options at will.
  • Click on LOAD CONFIG at the left panel to open the popup with the complete configuration file, and copy its contents to a local file.
  • Send that file as an argument when launching the application as shown above.

Notes:

  • Editing config/configuration.json won't work if the application is not reinstalled; providing a separate custom file is recommended.
  • Empty or undefined fields for globalOptions will be set to default.

RVizWeb in a Docker container

To run RVizWeb inside a container use the scripts to build and run the application:

  1. Clone the repository:

     git clone https://github.com/osrf/rvizweb ~/rvizweb
    
  2. Build the docker image:

     ~/rvizweb/docker/build.sh
    
  3. Run the container:

     ~/rvizweb/docker/run.sh
    
  4. Once inside the container, launch RVizWeb:

     roslaunch rvizweb rvizweb.launch
    

The network will be shared with the host by default.

More Repositories

1

gazebo_models

Gazebo database of SDF models. This is a predecessor to https://app.gazebosim.org
HTML
799
star
2

rocker

A tool to run docker containers with overlays and convenient options for things like GUIs etc.
Python
520
star
3

car_demo

C++
496
star
4

rosbook

Example code to accompany the book Programming Robots with ROS
Python
473
star
5

docker_images

A repository to hold definitions of docker images maintained by OSRF
Dockerfile
457
star
6

vrx

Virtual RobotX (VRX) resources.
C++
381
star
7

subt

This repostory contains software for the virtual track of the DARPA SubT Challenge. Within this repository you will find Gazebo simulation assets, ROS interfaces, support scripts and plugins, and documentation needed to compete in the SubT Virtual Challenge.
C++
288
star
8

icra2023_ros2_gz_tutorial

ICRA 2023 tutorial on ROS 2 and the new Gazebo (MT28, ICC Capital Suite 14)
Dockerfile
225
star
9

subt_hello_world

Hello World for DARPA SubT Challenge
C++
199
star
10

ovc

the Open Vision Computer
C
196
star
11

gazebo_tutorials

Tutorials for gazebo
C++
141
star
12

ros2multirobotbook

TypeScript
110
star
13

rmf_core

Provides the centralized functions of RMF: scheduling, etc.
C++
102
star
14

tensorflow_object_detector

Tensorflow Object Detector
Jupyter Notebook
97
star
15

autodock

ROS packages for automatic docking
Python
74
star
16

rmf_demos

Demos to showcase the capabilities of RMF
C++
70
star
17

osrf_wiki

69
star
18

mbzirc

Simulator for the MBZIRC Maritime Grand Challenge
C++
64
star
19

gzweb

Web client for Gazebo classic simulation
JavaScript
62
star
20

citysim

Example city simulation for autonomous vehicles in Gazebo Classic.
HTML
61
star
21

ros2_serial_example

C
59
star
22

rosbag_direct_write

C++ API for (potentially) faster writing of rosbag's using O_DIRECT with memory alignment.
C++
59
star
23

lrauv

Packages for simulating the Tethys-class Long-Range AUV (LRAUV) from the Monterey Bay Aquarium Research Institute (MBARI).
C++
54
star
24

homebrew-simulation

Homebrew tap for osrf simulation software
Ruby
49
star
25

vehicle_gateway

A pluginlib-based C++ library that interfaces with several vehicle SDK's
C++
42
star
26

vorc

Virtual Ocean Robot Challenge (VORC) resources
Python
39
star
27

ros_dds

(Deprecated) Prototype system using DDS as the middleware for a ROS like API.
C++
37
star
28

drone_demo

C++
36
star
29

osrf_testing_tools_cpp

Common testing tools for C++ which are used for testing in various OSRF projects.
C++
32
star
30

baxter_demos

Demos showing the functionality of the Baxter Research Robot.
Python
29
star
31

gazebo_osm

OpenStreetMap support for Gazebo
Python
28
star
32

dynamic_message_introspection

C++
27
star
33

uctf

Unmanned Capture the Flag (U-CTF) project.
Python
24
star
34

ros2_raw_dds_example

A project showing how to connect a raw DDS program to a ROS 2 graph
C++
23
star
35

yolo_object_detector

Object detector in ROS using deep learning in Darknet - Yolo
C
22
star
36

TSC-RMW-Reports

ROS 2 Middleware evaluation reports for each ROS release
Jupyter Notebook
22
star
37

nodelet_rosbag

C++
20
star
38

robocup_3d_simulation

A repository for Gazebo and ROS based robocup_3d_simulation.
C++
19
star
39

uav_testing

A collection of worlds for UAV testing
CMake
18
star
40

mbari_wec_gz

Simulation of wave energy harvesting buoy
C++
16
star
41

bzip2_cmake

libbz2 built with cmake
C
16
star
42

ros2_test_cases

Tracking of tests to be performed on a ROS 2 release
16
star
43

rviz_aerial_plugins

C++
15
star
44

www.ros.org

Old design work for new www.ros.org website
PHP
15
star
45

drcsim

Repository for the DRC project.
C++
14
star
46

multiarch-docker-image-generation

Shell
13
star
47

mbari_wec

Entrypoint to wave harvesting buoy
Dockerfile
13
star
48

docker_templates

EmberScript
13
star
49

negotiated

C++
12
star
50

robocup3ds

Gazebo support for the RoboCup 3D simulation league.
C++
11
star
51

servicesim

Service Robot Simulator
HTML
11
star
52

nexus

Core packages of Nexus
C++
10
star
53

ariac-docker

Containerization of ARIAC competition server and competitors' code. See https://bitbucket.org/osrf/ariac/wiki/Home
Shell
10
star
54

srcsim

Space Robotics Challenge
C++
9
star
55

wandrr

Firmware and electronics for the WANDRR robot
C
8
star
56

collaboration

Repo for collaborating on documents
Jupyter Notebook
8
star
57

capabilities

Implements the concept of capabilities as part of the robots-in-concert system.
Python
8
star
58

mir100-client

Generated from mir100 rest api pdf
Python
7
star
59

osrf_pycommon

Commonly needed Python modules, used by Python software developed at OSRF
Python
7
star
60

rosprofiler

The rosprofiler package
Python
7
star
61

system_data_recorder

A rosbag2 recorder node that backs up split files to an external location during recording
C++
7
star
62

py3-ready

Tools for checking if code is ready for python3
Python
7
star
63

rqt_graphprofiler

An experimental visualization system for anonymous publish subscribe architectures.
Python
7
star
64

rmf_schedule_visualizer

Visualizer for trajectories in the rmf schedule database
C++
6
star
65

ros2-porting-heuristics

Scripts to estimate the amount of work needed to port a package to ROS 2.
Python
6
star
66

osrf_hw

HTML
6
star
67

disc_zmq

Simple library (with implementations in languages of interest) to do discovery on top of zeromq messaging. The intent is that this library would be incorporated into other projects, where things like message serialization would be added.
C++
6
star
68

vrx-docker

Containerization of VRX competition server and competitors' code. See https://bitbucket.org/osrf/vrx/wiki/Home
Shell
5
star
69

auto-abi-checker

Tool designed to facilitate the run the great ABI compliance checker by supporting easy inputs and no configuration files
C++
5
star
70

ros2_ign

Integration between ROS 2 and Ignition
C++
5
star
71

gsoc-ros-neural

Repository for the GSOC 2015 Neural Interfaces for ROS project, sponsored by OSRF.
Python
5
star
72

collision_map_creator_plugin

HTML
4
star
73

infrastructure

Repository for tracking issues across Open Robotics infrastructure
4
star
74

slow_bldc

C
4
star
75

mesh_to_sdf

Shell
4
star
76

gazebo-doc-index

A platform that brings together all of Gazebo's learning resources in one place, in an organised fashion, helping beginners and professionals to find the right help in terms of documentation content and resources quickly.
JavaScript
4
star
77

zenoh_evaluation

Zenoh evaluation / Bandwidth test application / Zenoh version
C++
3
star
78

gazebojs

C++
3
star
79

map_transformer

Transform points from one map to another to account for slight differences in maps
C++
3
star
80

ubuntu_armhf-docker

deprecated see https://github.com/osrf/multiarch-docker-image-generation
Shell
3
star
81

mininet_ros

Dockerfile
3
star
82

collision-benchmark

Benchmark tests for collision checking and contact
C++
3
star
83

cloudsim

Shell
3
star
84

oculussdk

C++
2
star
85

open_survey_data

A collection of survey data from the community.
2
star
86

bag_merger

Tool for merging multiple rosbag2 bags into one
C++
2
star
87

romi-js-core-interfaces

Python
2
star
88

vrx-events

Repository containing team submissions for VRX events.
Dockerfile
2
star
89

rosbag_ndk_player

C++
2
star
90

cmbml

C++
2
star
91

iron_irwini_discovery_modes_prototype

Shell
2
star
92

watchprocess

A tool for recording information about executed processes.
Python
2
star
93

buoy_examples

Control examples for wave energy harvesting buoy
C++
2
star
94

handsim

HAPTIX Simulation Utlities
C++
2
star
95

magnum_playground

A place to play with the Magnum rendering engine.
2
star
96

rba_scripts

scripts to help build rosbag for android
Shell
2
star
97

redf

Rust
2
star
98

buildfarm-tools

Ruby
2
star
99

createrepo-agent

Rapidly and repeatedly generate RPM repository metadata
C
2
star
100

ariac-gazebo_ros_pkgs

Fork of https://github.com/ros-simulation/gazebo_ros_pkgs with custom restrictions on which topics can communicate.
C++
2
star