{"id":13704318,"url":"https://github.com/osrf/rvizweb","last_synced_at":"2025-07-07T17:03:39.266Z","repository":{"id":68750314,"uuid":"156914824","full_name":"osrf/rvizweb","owner":"osrf","description":"RVizWeb: RViz on the browser","archived":false,"fork":false,"pushed_at":"2022-11-15T16:05:49.000Z","size":18,"stargazers_count":283,"open_issues_count":24,"forks_count":59,"subscribers_count":19,"default_branch":"master","last_synced_at":"2024-08-03T21:05:00.954Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/osrf.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2018-11-09T20:31:23.000Z","updated_at":"2024-07-31T15:21:50.000Z","dependencies_parsed_at":"2023-03-09T17:45:26.498Z","dependency_job_id":null,"html_url":"https://github.com/osrf/rvizweb","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osrf%2Frvizweb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osrf%2Frvizweb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osrf%2Frvizweb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osrf%2Frvizweb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/osrf","download_url":"https://codeload.github.com/osrf/rvizweb/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224439892,"owners_count":17311544,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-02T21:01:07.427Z","updated_at":"2024-11-13T11:31:14.559Z","avatar_url":"https://github.com/osrf.png","language":"HTML","funding_links":[],"categories":["Data Visualization and Mission Control","Interaction"],"sub_categories":["Command Line Interface","Data Visualization and Mission Control"],"readme":"# RVizWeb - RViz, but on your browser\n\nRVizWeb provides a convenient way of building and launching a web application\nwith features similar to [RViz](https://github.com/ros-visualization/rviz).\n\nThis project makes use of the following:\n\n* @jstnhuang's [ros-rviz](https://github.com/jstnhuang/ros-rviz) web component\n* @tork-a's [roswww](https://github.com/tork-a/roswww) web server\n* @RobotWebTools's [rosbridge_server](https://github.com/RobotWebTools/rosbridge_suite)\n  and [tf2_web_republisher](https://github.com/RobotWebTools/tf2_web_republisher)\n\n## Quickstart\n\n1. Create a directory for your catkin workspace:\n\n        mkdir -p ~/ws/src\n        cd ~/ws/src\n        git clone https://github.com/osrf/rvizweb/\n\n1. You will need the LTS version of Node.js. Add the PPA so that `rosdep` can fetch it:\n\n        curl -sL https://deb.nodesource.com/setup_8.x | sudo bash -\n\n1. Install ROS and system dependencies (assumes you already have ROS core):\n\n        cd ~/ws\n        rosdep install --from-paths src --ignore-src -r -y\n\n1. Build and install your workspace; this will run `bower` and `polymer-cli`\n   to generate and install the site:\n\n        cd ~/ws\n        catkin_make install\n\n1. Launch RVizWeb:\n\n        . ~/ws/install/setup.bash\n        roslaunch rvizweb rvizweb.launch\n\n1. Open the site on the browser\n\n    http://localhost:8001/rvizweb/www/index.html\n\n1. Let's try an example display to check everything is working. On the UI, click on the `+` and choose \"Markers\".\n\n1. Now open a new terminal and publish the following marker:\n\n        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}'\n\n1. You should see a pink box show up on the site.\n\n## Viewing URDF\n\nBy default, RVizWeb will serve the `share` folder of all the ROS packages that\nare currently installed in the system to the following address by default:\n\n    http://localhost:8001/\u003cpackage_name/\n\nThis means that if you have robot description files installed, all these resources\nwill be automatically served and are ready to be used by RVizWeb.\n\nLet's try an example using a PR2 simulated on Gazebo.\n\n1. Install the PR2 Gazebo package:\n\n        sudo apt install -y ros-kinetic-pr2-gazebo\n\n1. Launch the simulation:\n\n        roslaunch pr2_gazebo pr2_empty_world.launch\n\n1. Launch RVizWeb:\n\n        roslaunch rvizweb rvizweb.launch\n\n1. Open the site on the browser\n\n    http://localhost:8001/rvizweb/www/index.html\n\n1. On the UI, click on the `+` and choose \"Robot model\".\n\n1. You should see the PR2 on the browser (it will be dark due to a texture issue).\n\n## Viewing interactive markers\n\nTo view interactive markers, you will need an [interactive_marker_proxy](https://wiki.ros.org/interactive_marker_proxy) for\neach interactive marker server you want to run, specifying a target frame and topic.\n\nBy default, RVizWeb will run one of these proxies using `/base_link` as target frame and `/basic_controls` as the topic.\n\nLet's see an example:\n\n1. Install `interactive_marker_tutorials`:\n\n        sudo apt install -y ros-kinetic-interactive-marker-tutorials\n\n1. Run the sample interactive marker server:\n\n        rosrun interactive_marker_tutorials basic_controls\n\nLaunch RVizWeb as described in [Viewing URDF section](#viewing-urdf); this time click `+` and choose `Interactive markers`.\nYou should see markers all around the viewer; you can modify their poses with the controls around them!\n\nThe target frame and topic are configurable when launching the application, e.g.:\n\n    roslaunch rvizweb rvizweb.launch interactive_markers_target_frame:=/base_footprint interactive_markers_topic:=/advanced_controls\n\nIf you need additional proxies, you can run them on separate consoles:\n\n    rosrun interactive_marker_proxy proxy topic_ns:=/your_topic target_frame:=/your_frame\n\nFinally, you can disable the proxy if you don't need it at all:\n\n    roslaunch rvizweb rvizweb.launch interactive_markers:=false\n\n## Viewing depth clouds\n\nTo view depth clouds, you will need [web_video_server](https://wiki.ros.org/web_video_server) and [depthcloud_encoder](https://wiki.ros.org/depthcloud_encoder) running.\n\nHere's a basic example using Turtlebot:\n\n1. Install `turtlebot_gazebo`:\n\n        sudo apt install -y ros-kinetic-turtlebot-gazebo\n\n1. Run `turtlebot_world` in Gazebo:\n\n        roslaunch turtlebot_gazebo turtlebot_world.launch\n\n1. Launch RVizWeb enabling depth clouds:\n\n        roslaunch rvizweb rvizweb.launch depth_cloud:=true\n\nOpen RVizWeb as described in [Viewing URDF section](#viewing-urdf); click `+` and choose `Depth cloud`.\nYou should see Turtlebot's depth cloud stream in the viewer.\n\nUnder the hood, `depthcloud_encoder` is subscribing to depth and RGB image streams and combining them into a single topic (`/depthcloud_encoded`).\nYou can change the default image stream sources like this:\n\n        roslaunch rvizweb rvizweb.launch depth_cloud:=true depth_topic:=/your_depth_topic rgb_topic:=/your_rgb_topic\n\n## Use custom configuration on startup\n\nTo launch `rvizweb` with a custom configuration you will need to provide a JSON file as argument to the launchfile:\n\n```\nroslaunch rvizweb rvizweb.launch config_file:=/path/to/config_file.json\n```\n\nThe easiest way of generating a configuration file is the following:\n- Launch `rvizweb` without any particular arguments, and open it in the browser.\n- Open the components you want to be opened on start, and edit `Global options` at will.\n- 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.\n- Send that file as an argument when launching the application as shown above.\n\n**Notes:**\n- Editing `config/configuration.json` won't work if the application is not reinstalled; providing a separate custom file is recommended.\n- Empty or undefined fields for `globalOptions` will be set to default.\n\n## RVizWeb in a Docker container\n\nTo run `RVizWeb` inside a container use the scripts to build and run the application:\n\n1. Clone the repository:\n\n        git clone https://github.com/osrf/rvizweb ~/rvizweb\n\n1. Build the docker image:\n\n        ~/rvizweb/docker/build.sh\n\n1. Run the container:\n\n        ~/rvizweb/docker/run.sh\n\n1. Once inside the container, launch `RVizWeb`:\n\n        roslaunch rvizweb rvizweb.launch\n\nThe network will be shared with the host by default.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fosrf%2Frvizweb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fosrf%2Frvizweb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fosrf%2Frvizweb/lists"}