• Stars
    star
    284
  • Rank 145,616 (Top 3 %)
  • Language
    HTML
  • Created about 6 years ago
  • Updated about 2 years 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
843
star
2

rocker

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

car_demo

C++
496
star
4

rosbook

Example code to accompany the book Programming Robots with ROS
Python
478
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++
428
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++
303
star
8

icra2023_ros2_gz_tutorial

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

subt_hello_world

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

ovc

the Open Vision Computer
C
199
star
11

gazebo_tutorials

Tutorials for gazebo
C++
145
star
12

ros2multirobotbook

TypeScript
122
star
13

rmf_core

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

tensorflow_object_detector

Tensorflow Object Detector
Jupyter Notebook
98
star
15

autodock

ROS packages for automatic docking
Python
82
star
16

ros2_serial_example

C
71
star
17

mbzirc

Simulator for the MBZIRC Maritime Grand Challenge
C++
70
star
18

rmf_demos

Demos to showcase the capabilities of RMF
C++
69
star
19

osrf_wiki

69
star
20

citysim

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

gzweb

Web client for Gazebo classic simulation
JavaScript
62
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++
59
star
24

vehicle_gateway

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

homebrew-simulation

Homebrew tap for osrf simulation software
Ruby
49
star
26

vorc

Virtual Ocean Robot Challenge (VORC) resources
Python
38
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

dynamic_message_introspection

C++
33
star
30

osrf_testing_tools_cpp

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

baxter_demos

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

nexus

Core packages of Nexus
C++
28
star
33

gazebo_osm

OpenStreetMap support for Gazebo
Python
28
star
34

ros2_raw_dds_example

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

TSC-RMW-Reports

ROS 2 Middleware evaluation reports for each ROS release
Jupyter Notebook
25
star
36

uctf

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

yolo_object_detector

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

nodelet_rosbag

C++
20
star
39

uav_testing

A collection of worlds for UAV testing
CMake
19
star
40

robocup_3d_simulation

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

mbari_wec_gz

Simulation of wave energy harvesting buoy
C++
18
star
42

bzip2_cmake

libbz2 built with cmake
C
16
star
43

ros2_test_cases

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

drcsim

Repository for the DRC project.
C++
16
star
45

rviz_aerial_plugins

C++
15
star
46

www.ros.org

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

mbari_wec

Entrypoint to wave harvesting buoy
Dockerfile
15
star
48

multiarch-docker-image-generation

Shell
13
star
49

docker_templates

EmberScript
13
star
50

negotiated

C++
12
star
51

servicesim

Service Robot Simulator
HTML
11
star
52

robocup3ds

Gazebo support for the RoboCup 3D simulation league.
C++
11
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

mir100-client

Generated from mir100 rest api pdf
Python
8
star
56

wandrr

Firmware and electronics for the WANDRR robot
C
8
star
57

collaboration

Repo for collaborating on documents
Jupyter Notebook
8
star
58

capabilities

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

py3-ready

Tools for checking if code is ready for python3
Python
8
star
60

osrf_pycommon

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

rosprofiler

The rosprofiler package
Python
7
star
62

system_data_recorder

A rosbag2 recorder node that backs up split files to an external location during recording
C++
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

bag_merger

Tool for merging multiple rosbag2 bags into one
C++
3
star
80

map_transformer

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

redf

Rust
3
star
82

ubuntu_armhf-docker

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

mininet_ros

Dockerfile
3
star
84

collision-benchmark

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

cloudsim

Shell
3
star
86

iron_irwini_discovery_modes_prototype

Shell
2
star
87

oculussdk

C++
2
star
88

romi-js-core-interfaces

Python
2
star
89

vrx-events

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

rosbag_ndk_player

C++
2
star
91

cmbml

C++
2
star
92

open_survey_data

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

watchprocess

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

buoy_examples

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

handsim

HAPTIX Simulation Utlities
C++
2
star
96

buildfarm-tools

HTML
2
star
97

rba_scripts

scripts to help build rosbag for android
Shell
2
star
98

createrepo-agent

Rapidly and repeatedly generate RPM repository metadata
C
2
star
99

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
100

cloudsim-portal

JavaScript
2
star