Repository Summary
Checkout URI | https://github.com/ros2/rviz.git |
VCS Type | git |
VCS Version | humble |
Last Updated | 2024-11-25 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
rviz2 | 11.2.14 |
rviz_assimp_vendor | 11.2.14 |
rviz_common | 11.2.14 |
rviz_default_plugins | 11.2.14 |
rviz_ogre_vendor | 11.2.14 |
rviz_rendering | 11.2.14 |
rviz_rendering_tests | 11.2.14 |
rviz_visual_testing_framework | 11.2.14 |
README
RViz
This branch is currently contained in the main ros2.repos
file of ROS 2 and can be used for ROS 2.
The latest release will be available with your ROS 2 download.
ROS 2 does not have a wiki yet. To learn about RViz and its functionality, please refer to the ROS RViz wiki page.
Features
Already ported
These features have already been ported from ros-visualization/rviz
to ros2/rviz
.
The basic documentation can still be found on the RViz wiki page.
For some displays, the documentation is updated.
Displays | Tools | View Controller | Panels |
---|---|---|---|
Axes | Move Camera | Orbit | Displays |
Camera | Focus Camera | XY Orbit | Help |
DepthCloud | Measure | First Person | Selections |
Effort | Select | Third Person Follower | Time |
Fluid | 2D Nav Goal | Top Down Orthographic | Tool Properties |
Grid | Publish Point | Views | |
Grid Cells | Initial Pose | ||
Illuminance | Interact | ||
Image | |||
Interactive Marker | |||
Laser Scan | |||
Map | |||
Marker | |||
Marker Array | |||
Odometry | |||
Point Cloud (1 and 2) | |||
Point | |||
Polygon | |||
Pose | |||
Pose Array | |||
Pose With Covariance | |||
Range | |||
Relative Humidity | |||
Robot Model | |||
Temperature | |||
TF | |||
Wrench |
Not yet ported
Other features:
- Stereo
In case you wished to see those features in RViz for ROS 2, feel free to add a pull request. Make sure to read the developer guide below and the migration guide.
New features
Pluggable transformation library
In RViz for ROS 1 the frames transformation library used is tf2 (detailed information about it can be found here). In RViz for ROS 2 the frames transformation library is now pluggable, meaning that different transformation library plugins can be loaded and changed dynamically in the gui. Developers can create and use their own plugins to provide custom transformation behavior.
Two plugins are bundled with RViz:
- a plugin for tf2 (
TFFrameTransformer
, inrviz_default_plugins
), which provides the standard tf2 functionality and which is used as a default - a trivial plugin (
IdentityFrameTransformer
, inrviz_common
), which always performs identity transforms. This plugin is used by default if the tf2 plugin is not available and no other valid plugin is specified.
As anticipated, in order for the user to choose the plugin to use, RViz provides a dedicated panel: the Transformation
panel.
Note: Not all transformation plugins are necessarily compatible with all RViz displays (e.g. some of the default displays, like the TF display, can only work with tf2).
In order to take this possibility into account, the TransformerGuard
class is provided.
Adding it to a display ensures that the display will be disabled and won’t function in case the wrong transformer is used.
More detailed information on how to write a transformation plugin and on how to handle transformation specific displays can be found in the plugin development guide.
Developer Guide
Build
Building RViz together with ROS 2
The simplest way to build from source is to use the official installation guide, since RViz is part of the official ROS 2 repos file.
https://docs.ros.org/en/rolling/Installation.html
Building RViz in a separate workspace
When developing for RViz, it can be beneficial to build it in a separate workspace.
Note: When building the current ros2 branch from source, the latest ROS 2 release for all dependencies might not be sufficient: it could be necessary to build the ROS 2 master branch. Make sure to have a source build of ROS 2 available (see installation procedure above).
Create a new workspace:
$ mkdir -p ~/rviz2_ws/src
$ cd ~/rviz2_ws/src
Clone these repositories into the source folder:
$ git clone https://github.com/ros2/rviz.git
Then build all the packages with this command:
$ colcon build --merge-install
The --merge-install
flag is optional but ensures a cleaner environment which is helpful for development.
More instructions and examples to come.
In addition to the ROS 2 Developer Guide we suggest the following.
Testing
Main rationale here is to create code that can be well tested by avoiding highly coupled components.
- Avoid free functions (cannot be mocked).
- Create abstract base classes (interface) for dependencies. (This allows for a mock to be completely independent of the actual implementing class.)
- Use only the interface in the dependent code.
- Specify dependencies as a constructor argument.
- Prefer
std::unique_ptr
for storing the dependency instead of a raw pointer.
Migration
When migrating from ros-visualization/rviz
to ros2/rviz
, please see the more extensive migration guide.
Plugin Development
Plugins can extend RViz at different extension points:
- Displays
- Panels
- Tools
- Frames transformation library
- View Controllers
More information on writing plugins can be found in the plugin development guide.
Icon Copyrights
This package contains Public Domain icons downloaded from http://tango.freedesktop.org/releases/.
Upstream Authors (2005-2009):
- Ulisse Perusin
<uli.peru@gmail.com>
- Steven Garrity
<sgarrity@silverorange.com>
- Lapo Calamandrei
<calamandrei@gmail.com>
- Ryan Collier
<rcollier@novell.com>
- Rodney Dawes
<dobey@novell.com>
- Andreas Nilsson
<nisses.mail@home.se>
- Tuomas Kuosmanen
<tigert@tigert.com>
- Garrett LeSage
<garrett@novell.com>
- Jakub Steiner
<jimmac@novell.com>
Other icons and graphics contained in this package are released into the Public Domain as well.
Authors (2012-2017):
- David Gossow
- Chad Rockey
- Kei Okada
- Julius Kammerl
- Acorn Pooley
- Rein Appeldoorn
Copyright notice for all icons and graphics in this package:
Public Domain Dedication
Copyright-Only Dedication (based on United States law) or Public Domain
Certification
The person or persons who have associated work with this document (the
"Dedicator" or "Certifier") hereby either (a) certifies that, to the best
of his knowledge, the work of authorship identified is in the public
domain of the country from which the work is published, or (b)
hereby dedicates whatever copyright the dedicators holds in the work
of authorship identified below (the "Work") to the public domain. A
certifier, moreover, dedicates any copyright interest he may have in
the associated work, and for these purposes, is described as a
"dedicator" below.
A certifier has taken reasonable steps to verify the copyright
status of this work. Certifier recognizes that his good faith efforts
may not shield him from liability if in fact the work certified is not
in the public domain.
Dedicator makes this dedication for the benefit of the public at
large and to the detriment of the Dedicator's heirs and successors.
Dedicator intends this dedication to be an overt act of relinquishment
in perpetuity of all present and future rights under copyright law,
whether vested or contingent, in the Work. Dedicator understands that
such relinquishment of all rights includes the relinquishment of all
rights to enforce (by lawsuit or otherwise) those copyrights in the
Work.
Dedicator recognizes that, once placed in the public domain, the Work
may be freely reproduced, distributed, transmitted, used, modified,
built upon, or otherwise exploited by anyone for any purpose, commercial
or non-commercial, and in any way, including by methods that have not
yet been invented or conceived.
Source: http://creativecommons.org/licenses/publicdomain/
CONTRIBUTING
Repository Summary
Checkout URI | https://github.com/ros2/rviz.git |
VCS Type | git |
VCS Version | jazzy |
Last Updated | 2024-12-18 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
rviz2 | 14.1.6 |
rviz_assimp_vendor | 14.1.6 |
rviz_common | 14.1.6 |
rviz_default_plugins | 14.1.6 |
rviz_ogre_vendor | 14.1.6 |
rviz_rendering | 14.1.6 |
rviz_rendering_tests | 14.1.6 |
rviz_visual_testing_framework | 14.1.6 |
README
RViz
This branch is currently contained in the main ros2.repos
file of ROS 2 and can be used for ROS 2.
The latest release will be available with your ROS 2 download.
ROS 2 does not have a wiki yet. To learn about RViz and its functionality, please refer to the ROS RViz wiki page.
Features
Already ported
These features have already been ported from ros-visualization/rviz
to ros2/rviz
.
The basic documentation can still be found on the RViz wiki page.
For some displays, the documentation is updated.
Displays | Tools | View Controller | Panels |
---|---|---|---|
Axes | Move Camera | Orbit | Displays |
Camera | Focus Camera | XY Orbit | Help |
DepthCloud | Measure | First Person | Selections |
Effort | Select | Third Person Follower | Time |
Fluid | 2D Nav Goal | Top Down Orthographic | Tool Properties |
Grid | Publish Point | Views | |
Grid Cells | Initial Pose | ||
Illuminance | Interact | ||
Image | |||
Interactive Marker | |||
Laser Scan | |||
Map | |||
Marker | |||
Marker Array | |||
Odometry | |||
Point Cloud (1 and 2) | |||
Point | |||
Polygon | |||
Pose | |||
Pose Array | |||
Pose With Covariance | |||
Range | |||
Relative Humidity | |||
Robot Model | |||
Temperature | |||
TF | |||
Wrench |
Not yet ported
Other features:
- Stereo
In case you wished to see those features in RViz for ROS 2, feel free to add a pull request. Make sure to read the developer guide below and the migration guide.
New features
Pluggable transformation library
In RViz for ROS 1 the frames transformation library used is tf2 (detailed information about it can be found here). In RViz for ROS 2 the frames transformation library is now pluggable, meaning that different transformation library plugins can be loaded and changed dynamically in the gui. Developers can create and use their own plugins to provide custom transformation behavior.
Two plugins are bundled with RViz:
- a plugin for tf2 (
TFFrameTransformer
, inrviz_default_plugins
), which provides the standard tf2 functionality and which is used as a default - a trivial plugin (
IdentityFrameTransformer
, inrviz_common
), which always performs identity transforms. This plugin is used by default if the tf2 plugin is not available and no other valid plugin is specified.
As anticipated, in order for the user to choose the plugin to use, RViz provides a dedicated panel: the Transformation
panel.
Note: Not all transformation plugins are necessarily compatible with all RViz displays (e.g. some of the default displays, like the TF display, can only work with tf2).
In order to take this possibility into account, the TransformerGuard
class is provided.
Adding it to a display ensures that the display will be disabled and won’t function in case the wrong transformer is used.
More detailed information on how to write a transformation plugin and on how to handle transformation specific displays can be found in the plugin development guide.
Developer Guide
Build
Building RViz together with ROS 2
The simplest way to build from source is to use the official installation guide, since RViz is part of the official ROS 2 repos file.
https://docs.ros.org/en/rolling/Installation.html
Building RViz in a separate workspace
When developing for RViz, it can be beneficial to build it in a separate workspace.
Note: When building the current ros2 branch from source, the latest ROS 2 release for all dependencies might not be sufficient: it could be necessary to build the ROS 2 master branch. Make sure to have a source build of ROS 2 available (see installation procedure above).
Create a new workspace:
$ mkdir -p ~/rviz2_ws/src
$ cd ~/rviz2_ws/src
Clone these repositories into the source folder:
$ git clone https://github.com/ros2/rviz.git
Then build all the packages with this command:
$ colcon build --merge-install
The --merge-install
flag is optional but ensures a cleaner environment which is helpful for development.
More instructions and examples to come.
In addition to the ROS 2 Developer Guide we suggest the following.
Testing
Main rationale here is to create code that can be well tested by avoiding highly coupled components.
- Avoid free functions (cannot be mocked).
- Create abstract base classes (interface) for dependencies. (This allows for a mock to be completely independent of the actual implementing class.)
- Use only the interface in the dependent code.
- Specify dependencies as a constructor argument.
- Prefer
std::unique_ptr
for storing the dependency instead of a raw pointer.
Migration
When migrating from ros-visualization/rviz
to ros2/rviz
, please see the more extensive migration guide.
Plugin Development
Plugins can extend RViz at different extension points:
- Displays
- Panels
- Tools
- Frames transformation library
- View Controllers
More information on writing plugins can be found in the plugin development guide.
Icon Copyrights
This package contains Public Domain icons downloaded from http://tango.freedesktop.org/releases/.
Upstream Authors (2005-2009):
- Ulisse Perusin
<uli.peru@gmail.com>
- Steven Garrity
<sgarrity@silverorange.com>
- Lapo Calamandrei
<calamandrei@gmail.com>
- Ryan Collier
<rcollier@novell.com>
- Rodney Dawes
<dobey@novell.com>
- Andreas Nilsson
<nisses.mail@home.se>
- Tuomas Kuosmanen
<tigert@tigert.com>
- Garrett LeSage
<garrett@novell.com>
- Jakub Steiner
<jimmac@novell.com>
Other icons and graphics contained in this package are released into the Public Domain as well.
Authors (2012-2017):
- David Gossow
- Chad Rockey
- Kei Okada
- Julius Kammerl
- Acorn Pooley
- Rein Appeldoorn
Copyright notice for all icons and graphics in this package:
Public Domain Dedication
Copyright-Only Dedication (based on United States law) or Public Domain
Certification
The person or persons who have associated work with this document (the
"Dedicator" or "Certifier") hereby either (a) certifies that, to the best
of his knowledge, the work of authorship identified is in the public
domain of the country from which the work is published, or (b)
hereby dedicates whatever copyright the dedicators holds in the work
of authorship identified below (the "Work") to the public domain. A
certifier, moreover, dedicates any copyright interest he may have in
the associated work, and for these purposes, is described as a
"dedicator" below.
A certifier has taken reasonable steps to verify the copyright
status of this work. Certifier recognizes that his good faith efforts
may not shield him from liability if in fact the work certified is not
in the public domain.
Dedicator makes this dedication for the benefit of the public at
large and to the detriment of the Dedicator's heirs and successors.
Dedicator intends this dedication to be an overt act of relinquishment
in perpetuity of all present and future rights under copyright law,
whether vested or contingent, in the Work. Dedicator understands that
such relinquishment of all rights includes the relinquishment of all
rights to enforce (by lawsuit or otherwise) those copyrights in the
Work.
Dedicator recognizes that, once placed in the public domain, the Work
may be freely reproduced, distributed, transmitted, used, modified,
built upon, or otherwise exploited by anyone for any purpose, commercial
or non-commercial, and in any way, including by methods that have not
yet been invented or conceived.
Source: http://creativecommons.org/licenses/publicdomain/
CONTRIBUTING
Repository Summary
Checkout URI | https://github.com/ros2/rviz.git |
VCS Type | git |
VCS Version | rolling |
Last Updated | 2024-12-18 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
rviz2 | 14.3.3 |
rviz_assimp_vendor | 14.3.3 |
rviz_common | 14.3.3 |
rviz_default_plugins | 14.3.3 |
rviz_ogre_vendor | 14.3.3 |
rviz_rendering | 14.3.3 |
rviz_rendering_tests | 14.3.3 |
rviz_visual_testing_framework | 14.3.3 |
README
RViz
This branch is currently contained in the main ros2.repos
file of ROS 2 and can be used for ROS 2.
The latest release will be available with your ROS 2 download.
ROS 2 does not have a wiki yet. To learn about RViz and its functionality, please refer to the ROS RViz wiki page.
Features
Already ported
These features have already been ported from ros-visualization/rviz
to ros2/rviz
.
The basic documentation can still be found on the RViz wiki page.
For some displays, the documentation is updated.
Displays | Tools | View Controller | Panels |
---|---|---|---|
Axes | Move Camera | Orbit | Displays |
Camera | Focus Camera | XY Orbit | Help |
DepthCloud | Measure | First Person | Selections |
Effort | Select | Third Person Follower | Time |
Fluid | 2D Nav Goal | Top Down Orthographic | Tool Properties |
Grid | Publish Point | Views | |
Grid Cells | Initial Pose | ||
Illuminance | Interact | ||
Image | |||
Interactive Marker | |||
Laser Scan | |||
Map | |||
Marker | |||
Marker Array | |||
Odometry | |||
Point Cloud (1 and 2) | |||
Point | |||
Polygon | |||
Pose | |||
Pose Array | |||
Pose With Covariance | |||
Range | |||
Relative Humidity | |||
Robot Model | |||
Temperature | |||
TF | |||
Wrench |
Not yet ported
Other features:
- Stereo
In case you wished to see those features in RViz for ROS 2, feel free to add a pull request. Make sure to read the developer guide below and the migration guide.
New features
Pluggable transformation library
In RViz for ROS 1 the frames transformation library used is tf2 (detailed information about it can be found here). In RViz for ROS 2 the frames transformation library is now pluggable, meaning that different transformation library plugins can be loaded and changed dynamically in the gui. Developers can create and use their own plugins to provide custom transformation behavior.
Two plugins are bundled with RViz:
- a plugin for tf2 (
TFFrameTransformer
, inrviz_default_plugins
), which provides the standard tf2 functionality and which is used as a default - a trivial plugin (
IdentityFrameTransformer
, inrviz_common
), which always performs identity transforms. This plugin is used by default if the tf2 plugin is not available and no other valid plugin is specified.
As anticipated, in order for the user to choose the plugin to use, RViz provides a dedicated panel: the Transformation
panel.
Note: Not all transformation plugins are necessarily compatible with all RViz displays (e.g. some of the default displays, like the TF display, can only work with tf2).
In order to take this possibility into account, the TransformerGuard
class is provided.
Adding it to a display ensures that the display will be disabled and won’t function in case the wrong transformer is used.
More detailed information on how to write a transformation plugin and on how to handle transformation specific displays can be found in the plugin development guide.
Developer Guide
Build
Building RViz together with ROS 2
The simplest way to build from source is to use the official installation guide, since RViz is part of the official ROS 2 repos file.
https://docs.ros.org/en/rolling/Installation.html
Building RViz in a separate workspace
When developing for RViz, it can be beneficial to build it in a separate workspace.
Note: When building the current ros2 branch from source, the latest ROS 2 release for all dependencies might not be sufficient: it could be necessary to build the ROS 2 master branch. Make sure to have a source build of ROS 2 available (see installation procedure above).
Create a new workspace:
$ mkdir -p ~/rviz2_ws/src
$ cd ~/rviz2_ws/src
Clone these repositories into the source folder:
$ git clone https://github.com/ros2/rviz.git
Then build all the packages with this command:
$ colcon build --merge-install
The --merge-install
flag is optional but ensures a cleaner environment which is helpful for development.
More instructions and examples to come.
In addition to the ROS 2 Developer Guide we suggest the following.
Testing
Main rationale here is to create code that can be well tested by avoiding highly coupled components.
- Avoid free functions (cannot be mocked).
- Create abstract base classes (interface) for dependencies. (This allows for a mock to be completely independent of the actual implementing class.)
- Use only the interface in the dependent code.
- Specify dependencies as a constructor argument.
- Prefer
std::unique_ptr
for storing the dependency instead of a raw pointer.
Migration
When migrating from ros-visualization/rviz
to ros2/rviz
, please see the more extensive migration guide.
Plugin Development
Plugins can extend RViz at different extension points:
- Displays
- Panels
- Tools
- Frames transformation library
- View Controllers
More information on writing plugins can be found in the plugin development guide.
Icon Copyrights
This package contains Public Domain icons downloaded from http://tango.freedesktop.org/releases/.
Upstream Authors (2005-2009):
- Ulisse Perusin
<uli.peru@gmail.com>
- Steven Garrity
<sgarrity@silverorange.com>
- Lapo Calamandrei
<calamandrei@gmail.com>
- Ryan Collier
<rcollier@novell.com>
- Rodney Dawes
<dobey@novell.com>
- Andreas Nilsson
<nisses.mail@home.se>
- Tuomas Kuosmanen
<tigert@tigert.com>
- Garrett LeSage
<garrett@novell.com>
- Jakub Steiner
<jimmac@novell.com>
Other icons and graphics contained in this package are released into the Public Domain as well.
Authors (2012-2017):
- David Gossow
- Chad Rockey
- Kei Okada
- Julius Kammerl
- Acorn Pooley
- Rein Appeldoorn
Copyright notice for all icons and graphics in this package:
Public Domain Dedication
Copyright-Only Dedication (based on United States law) or Public Domain
Certification
The person or persons who have associated work with this document (the
"Dedicator" or "Certifier") hereby either (a) certifies that, to the best
of his knowledge, the work of authorship identified is in the public
domain of the country from which the work is published, or (b)
hereby dedicates whatever copyright the dedicators holds in the work
of authorship identified below (the "Work") to the public domain. A
certifier, moreover, dedicates any copyright interest he may have in
the associated work, and for these purposes, is described as a
"dedicator" below.
A certifier has taken reasonable steps to verify the copyright
status of this work. Certifier recognizes that his good faith efforts
may not shield him from liability if in fact the work certified is not
in the public domain.
Dedicator makes this dedication for the benefit of the public at
large and to the detriment of the Dedicator's heirs and successors.
Dedicator intends this dedication to be an overt act of relinquishment
in perpetuity of all present and future rights under copyright law,
whether vested or contingent, in the Work. Dedicator understands that
such relinquishment of all rights includes the relinquishment of all
rights to enforce (by lawsuit or otherwise) those copyrights in the
Work.
Dedicator recognizes that, once placed in the public domain, the Work
may be freely reproduced, distributed, transmitted, used, modified,
built upon, or otherwise exploited by anyone for any purpose, commercial
or non-commercial, and in any way, including by methods that have not
yet been invented or conceived.
Source: http://creativecommons.org/licenses/publicdomain/
CONTRIBUTING
Repository Summary
Checkout URI | https://github.com/ros2/rviz.git |
VCS Type | git |
VCS Version | ardent |
Last Updated | 2018-02-08 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
rviz2 | 3.0.0 |
rviz_assimp_vendor | 3.0.0 |
rviz_common | 3.0.0 |
rviz_default_plugins | 3.0.0 |
rviz_ogre_vendor | 3.0.0 |
rviz_rendering | 3.0.0 |
rviz_rendering_tests | 3.0.0 |
rviz_yaml_cpp_vendor | 3.0.0 |
README
rviz
This branch is still under construction and is targeted for ROS 2 and/or ROS 1 M-Turtle.
Setup
Install ros2 (needed for ament at least and ros2’s C++ api for the version of rviz in ros 2):
https://github.com/ros2/ros2/wiki/Installation
Currently the latest release (beta3) is not sufficient to build rviz so you need to build the ros2 master from source.
Prerequisites
Ubuntu
There will be a setup.bash
file from your ros2 build you can source.
The current state of this branch requires a from-source build though.
Install the following Ubuntu packages:
apt install libxaw7-dev libgles2-mesa-dev libglu1-mesa-dev qt5-default libyaml-cpp-dev libcurl4-openssl-dev
Source the setup file before continuing:
$ source path/to/ros2/install/setup.bash
Windows
Note Make sure to install all dependencies in either 32 bit or 64 bit version and do not mix.
This setup was tested for Windows 10 x64.
Build CURL 7.56.0
- Download CURL sources from GitHub
- Extract to local folder (e.g. to
C:\ros2\curl-7.56.0
) - Create and change to build folder (e.g.
C:\ros2\curl-7.56.0\build
)- Configure CMake:
cmake -G "Visual Studio 15 2017 Win64" ../
- Build the project:
cmake --build . --config Debug
- Install to
C:\Program Files
:cmake --build . --config Debug --target Install
- Configure CMake:
Get Boost (No build required)
- Download Boost sources from https://dl.bintray.com/boostorg/release/1.65.1/source/
- Extract to local folder (e.g. to
C:\ros2\boost_1_65_1
)
Build yaml-cpp
- Download yaml-cpp sources from GitHub
- Extract to local folder (e.g. to
C:\ros2\yaml-cpp-release-0.5.3
) - Create and change to build folder (e.g.
C:\ros2\yaml-cpp-release-0.5.3\build
)- Configure CMake:
cmake -G "cmake -G "Visual Studio 15 2017 Win64" ../ -DBoost_INCLUDE_DIR=C:\ros2\boost_1_65_1
- Build the project:
cmake --build . --config Debug
- Install to
C:\Program Files
:cmake --build . --config Debug --target Install
- Configure CMake:
Setup environment
- add Qt binary files to PATH (e.g.
C:\Qt\5.9.1\msvc2017_64\bin
) - set QT_QPA_PLATFORM_PLUGIN_PATH environment variable (e.g.
C:\Qt\5.9.1\msvc2017_64\plugins\platforms
) - Add Curl and yaml-cppto the CMAKE_PREFIX_PATH environment variable
- Example:
C:\Program Files\CURL;C:\Program Files\YAML_CPP
- Example:
- Add Curl binary to PATH (e.g.
C:\Program Files\CURL\bin
) - Set BOOST_INCLUDEDIR environment variable to Boost include directory (e.g.
C:\ros2\boost_1_65_1
) - Add patch.exe to PATH (e.g. from Git Bash,
C:\Program Files\Git\usr\bin
) - (For Testing) Add Cppcheck binary to PATH (e.g.
C:\Program Files\Cppcheck
)
Source the setup file before continuing:
$ call path/to/ros2/install/setup.bat
Building RViz
Create a new workspace:
$ mkdir -p ~/rviz2_ws/src
$ cd ~/rviz2_ws/src
Clone these repositories into the source folder:
$ git clone https://github.com/ros2/rviz.git
$ git clone https://github.com/ros/pluginlib.git -b ros2
$ git clone https://github.com/ros2/tinyxml2_vendor.git
Then build all the packages with this command:
$ ament build
Or specific packages with command, for example just rviz_ogre_vendor
and then rviz_rendering
:
$ ament build --only rviz_ogre_vendor
$ ament build --only rviz_rendering
More instructions and examples to come.
Developer Guide
In addition to the ROS 2 Developer Guide we suggest the following.
Testing
Main rationale here is to create code that can be well tested by avoiding highly coupled components.
- Avoid free functions (cannot be mocked).
- Create abstract base classes (interface) for dependencies. (This allows for a mock to be completely independent of the actual implementing class.)
- Use only the interface in the dependent code.
- Specify dependencies as a constructor argument.
- Prefer
std::unique_ptr
for storing the dependency instead of a raw pointer.
CONTRIBUTING
Repository Summary
Checkout URI | https://github.com/ros2/rviz.git |
VCS Type | git |
VCS Version | bouncy |
Last Updated | 2018-08-20 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
rviz2 | 4.0.2 |
rviz_assimp_vendor | 4.0.2 |
rviz_common | 4.0.2 |
rviz_default_plugins | 4.0.2 |
rviz_ogre_vendor | 4.0.2 |
rviz_rendering | 4.0.2 |
rviz_rendering_tests | 4.0.2 |
rviz_visual_testing_framework | 4.0.2 |
rviz_yaml_cpp_vendor | 4.0.2 |
README
RViz
This branch is currently contained in the main ros2.repos
file of ROS 2 and can be used for ROS 2.
The latest release will be available with your ROS 2 download.
ROS 2 does not have a wiki yet. To learn about RViz and its functionality, please refer to the ROS RViz wiki page.
Features
Already ported
These features have already been ported from ros-visualization/rviz
to ros2/rviz
.
The basic documentation can still be found on the RViz wiki page.
For some displays, the documentation is updated.
Displays | Tools | View Controller | Panels |
---|---|---|---|
Camera | Move Camera | Orbit | Displays |
Grid | Focus Camera | XY Orbit | Help |
Grid Cells | Measure | First Person | Selections |
Image | Select | Third Person Follower | Tool Properties |
Laser Scan | 2D Nav Goal | Top Down Orthographic | Views |
Map | Publish Point | ||
Marker | |||
Marker Array | |||
Odometry | |||
Point Cloud (1 and 2) | |||
Point | |||
Polygon | |||
Pose | |||
Pose Array | |||
Robot Model | |||
TF |
Not yet ported
These features have not been ported to ros2/rviz
yet.
Displays | Tools | Panels |
---|---|---|
Axes | Initial Pose | Time |
DepthCloud | Interact | |
Effort | ||
Fluid Pressure | ||
Illuminance | ||
Interactive Marker | ||
Oculus | ||
Pose With Covariance | ||
Range | ||
Relative Humidity | ||
Temperature | ||
Wrench |
Other features:
- Filtering of Topic lists by topic type
- Message filters
- Image transport features
In case you wished to see those features in RViz for ROS 2, feel free to add a pull request. Make sure to read the developer guide below and the migration guide.
New features
None, yet.
Developer Guide
Build
Building RViz together with ROS 2
The simplest way to build from source is to use the official installation guide, since RViz is part of the official ROS 2 repos file.
https://github.com/ros2/ros2/wiki/Installation
Building RViz in a separate workspace
When developing for RViz, it can be beneficial to build it in a separate workspace.
Note: When building the current ros2 branch from source, the latest ROS 2 release for all dependencies might not be sufficient: it could be necessary to build the ROS 2 master branch. Make sure to have a source build of ROS 2 available (see installation procedure above).
Create a new workspace:
$ mkdir -p ~/rviz2_ws/src
$ cd ~/rviz2_ws/src
Clone these repositories into the source folder:
$ git clone https://github.com/ros2/rviz.git
Then build all the packages with this command:
$ colcon build --merge-install
The --merge-install
flag is optional but ensures a cleaner environment which is helpful for development.
More instructions and examples to come.
In addition to the ROS 2 Developer Guide we suggest the following.
Testing
Main rationale here is to create code that can be well tested by avoiding highly coupled components.
- Avoid free functions (cannot be mocked).
- Create abstract base classes (interface) for dependencies. (This allows for a mock to be completely independent of the actual implementing class.)
- Use only the interface in the dependent code.
- Specify dependencies as a constructor argument.
- Prefer
std::unique_ptr
for storing the dependency instead of a raw pointer.
Migration
When migrating from ros-visualization/rviz
to ros2/rviz
, please see the more extensive migration guide.
Plugin Development
Plugins can extend RViz at different extension points:
- Displays
- Panels
- Tools
- View Controllers
More information on writing plugins can be found in the plugin development guide.
CONTRIBUTING
Repository Summary
Checkout URI | https://github.com/ros2/rviz.git |
VCS Type | git |
VCS Version | crystal |
Last Updated | 2019-12-06 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
rviz2 | 5.1.1 |
rviz_assimp_vendor | 5.1.1 |
rviz_common | 5.1.1 |
rviz_default_plugins | 5.1.1 |
rviz_ogre_vendor | 5.1.1 |
rviz_rendering | 5.1.1 |
rviz_rendering_tests | 5.1.1 |
rviz_visual_testing_framework | 5.1.1 |
README
RViz
This branch is currently contained in the main ros2.repos
file of ROS 2 and can be used for ROS 2.
The latest release will be available with your ROS 2 download.
ROS 2 does not have a wiki yet. To learn about RViz and its functionality, please refer to the ROS RViz wiki page.
Features
Already ported
These features have already been ported from ros-visualization/rviz
to ros2/rviz
.
The basic documentation can still be found on the RViz wiki page.
For some displays, the documentation is updated.
Displays | Tools | View Controller | Panels |
---|---|---|---|
Camera | Move Camera | Orbit | Displays |
Fluid Pressure | Focus Camera | XY Orbit | Help |
Grid | Measure | First Person | Selections |
Grid Cells | Select | Third Person Follower | Tool Properties |
Illuminance | 2D Nav Goal | Top Down Orthographic | Views |
Image | Publish Point | ||
Laser Scan | Initial Pose | ||
Map | |||
Marker | |||
Marker Array | |||
Odometry | |||
Point Cloud (1 and 2) | |||
Point | |||
Polygon | |||
Pose | |||
Pose Array | |||
Range | |||
Relative Humidity | |||
Robot Model | |||
Temperature | |||
TF |
Not yet ported
These features have not been ported to ros2/rviz
yet.
Displays | Tools | Panels |
---|---|---|
Axes | Interact | Time |
DepthCloud | ||
Effort | ||
Interactive Marker | ||
Oculus | ||
Pose With Covariance | ||
Wrench |
Other features:
- Filtering of Topic lists by topic type
- Message filters
- Image transport features
In case you wished to see those features in RViz for ROS 2, feel free to add a pull request. Make sure to read the developer guide below and the migration guide.
New features
Pluggable transformation library
In RViz for ROS 1 the frames transformation library used is tf2 (detailed information about it can be found here). In RViz for ROS 2 the frames transformation library is now pluggable, meaning that different transformation library plugins can be loaded and changed dynamically in the gui. Developers can create and use their own plugins to provide custom transformation behavior.
Two plugins are bundled with RViz:
- a plugin for tf2 (
TFFrameTransformer
, inrviz_default_plugins
), which provides the standard tf2 functionality and which is used as a default - a trivial plugin (
IdentityFrameTransformer
, inrviz_common
), which always performs identity transforms. This plugin is used by default if the tf2 plugin is not available and no other valid plugin is specified.
As anticipated, in order for the user to choose the plugin to use, RViz provides a dedicated panel: the Transformation
panel.
Note: Not all transformation plugins are necessarily compatible with all RViz displays (e.g. some of the default displays, like the TF display, can only work with tf2).
In order to take this possibility into account, the TransformerGuard
class is provided.
Adding it to a display ensures that the display will be disabled and won’t function in case the wrong transformer is used.
More detailed information on how to write a transformation plugin and on how to handle transformation specific displays can be found in the plugin development guide.
Developer Guide
Build
Building RViz together with ROS 2
The simplest way to build from source is to use the official installation guide, since RViz is part of the official ROS 2 repos file.
https://github.com/ros2/ros2/wiki/Installation
Building RViz in a separate workspace
When developing for RViz, it can be beneficial to build it in a separate workspace.
Note: When building the current ros2 branch from source, the latest ROS 2 release for all dependencies might not be sufficient: it could be necessary to build the ROS 2 master branch. Make sure to have a source build of ROS 2 available (see installation procedure above).
Create a new workspace:
$ mkdir -p ~/rviz2_ws/src
$ cd ~/rviz2_ws/src
Clone these repositories into the source folder:
$ git clone https://github.com/ros2/rviz.git
Then build all the packages with this command:
$ colcon build --merge-install
The --merge-install
flag is optional but ensures a cleaner environment which is helpful for development.
More instructions and examples to come.
In addition to the ROS 2 Developer Guide we suggest the following.
Testing
Main rationale here is to create code that can be well tested by avoiding highly coupled components.
- Avoid free functions (cannot be mocked).
- Create abstract base classes (interface) for dependencies. (This allows for a mock to be completely independent of the actual implementing class.)
- Use only the interface in the dependent code.
- Specify dependencies as a constructor argument.
- Prefer
std::unique_ptr
for storing the dependency instead of a raw pointer.
Migration
When migrating from ros-visualization/rviz
to ros2/rviz
, please see the more extensive migration guide.
Plugin Development
Plugins can extend RViz at different extension points:
- Displays
- Panels
- Tools
- Frames transformation library
- View Controllers
More information on writing plugins can be found in the plugin development guide.
CONTRIBUTING
Repository Summary
Checkout URI | https://github.com/ros2/rviz.git |
VCS Type | git |
VCS Version | eloquent |
Last Updated | 2020-12-02 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
rviz2 | 7.0.7 |
rviz_assimp_vendor | 7.0.7 |
rviz_common | 7.0.7 |
rviz_default_plugins | 7.0.7 |
rviz_ogre_vendor | 7.0.7 |
rviz_rendering | 7.0.7 |
rviz_rendering_tests | 7.0.7 |
rviz_visual_testing_framework | 7.0.7 |
README
RViz
This branch is currently contained in the main ros2.repos
file of ROS 2 and can be used for ROS 2.
The latest release will be available with your ROS 2 download.
ROS 2 does not have a wiki yet. To learn about RViz and its functionality, please refer to the ROS RViz wiki page.
Features
Already ported
These features have already been ported from ros-visualization/rviz
to ros2/rviz
.
The basic documentation can still be found on the RViz wiki page.
For some displays, the documentation is updated.
Displays | Tools | View Controller | Panels |
---|---|---|---|
Axes | Move Camera | Orbit | Displays |
Camera | Focus Camera | XY Orbit | Help |
Fluid Pressure | Measure | First Person | Selections |
Grid | Select | Third Person Follower | Tool Properties |
Grid Cells | 2D Nav Goal | Top Down Orthographic | Views |
Illuminance | Publish Point | ||
Image | Initial Pose | ||
Interactive Marker | Interact | ||
Laser Scan | |||
Map | |||
Marker | |||
Marker Array | |||
Odometry | |||
Point Cloud (1 and 2) | |||
Point | |||
Polygon | |||
Pose | |||
Pose Array | |||
Range | |||
Relative Humidity | |||
Robot Model | |||
Temperature | |||
TF | |||
Wrench |
Not yet ported
These features have not been ported to ros2/rviz
yet.
Displays | Panels |
---|---|
DepthCloud | Time |
Effort | |
Pose With Covariance |
Other features:
- Filtering of Topic lists by topic type
- Image transport features
- Stereo
In case you wished to see those features in RViz for ROS 2, feel free to add a pull request. Make sure to read the developer guide below and the migration guide.
New features
Pluggable transformation library
In RViz for ROS 1 the frames transformation library used is tf2 (detailed information about it can be found here). In RViz for ROS 2 the frames transformation library is now pluggable, meaning that different transformation library plugins can be loaded and changed dynamically in the gui. Developers can create and use their own plugins to provide custom transformation behavior.
Two plugins are bundled with RViz:
- a plugin for tf2 (
TFFrameTransformer
, inrviz_default_plugins
), which provides the standard tf2 functionality and which is used as a default - a trivial plugin (
IdentityFrameTransformer
, inrviz_common
), which always performs identity transforms. This plugin is used by default if the tf2 plugin is not available and no other valid plugin is specified.
As anticipated, in order for the user to choose the plugin to use, RViz provides a dedicated panel: the Transformation
panel.
Note: Not all transformation plugins are necessarily compatible with all RViz displays (e.g. some of the default displays, like the TF display, can only work with tf2).
In order to take this possibility into account, the TransformerGuard
class is provided.
Adding it to a display ensures that the display will be disabled and won’t function in case the wrong transformer is used.
More detailed information on how to write a transformation plugin and on how to handle transformation specific displays can be found in the plugin development guide.
Developer Guide
Build
Building RViz together with ROS 2
The simplest way to build from source is to use the official installation guide, since RViz is part of the official ROS 2 repos file.
https://github.com/ros2/ros2/wiki/Installation
Building RViz in a separate workspace
When developing for RViz, it can be beneficial to build it in a separate workspace.
Note: When building the current ros2 branch from source, the latest ROS 2 release for all dependencies might not be sufficient: it could be necessary to build the ROS 2 master branch. Make sure to have a source build of ROS 2 available (see installation procedure above).
Create a new workspace:
$ mkdir -p ~/rviz2_ws/src
$ cd ~/rviz2_ws/src
Clone these repositories into the source folder:
$ git clone https://github.com/ros2/rviz.git
Then build all the packages with this command:
$ colcon build --merge-install
The --merge-install
flag is optional but ensures a cleaner environment which is helpful for development.
More instructions and examples to come.
In addition to the ROS 2 Developer Guide we suggest the following.
Testing
Main rationale here is to create code that can be well tested by avoiding highly coupled components.
- Avoid free functions (cannot be mocked).
- Create abstract base classes (interface) for dependencies. (This allows for a mock to be completely independent of the actual implementing class.)
- Use only the interface in the dependent code.
- Specify dependencies as a constructor argument.
- Prefer
std::unique_ptr
for storing the dependency instead of a raw pointer.
Migration
When migrating from ros-visualization/rviz
to ros2/rviz
, please see the more extensive migration guide.
Plugin Development
Plugins can extend RViz at different extension points:
- Displays
- Panels
- Tools
- Frames transformation library
- View Controllers
More information on writing plugins can be found in the plugin development guide.
CONTRIBUTING
Repository Summary
Checkout URI | https://github.com/ros2/rviz.git |
VCS Type | git |
VCS Version | dashing |
Last Updated | 2021-05-21 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
rviz2 | 6.1.8 |
rviz_assimp_vendor | 6.1.8 |
rviz_common | 6.1.8 |
rviz_default_plugins | 6.1.8 |
rviz_ogre_vendor | 6.1.8 |
rviz_rendering | 6.1.8 |
rviz_rendering_tests | 6.1.8 |
rviz_visual_testing_framework | 6.1.8 |
README
RViz
This branch is currently contained in the main ros2.repos
file of ROS 2 and can be used for ROS 2.
The latest release will be available with your ROS 2 download.
ROS 2 does not have a wiki yet. To learn about RViz and its functionality, please refer to the ROS RViz wiki page.
Features
Already ported
These features have already been ported from ros-visualization/rviz
to ros2/rviz
.
The basic documentation can still be found on the RViz wiki page.
For some displays, the documentation is updated.
Displays | Tools | View Controller | Panels |
---|---|---|---|
Camera | Move Camera | Orbit | Displays |
Fluid Pressure | Focus Camera | XY Orbit | Help |
Grid | Measure | First Person | Selections |
Grid Cells | Select | Third Person Follower | Tool Properties |
Illuminance | 2D Nav Goal | Top Down Orthographic | Views |
Image | Publish Point | ||
Laser Scan | Initial Pose | ||
Map | |||
Marker | |||
Marker Array | |||
Odometry | |||
Point Cloud (1 and 2) | |||
Point | |||
Polygon | |||
Pose | |||
Pose Array | |||
Range | |||
Relative Humidity | |||
Robot Model | |||
Temperature | |||
TF |
Not yet ported
These features have not been ported to ros2/rviz
yet.
Displays | Tools | Panels |
---|---|---|
Axes | Interact | Time |
DepthCloud | ||
Effort | ||
Interactive Marker | ||
Oculus | ||
Pose With Covariance | ||
Wrench |
Other features:
- Filtering of Topic lists by topic type
- Message filters
- Image transport features
In case you wished to see those features in RViz for ROS 2, feel free to add a pull request. Make sure to read the developer guide below and the migration guide.
New features
Pluggable transformation library
In RViz for ROS 1 the frames transformation library used is tf2 (detailed information about it can be found here). In RViz for ROS 2 the frames transformation library is now pluggable, meaning that different transformation library plugins can be loaded and changed dynamically in the gui. Developers can create and use their own plugins to provide custom transformation behavior.
Two plugins are bundled with RViz:
- a plugin for tf2 (
TFFrameTransformer
, inrviz_default_plugins
), which provides the standard tf2 functionality and which is used as a default - a trivial plugin (
IdentityFrameTransformer
, inrviz_common
), which always performs identity transforms. This plugin is used by default if the tf2 plugin is not available and no other valid plugin is specified.
As anticipated, in order for the user to choose the plugin to use, RViz provides a dedicated panel: the Transformation
panel.
Note: Not all transformation plugins are necessarily compatible with all RViz displays (e.g. some of the default displays, like the TF display, can only work with tf2).
In order to take this possibility into account, the TransformerGuard
class is provided.
Adding it to a display ensures that the display will be disabled and won’t function in case the wrong transformer is used.
More detailed information on how to write a transformation plugin and on how to handle transformation specific displays can be found in the plugin development guide.
Developer Guide
Build
Building RViz together with ROS 2
The simplest way to build from source is to use the official installation guide, since RViz is part of the official ROS 2 repos file.
https://github.com/ros2/ros2/wiki/Installation
Building RViz in a separate workspace
When developing for RViz, it can be beneficial to build it in a separate workspace.
Note: When building the current ros2 branch from source, the latest ROS 2 release for all dependencies might not be sufficient: it could be necessary to build the ROS 2 master branch. Make sure to have a source build of ROS 2 available (see installation procedure above).
Create a new workspace:
$ mkdir -p ~/rviz2_ws/src
$ cd ~/rviz2_ws/src
Clone these repositories into the source folder:
$ git clone https://github.com/ros2/rviz.git
Then build all the packages with this command:
$ colcon build --merge-install
The --merge-install
flag is optional but ensures a cleaner environment which is helpful for development.
More instructions and examples to come.
In addition to the ROS 2 Developer Guide we suggest the following.
Testing
Main rationale here is to create code that can be well tested by avoiding highly coupled components.
- Avoid free functions (cannot be mocked).
- Create abstract base classes (interface) for dependencies. (This allows for a mock to be completely independent of the actual implementing class.)
- Use only the interface in the dependent code.
- Specify dependencies as a constructor argument.
- Prefer
std::unique_ptr
for storing the dependency instead of a raw pointer.
Migration
When migrating from ros-visualization/rviz
to ros2/rviz
, please see the more extensive migration guide.
Plugin Development
Plugins can extend RViz at different extension points:
- Displays
- Panels
- Tools
- Frames transformation library
- View Controllers
More information on writing plugins can be found in the plugin development guide.
CONTRIBUTING
Repository Summary
Checkout URI | https://github.com/ros2/rviz.git |
VCS Type | git |
VCS Version | galactic |
Last Updated | 2022-12-05 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
rviz2 | 8.5.2 |
rviz_assimp_vendor | 8.5.2 |
rviz_common | 8.5.2 |
rviz_default_plugins | 8.5.2 |
rviz_ogre_vendor | 8.5.2 |
rviz_rendering | 8.5.2 |
rviz_rendering_tests | 8.5.2 |
rviz_visual_testing_framework | 8.5.2 |
README
RViz
This branch is currently contained in the main ros2.repos
file of ROS 2 and can be used for ROS 2.
The latest release will be available with your ROS 2 download.
ROS 2 does not have a wiki yet. To learn about RViz and its functionality, please refer to the ROS RViz wiki page.
Features
Already ported
These features have already been ported from ros-visualization/rviz
to ros2/rviz
.
The basic documentation can still be found on the RViz wiki page.
For some displays, the documentation is updated.
Displays | Tools | View Controller | Panels |
---|---|---|---|
Axes | Move Camera | Orbit | Displays |
Camera | Focus Camera | XY Orbit | Help |
Fluid Pressure | Measure | First Person | Selections |
Grid | Select | Third Person Follower | Time |
Grid Cells | 2D Nav Goal | Top Down Orthographic | Tool Properties |
Illuminance | Publish Point | Views | |
Image | Initial Pose | ||
Interactive Marker | Interact | ||
Laser Scan | |||
Map | |||
Marker | |||
Marker Array | |||
Odometry | |||
Point Cloud (1 and 2) | |||
Point | |||
Polygon | |||
Pose | |||
Pose Array | |||
Pose With Covariance | |||
Range | |||
Relative Humidity | |||
Robot Model | |||
Temperature | |||
TF | |||
Wrench |
Not yet ported
These features have not been ported to ros2/rviz
yet.
Displays |
---|
DepthCloud |
Effort |
Other features:
- Image transport features
- Stereo
In case you wished to see those features in RViz for ROS 2, feel free to add a pull request. Make sure to read the developer guide below and the migration guide.
New features
Pluggable transformation library
In RViz for ROS 1 the frames transformation library used is tf2 (detailed information about it can be found here). In RViz for ROS 2 the frames transformation library is now pluggable, meaning that different transformation library plugins can be loaded and changed dynamically in the gui. Developers can create and use their own plugins to provide custom transformation behavior.
Two plugins are bundled with RViz:
- a plugin for tf2 (
TFFrameTransformer
, inrviz_default_plugins
), which provides the standard tf2 functionality and which is used as a default - a trivial plugin (
IdentityFrameTransformer
, inrviz_common
), which always performs identity transforms. This plugin is used by default if the tf2 plugin is not available and no other valid plugin is specified.
As anticipated, in order for the user to choose the plugin to use, RViz provides a dedicated panel: the Transformation
panel.
Note: Not all transformation plugins are necessarily compatible with all RViz displays (e.g. some of the default displays, like the TF display, can only work with tf2).
In order to take this possibility into account, the TransformerGuard
class is provided.
Adding it to a display ensures that the display will be disabled and won’t function in case the wrong transformer is used.
More detailed information on how to write a transformation plugin and on how to handle transformation specific displays can be found in the plugin development guide.
Developer Guide
Build
Building RViz together with ROS 2
The simplest way to build from source is to use the official installation guide, since RViz is part of the official ROS 2 repos file.
https://docs.ros.org/en/rolling/Installation.html
Building RViz in a separate workspace
When developing for RViz, it can be beneficial to build it in a separate workspace.
Note: When building the current ros2 branch from source, the latest ROS 2 release for all dependencies might not be sufficient: it could be necessary to build the ROS 2 master branch. Make sure to have a source build of ROS 2 available (see installation procedure above).
Create a new workspace:
$ mkdir -p ~/rviz2_ws/src
$ cd ~/rviz2_ws/src
Clone these repositories into the source folder:
$ git clone https://github.com/ros2/rviz.git
Then build all the packages with this command:
$ colcon build --merge-install
The --merge-install
flag is optional but ensures a cleaner environment which is helpful for development.
More instructions and examples to come.
In addition to the ROS 2 Developer Guide we suggest the following.
Testing
Main rationale here is to create code that can be well tested by avoiding highly coupled components.
- Avoid free functions (cannot be mocked).
- Create abstract base classes (interface) for dependencies. (This allows for a mock to be completely independent of the actual implementing class.)
- Use only the interface in the dependent code.
- Specify dependencies as a constructor argument.
- Prefer
std::unique_ptr
for storing the dependency instead of a raw pointer.
Migration
When migrating from ros-visualization/rviz
to ros2/rviz
, please see the more extensive migration guide.
Plugin Development
Plugins can extend RViz at different extension points:
- Displays
- Panels
- Tools
- Frames transformation library
- View Controllers
More information on writing plugins can be found in the plugin development guide.
Icon Copyrights
This package contains Public Domain icons downloaded from http://tango.freedesktop.org/releases/.
Upstream Authors (2005-2009):
- Ulisse Perusin
<uli.peru@gmail.com>
- Steven Garrity
<sgarrity@silverorange.com>
- Lapo Calamandrei
<calamandrei@gmail.com>
- Ryan Collier
<rcollier@novell.com>
- Rodney Dawes
<dobey@novell.com>
- Andreas Nilsson
<nisses.mail@home.se>
- Tuomas Kuosmanen
<tigert@tigert.com>
- Garrett LeSage
<garrett@novell.com>
- Jakub Steiner
<jimmac@novell.com>
Other icons and graphics contained in this package are released into the Public Domain as well.
Authors (2012-2017):
- David Gossow
- Chad Rockey
- Kei Okada
- Julius Kammerl
- Acorn Pooley
- Rein Appeldoorn
Copyright notice for all icons and graphics in this package:
Public Domain Dedication
Copyright-Only Dedication (based on United States law) or Public Domain
Certification
The person or persons who have associated work with this document (the
"Dedicator" or "Certifier") hereby either (a) certifies that, to the best
of his knowledge, the work of authorship identified is in the public
domain of the country from which the work is published, or (b)
hereby dedicates whatever copyright the dedicators holds in the work
of authorship identified below (the "Work") to the public domain. A
certifier, moreover, dedicates any copyright interest he may have in
the associated work, and for these purposes, is described as a
"dedicator" below.
A certifier has taken reasonable steps to verify the copyright
status of this work. Certifier recognizes that his good faith efforts
may not shield him from liability if in fact the work certified is not
in the public domain.
Dedicator makes this dedication for the benefit of the public at
large and to the detriment of the Dedicator's heirs and successors.
Dedicator intends this dedication to be an overt act of relinquishment
in perpetuity of all present and future rights under copyright law,
whether vested or contingent, in the Work. Dedicator understands that
such relinquishment of all rights includes the relinquishment of all
rights to enforce (by lawsuit or otherwise) those copyrights in the
Work.
Dedicator recognizes that, once placed in the public domain, the Work
may be freely reproduced, distributed, transmitted, used, modified,
built upon, or otherwise exploited by anyone for any purpose, commercial
or non-commercial, and in any way, including by methods that have not
yet been invented or conceived.
Source: http://creativecommons.org/licenses/publicdomain/
CONTRIBUTING
Repository Summary
Checkout URI | https://github.com/ros2/rviz.git |
VCS Type | git |
VCS Version | foxy |
Last Updated | 2023-03-16 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
rviz2 | 8.2.8 |
rviz_assimp_vendor | 8.2.8 |
rviz_common | 8.2.8 |
rviz_default_plugins | 8.2.8 |
rviz_ogre_vendor | 8.2.8 |
rviz_rendering | 8.2.8 |
rviz_rendering_tests | 8.2.8 |
rviz_visual_testing_framework | 8.2.8 |
README
RViz
This branch is currently contained in the main ros2.repos
file of ROS 2 and can be used for ROS 2.
The latest release will be available with your ROS 2 download.
ROS 2 does not have a wiki yet. To learn about RViz and its functionality, please refer to the ROS RViz wiki page.
Features
Already ported
These features have already been ported from ros-visualization/rviz
to ros2/rviz
.
The basic documentation can still be found on the RViz wiki page.
For some displays, the documentation is updated.
Displays | Tools | View Controller | Panels |
---|---|---|---|
Axes | Move Camera | Orbit | Displays |
Camera | Focus Camera | XY Orbit | Help |
Fluid Pressure | Measure | First Person | Selections |
Grid | Select | Third Person Follower | Tool Properties |
Grid Cells | 2D Nav Goal | Top Down Orthographic | Views |
Illuminance | Publish Point | ||
Image | Initial Pose | ||
Interactive Marker | Interact | ||
Laser Scan | |||
Map | |||
Marker | |||
Marker Array | |||
Odometry | |||
Point Cloud (1 and 2) | |||
Point | |||
Polygon | |||
Pose | |||
Pose Array | |||
Pose With Covariance | |||
Range | |||
Relative Humidity | |||
Robot Model | |||
Temperature | |||
TF | |||
Wrench |
Not yet ported
These features have not been ported to ros2/rviz
yet.
Displays | Panels |
---|---|
DepthCloud | Time |
Effort |
Other features:
- Filtering of Topic lists by topic type
- Image transport features
- Stereo
In case you wished to see those features in RViz for ROS 2, feel free to add a pull request. Make sure to read the developer guide below and the migration guide.
New features
Pluggable transformation library
In RViz for ROS 1 the frames transformation library used is tf2 (detailed information about it can be found here). In RViz for ROS 2 the frames transformation library is now pluggable, meaning that different transformation library plugins can be loaded and changed dynamically in the gui. Developers can create and use their own plugins to provide custom transformation behavior.
Two plugins are bundled with RViz:
- a plugin for tf2 (
TFFrameTransformer
, inrviz_default_plugins
), which provides the standard tf2 functionality and which is used as a default - a trivial plugin (
IdentityFrameTransformer
, inrviz_common
), which always performs identity transforms. This plugin is used by default if the tf2 plugin is not available and no other valid plugin is specified.
As anticipated, in order for the user to choose the plugin to use, RViz provides a dedicated panel: the Transformation
panel.
Note: Not all transformation plugins are necessarily compatible with all RViz displays (e.g. some of the default displays, like the TF display, can only work with tf2).
In order to take this possibility into account, the TransformerGuard
class is provided.
Adding it to a display ensures that the display will be disabled and won’t function in case the wrong transformer is used.
More detailed information on how to write a transformation plugin and on how to handle transformation specific displays can be found in the plugin development guide.
Developer Guide
Build
Building RViz together with ROS 2
The simplest way to build from source is to use the official installation guide, since RViz is part of the official ROS 2 repos file.
https://github.com/ros2/ros2/wiki/Installation
Building RViz in a separate workspace
When developing for RViz, it can be beneficial to build it in a separate workspace.
Note: When building the current ros2 branch from source, the latest ROS 2 release for all dependencies might not be sufficient: it could be necessary to build the ROS 2 master branch. Make sure to have a source build of ROS 2 available (see installation procedure above).
Create a new workspace:
$ mkdir -p ~/rviz2_ws/src
$ cd ~/rviz2_ws/src
Clone these repositories into the source folder:
$ git clone https://github.com/ros2/rviz.git
Then build all the packages with this command:
$ colcon build --merge-install
The --merge-install
flag is optional but ensures a cleaner environment which is helpful for development.
More instructions and examples to come.
In addition to the ROS 2 Developer Guide we suggest the following.
Testing
Main rationale here is to create code that can be well tested by avoiding highly coupled components.
- Avoid free functions (cannot be mocked).
- Create abstract base classes (interface) for dependencies. (This allows for a mock to be completely independent of the actual implementing class.)
- Use only the interface in the dependent code.
- Specify dependencies as a constructor argument.
- Prefer
std::unique_ptr
for storing the dependency instead of a raw pointer.
Migration
When migrating from ros-visualization/rviz
to ros2/rviz
, please see the more extensive migration guide.
Plugin Development
Plugins can extend RViz at different extension points:
- Displays
- Panels
- Tools
- Frames transformation library
- View Controllers
More information on writing plugins can be found in the plugin development guide.
Icon Copyrights
This package contains Public Domain icons downloaded from http://tango.freedesktop.org/releases/.
Upstream Authors (2005-2009):
- Ulisse Perusin
<uli.peru@gmail.com>
- Steven Garrity
<sgarrity@silverorange.com>
- Lapo Calamandrei
<calamandrei@gmail.com>
- Ryan Collier
<rcollier@novell.com>
- Rodney Dawes
<dobey@novell.com>
- Andreas Nilsson
<nisses.mail@home.se>
- Tuomas Kuosmanen
<tigert@tigert.com>
- Garrett LeSage
<garrett@novell.com>
- Jakub Steiner
<jimmac@novell.com>
Other icons and graphics contained in this package are released into the Public Domain as well.
Authors (2012-2017):
- David Gossow
- Chad Rockey
- Kei Okada
- Julius Kammerl
- Acorn Pooley
- Rein Appeldoorn
Copyright notice for all icons and graphics in this package:
Public Domain Dedication
Copyright-Only Dedication (based on United States law) or Public Domain
Certification
The person or persons who have associated work with this document (the
"Dedicator" or "Certifier") hereby either (a) certifies that, to the best
of his knowledge, the work of authorship identified is in the public
domain of the country from which the work is published, or (b)
hereby dedicates whatever copyright the dedicators holds in the work
of authorship identified below (the "Work") to the public domain. A
certifier, moreover, dedicates any copyright interest he may have in
the associated work, and for these purposes, is described as a
"dedicator" below.
A certifier has taken reasonable steps to verify the copyright
status of this work. Certifier recognizes that his good faith efforts
may not shield him from liability if in fact the work certified is not
in the public domain.
Dedicator makes this dedication for the benefit of the public at
large and to the detriment of the Dedicator's heirs and successors.
Dedicator intends this dedication to be an overt act of relinquishment
in perpetuity of all present and future rights under copyright law,
whether vested or contingent, in the Work. Dedicator understands that
such relinquishment of all rights includes the relinquishment of all
rights to enforce (by lawsuit or otherwise) those copyrights in the
Work.
Dedicator recognizes that, once placed in the public domain, the Work
may be freely reproduced, distributed, transmitted, used, modified,
built upon, or otherwise exploited by anyone for any purpose, commercial
or non-commercial, and in any way, including by methods that have not
yet been invented or conceived.
Source: http://creativecommons.org/licenses/publicdomain/
CONTRIBUTING
Repository Summary
Checkout URI | https://github.com/ros2/rviz.git |
VCS Type | git |
VCS Version | iron |
Last Updated | 2024-11-26 |
Dev Status | MAINTAINED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
rviz2 | 12.4.10 |
rviz_assimp_vendor | 12.4.10 |
rviz_common | 12.4.10 |
rviz_default_plugins | 12.4.10 |
rviz_ogre_vendor | 12.4.10 |
rviz_rendering | 12.4.10 |
rviz_rendering_tests | 12.4.10 |
rviz_visual_testing_framework | 12.4.10 |
README
RViz
This branch is currently contained in the main ros2.repos
file of ROS 2 and can be used for ROS 2.
The latest release will be available with your ROS 2 download.
ROS 2 does not have a wiki yet. To learn about RViz and its functionality, please refer to the ROS RViz wiki page.
Features
Already ported
These features have already been ported from ros-visualization/rviz
to ros2/rviz
.
The basic documentation can still be found on the RViz wiki page.
For some displays, the documentation is updated.
Displays | Tools | View Controller | Panels |
---|---|---|---|
Axes | Move Camera | Orbit | Displays |
Camera | Focus Camera | XY Orbit | Help |
DepthCloud | Measure | First Person | Selections |
Effort | Select | Third Person Follower | Time |
Fluid | 2D Nav Goal | Top Down Orthographic | Tool Properties |
Grid | Publish Point | Views | |
Grid Cells | Initial Pose | ||
Illuminance | Interact | ||
Image | |||
Interactive Marker | |||
Laser Scan | |||
Map | |||
Marker | |||
Marker Array | |||
Odometry | |||
Point Cloud (1 and 2) | |||
Point | |||
Polygon | |||
Pose | |||
Pose Array | |||
Pose With Covariance | |||
Range | |||
Relative Humidity | |||
Robot Model | |||
Temperature | |||
TF | |||
Wrench |
Not yet ported
Other features:
- Stereo
In case you wished to see those features in RViz for ROS 2, feel free to add a pull request. Make sure to read the developer guide below and the migration guide.
New features
Pluggable transformation library
In RViz for ROS 1 the frames transformation library used is tf2 (detailed information about it can be found here). In RViz for ROS 2 the frames transformation library is now pluggable, meaning that different transformation library plugins can be loaded and changed dynamically in the gui. Developers can create and use their own plugins to provide custom transformation behavior.
Two plugins are bundled with RViz:
- a plugin for tf2 (
TFFrameTransformer
, inrviz_default_plugins
), which provides the standard tf2 functionality and which is used as a default - a trivial plugin (
IdentityFrameTransformer
, inrviz_common
), which always performs identity transforms. This plugin is used by default if the tf2 plugin is not available and no other valid plugin is specified.
As anticipated, in order for the user to choose the plugin to use, RViz provides a dedicated panel: the Transformation
panel.
Note: Not all transformation plugins are necessarily compatible with all RViz displays (e.g. some of the default displays, like the TF display, can only work with tf2).
In order to take this possibility into account, the TransformerGuard
class is provided.
Adding it to a display ensures that the display will be disabled and won’t function in case the wrong transformer is used.
More detailed information on how to write a transformation plugin and on how to handle transformation specific displays can be found in the plugin development guide.
Developer Guide
Build
Building RViz together with ROS 2
The simplest way to build from source is to use the official installation guide, since RViz is part of the official ROS 2 repos file.
https://docs.ros.org/en/rolling/Installation.html
Building RViz in a separate workspace
When developing for RViz, it can be beneficial to build it in a separate workspace.
Note: When building the current ros2 branch from source, the latest ROS 2 release for all dependencies might not be sufficient: it could be necessary to build the ROS 2 master branch. Make sure to have a source build of ROS 2 available (see installation procedure above).
Create a new workspace:
$ mkdir -p ~/rviz2_ws/src
$ cd ~/rviz2_ws/src
Clone these repositories into the source folder:
$ git clone https://github.com/ros2/rviz.git
Then build all the packages with this command:
$ colcon build --merge-install
The --merge-install
flag is optional but ensures a cleaner environment which is helpful for development.
More instructions and examples to come.
In addition to the ROS 2 Developer Guide we suggest the following.
Testing
Main rationale here is to create code that can be well tested by avoiding highly coupled components.
- Avoid free functions (cannot be mocked).
- Create abstract base classes (interface) for dependencies. (This allows for a mock to be completely independent of the actual implementing class.)
- Use only the interface in the dependent code.
- Specify dependencies as a constructor argument.
- Prefer
std::unique_ptr
for storing the dependency instead of a raw pointer.
Migration
When migrating from ros-visualization/rviz
to ros2/rviz
, please see the more extensive migration guide.
Plugin Development
Plugins can extend RViz at different extension points:
- Displays
- Panels
- Tools
- Frames transformation library
- View Controllers
More information on writing plugins can be found in the plugin development guide.
Icon Copyrights
This package contains Public Domain icons downloaded from http://tango.freedesktop.org/releases/.
Upstream Authors (2005-2009):
- Ulisse Perusin
<uli.peru@gmail.com>
- Steven Garrity
<sgarrity@silverorange.com>
- Lapo Calamandrei
<calamandrei@gmail.com>
- Ryan Collier
<rcollier@novell.com>
- Rodney Dawes
<dobey@novell.com>
- Andreas Nilsson
<nisses.mail@home.se>
- Tuomas Kuosmanen
<tigert@tigert.com>
- Garrett LeSage
<garrett@novell.com>
- Jakub Steiner
<jimmac@novell.com>
Other icons and graphics contained in this package are released into the Public Domain as well.
Authors (2012-2017):
- David Gossow
- Chad Rockey
- Kei Okada
- Julius Kammerl
- Acorn Pooley
- Rein Appeldoorn
Copyright notice for all icons and graphics in this package:
Public Domain Dedication
Copyright-Only Dedication (based on United States law) or Public Domain
Certification
The person or persons who have associated work with this document (the
"Dedicator" or "Certifier") hereby either (a) certifies that, to the best
of his knowledge, the work of authorship identified is in the public
domain of the country from which the work is published, or (b)
hereby dedicates whatever copyright the dedicators holds in the work
of authorship identified below (the "Work") to the public domain. A
certifier, moreover, dedicates any copyright interest he may have in
the associated work, and for these purposes, is described as a
"dedicator" below.
A certifier has taken reasonable steps to verify the copyright
status of this work. Certifier recognizes that his good faith efforts
may not shield him from liability if in fact the work certified is not
in the public domain.
Dedicator makes this dedication for the benefit of the public at
large and to the detriment of the Dedicator's heirs and successors.
Dedicator intends this dedication to be an overt act of relinquishment
in perpetuity of all present and future rights under copyright law,
whether vested or contingent, in the Work. Dedicator understands that
such relinquishment of all rights includes the relinquishment of all
rights to enforce (by lawsuit or otherwise) those copyrights in the
Work.
Dedicator recognizes that, once placed in the public domain, the Work
may be freely reproduced, distributed, transmitted, used, modified,
built upon, or otherwise exploited by anyone for any purpose, commercial
or non-commercial, and in any way, including by methods that have not
yet been invented or conceived.
Source: http://creativecommons.org/licenses/publicdomain/