Contents Menu Expand Light mode Dark mode Auto light/dark, in light mode Auto light/dark, in dark mode Skip to content
Logo

Installation Manual

  • 1. Linux binary installation
  • 2. Linux installation from sources
  • 3. Docker installation

Overview

  • 1. Vulcanexus Overview
  • 2. Vulcanexus Middleware
  • 3. Developer Tools
    • 3.1. ROS 2 QoS Profiles Manager
    • 3.2. ROS 2 Monitor
    • 3.3. Fast DDS Statistics Backend
    • 3.4. ROS 2 Shapes Demo
    • 3.5. ROS 2 Router
    • 3.6. ROS 2 Record & Replay
    • 3.7. Fast DDS Spy
    • 3.8. Webots
  • 4. Vulcanexus Metapackages
  • 5. ROS 2 Documentation
    • 5.1. Installation
      • 5.1.1. Ubuntu (deb packages)
      • 5.1.2. Windows (binary)
      • 5.1.3. RHEL (RPM packages)
      • 5.1.4. Alternatives
        • 5.1.4.1. Ubuntu (source)
        • 5.1.4.2. Ubuntu (binary)
        • 5.1.4.3. Windows (source)
        • 5.1.4.4. RHEL (source)
        • 5.1.4.5. RHEL (binary)
        • 5.1.4.6. macOS (source)
        • 5.1.4.7. Latest development (source)
      • 5.1.5. Maintain source checkout
      • 5.1.6. Testing with pre-release binaries
      • 5.1.7. RMW implementations
        • 5.1.7.1. DDS implementations
          • 5.1.7.1.1. Eclipse Cyclone DDS
          • 5.1.7.1.2. GurumNetworks GurumDDS
          • 5.1.7.1.3. RTI Connext DDS
          • 5.1.7.1.4. eProsima Fast DDS
        • 5.1.7.2. Non-DDS-Implementations
          • 5.1.7.2.1. Zenoh
    • 5.2. Distributions
      • 5.2.2.1. Jazzy Jalisco (jazzy)
        • 5.2.2.1.1. Jazzy Jalisco changelog
      • 5.2.2.2. Humble Hawksbill (humble)
        • 5.2.2.2.1. Humble Hawksbill changelog
      • 5.2.2.3. Rolling Ridley (rolling)
      • 5.2.2.4. Development Distribution
        • 5.2.2.4.1. Kilted Kaiju (codename ‘kilted’; May, 2025)
          • ROS 2 Kilted Kaiju Complete Changelog
      • 5.2.2.5. End-of-Life Distributions
        • 5.2.2.5.1. Iron Irwini (iron)
          • Iron Irwini Changelog
        • 5.2.2.5.2. Galactic Geochelone (galactic)
          • Galactic Geochelone changelog
        • 5.2.2.5.3. Foxy Fitzroy (foxy)
        • 5.2.2.5.4. Eloquent Elusor (eloquent)
        • 5.2.2.5.5. Dashing Diademata (dashing)
        • 5.2.2.5.6. Crystal Clemmys (crystal)
        • 5.2.2.5.7. Bouncy Bolson (bouncy)
        • 5.2.2.5.8. Ardent Apalone (ardent)
        • 5.2.2.5.9. Beta 3 (r2b3)
        • 5.2.2.5.10. Beta 2 (r2b2)
        • 5.2.2.5.11. Beta 1 (Asphalt)
        • 5.2.2.5.12. Alphas
      • 5.2.2.6. Development process for a release
    • 5.3. Tutorials
      • 5.3.1. Beginner: CLI tools
        • 5.3.1.1. Configuring environment
        • 5.3.1.2. Using turtlesim, ros2, and rqt
        • 5.3.1.3. Understanding nodes
        • 5.3.1.4. Understanding topics
        • 5.3.1.5. Understanding services
        • 5.3.1.6. Understanding parameters
        • 5.3.1.7. Understanding actions
        • 5.3.1.8. Using rqt_console to view logs
        • 5.3.1.9. Launching nodes
        • 5.3.1.10. Recording and playing back data
      • 5.3.2. Beginner: Client libraries
        • 5.3.2.1. Using colcon to build packages
        • 5.3.2.2. Creating a workspace
        • 5.3.2.3. Creating a package
        • 5.3.2.4. Writing a simple publisher and subscriber (C++)
        • 5.3.2.5. Writing a simple publisher and subscriber (Python)
        • 5.3.2.6. Writing a simple service and client (C++)
        • 5.3.2.7. Writing a simple service and client (Python)
        • 5.3.2.8. Creating custom msg and srv files
        • 5.3.2.9. Implementing custom interfaces
        • 5.3.2.10. Using parameters in a class (C++)
        • 5.3.2.11. Using parameters in a class (Python)
        • 5.3.2.12. Using ros2doctor to identify issues
        • 5.3.2.13. Creating and using plugins (C++)
      • 5.3.3. Intermediate
        • 5.3.3.1. Managing Dependencies with rosdep
        • 5.3.3.2. Creating an action
        • 5.3.3.3. Writing an action server and client (C++)
        • 5.3.3.4. Writing an action server and client (Python)
        • 5.3.3.5. Writing a Composable Node (C++)
        • 5.3.3.6. Composing multiple nodes in a single process
        • 5.3.3.7. Using the Node Interfaces Template Class (C++)
        • 5.3.3.8. Monitoring for parameter changes (C++)
        • 5.3.3.9. Monitoring for parameter changes (Python)
        • 5.3.3.10. Launch
          • 5.3.3.10.1. Creating a launch file
          • 5.3.3.10.2. Integrating launch files into ROS 2 packages
          • 5.3.3.10.3. Using substitutions
          • 5.3.3.10.4. Using event handlers
          • 5.3.3.10.5. Managing large projects
        • 5.3.3.11. tf2
          • 5.3.3.11.1. Introducing tf2
          • 5.3.3.11.2. Writing a static broadcaster (Python)
          • 5.3.3.11.3. Writing a static broadcaster (C++)
          • 5.3.3.11.4. Writing a broadcaster (Python)
          • 5.3.3.11.5. Writing a broadcaster (C++)
          • 5.3.3.11.6. Writing a listener (Python)
          • 5.3.3.11.7. Writing a listener (C++)
          • 5.3.3.11.8. Adding a frame (Python)
          • 5.3.3.11.9. Adding a frame (C++)
          • 5.3.3.11.10. Using time (C++)
          • 5.3.3.11.11. Traveling in time (C++)
          • 5.3.3.11.12. Debugging
          • 5.3.3.11.13. Quaternion fundamentals
          • 5.3.3.11.14. Using stamped datatypes with tf2_ros::MessageFilter
        • 5.3.3.12. Testing
          • Running Tests in ROS 2 from the Command Line
          • Writing Basic Tests with C++ with GTest
          • Writing Basic Tests with Python
          • Writing Basic Integration Tests with launch_testing
          • Testing Your Code with the ROS Build Farm
        • 5.3.3.13. URDF
          • 5.3.3.13.1. Building a visual robot model from scratch
          • 5.3.3.13.2. Building a movable robot model
          • 5.3.3.13.3. Adding physical and collision properties
          • 5.3.3.13.4. Using Xacro to clean up your code
          • 5.3.3.13.5. Using URDF with robot_state_publisher (C++)
          • 5.3.3.13.6. Using URDF with robot_state_publisher (Python)
          • 5.3.3.13.7. Generating an URDF File
        • 5.3.3.14. RViz
          • 5.3.3.14.1. RViz User Guide
          • 5.3.3.14.2. Building a Custom RViz Display
          • 5.3.3.14.3. Building a Custom RViz Panel
          • 5.3.3.14.4. Marker: Display types
      • 5.3.4. Advanced
        • 5.3.4.1. Enabling topic statistics (C++)
        • 5.3.4.2. Using Fast DDS Discovery Server as discovery protocol [community-contributed]
        • 5.3.4.3. Implementing a custom memory allocator
        • 5.3.4.4. Ament Lint CLI Utilities
        • 5.3.4.5. Unlocking the potential of Fast DDS middleware [community-contributed]
        • 5.3.4.6. Improved Dynamic Discovery
        • 5.3.4.7. Recording a bag from a node (C++)
        • 5.3.4.8. Recording a bag from a node (Python)
        • 5.3.4.9. Reading from a bag file (C++)
        • 5.3.4.10. How to use ros2_tracing to trace and analyze an application
        • 5.3.4.11. Simulators
          • 5.3.4.11.1. Webots
            • Installation (Ubuntu)
            • Installation (Windows)
            • Installation (macOS)
            • Setting up a robot simulation (Basic)
            • Setting up a robot simulation (Advanced)
            • Setting up a Reset Handler
            • The Ros2Supervisor Node
          • 5.3.4.11.2. Gazebo
            • Setting up a robot simulation (Gazebo)
        • 5.3.4.12. Security
          • 5.3.4.12.1. Setting up security
          • 5.3.4.12.2. Understanding the security keystore
          • 5.3.4.12.3. Ensuring security across machines
          • 5.3.4.12.4. Examining network traffic
          • 5.3.4.12.5. Setting access controls
          • 5.3.4.12.6. Deployment Guidelines
      • 5.3.5. Demos
        • 5.3.5.1. Using quality-of-service settings for lossy networks
        • 5.3.5.2. Managing nodes with managed lifecycles
        • 5.3.5.3. Setting up efficient intra-process communication
        • 5.3.5.4. Recording and playing back data with rosbag using the ROS 1 bridge
        • 5.3.5.5. Understanding real-time programming
        • 5.3.5.6. Experimenting with a dummy robot
        • 5.3.5.7. Logging
        • 5.3.5.8. Creating a content filtering subscription
        • 5.3.5.9. Configure service introspection
        • 5.3.5.10. Wait for acknowledgment
      • 5.3.6. Miscellaneous
        • 5.3.6.1. Deploying on IBM Cloud Kubernetes [community-contributed]
        • 5.3.6.2. Using Eclipse Oxygen with rviz2 [community-contributed]
        • 5.3.6.3. Building a real-time Linux kernel [community-contributed]
        • 5.3.6.4. Building a package with Eclipse 2021-06
    • 5.4. How-to Guides
      • 5.4.1. Installation troubleshooting
      • 5.4.2. Developing a ROS 2 package
      • 5.4.3. Documenting a ROS 2 package
      • 5.4.4. ament_cmake user documentation
      • 5.4.5. ament_cmake_python user documentation
      • 5.4.6. Migrating from ROS 1 to ROS 2
        • 5.4.6.1. Migrating Packages
        • 5.4.6.2. Migrating your package.xml to format 2
        • 5.4.6.3. Migrating Interfaces
        • 5.4.6.4. Migrating a C++ Package Example
        • 5.4.6.5. Migrating C++ Packages Reference
        • 5.4.6.6. Migrating a Python Package Example
        • 5.4.6.7. Migrating Python Packages Reference
        • 5.4.6.8. Migrating Launch Files
        • 5.4.6.9. Migrating Parameters
        • 5.4.6.10. Migrating Scripts
      • 5.4.7. Using XML, YAML, and Python for ROS 2 Launch Files
      • 5.4.8. Using ROS 2 launch to launch composable nodes
      • 5.4.9. Passing ROS arguments to nodes via the command-line
      • 5.4.10. Synchronous vs. asynchronous service clients
      • 5.4.11. DDS tuning information
      • 5.4.12. rosbag2: Overriding QoS Policies
      • 5.4.13. Working with multiple ROS 2 middleware implementations
      • 5.4.14. Cross-compilation
      • 5.4.15. Releasing a Package
        • 5.4.15.1. Index Your Packages
        • 5.4.15.2. First Time Release
        • 5.4.15.3. Subsequent Releases
        • 5.4.15.4. Release Team / Repository
        • 5.4.15.5. Release Track
      • 5.4.16. Using Python Packages with ROS 2
      • 5.4.17. Running ROS 2 nodes in Docker [community-contributed]
      • 5.4.18. Visualizing ROS 2 data with Foxglove Studio
      • 5.4.19. ROS 2 Core Maintainer Guide
      • 5.4.20. Building a custom deb package
      • 5.4.21. Building ROS 2 with tracing
      • 5.4.22. Topics vs Services vs Actions
      • 5.4.23. Using variants
      • 5.4.24. Using the ros2 param command-line tool
      • 5.4.25. Using ros1_bridge with upstream ROS on Ubuntu 22.04
      • 5.4.26. Configure Zero Copy Loaned Messages
      • 5.4.27. ROS 2 on Raspberry Pi
      • 5.4.28. Using Callback Groups
      • 5.4.29. Getting Backtraces in ROS 2
      • 5.4.30. IDEs and Debugging [community-contributed]
      • 5.4.31. Setup ROS 2 with VSCode and Docker [community-contributed]
      • 5.4.32. Using Custom Rosdistro Version
    • 5.5. Concepts
      • 5.5.1. Basic Concepts
        • 5.5.1.1. Nodes
        • 5.5.1.2. Discovery
        • 5.5.1.3. Interfaces
        • 5.5.1.4. Topics
        • 5.5.1.5. Services
        • 5.5.1.6. Actions
        • 5.5.1.7. Parameters
        • 5.5.1.8. Introspection with command line tools
        • 5.5.1.9. Launch
        • 5.5.1.10. Client libraries
      • 5.5.2. Intermediate Concepts
        • 5.5.2.1. The ROS_DOMAIN_ID
        • 5.5.2.2. Different ROS 2 DDS/RTPS vendors
        • 5.5.2.3. Logging and logger configuration
        • 5.5.2.4. Quality of Service settings
        • 5.5.2.5. Executors
        • 5.5.2.6. Topic statistics
        • 5.5.2.7. Overview and usage of RQt
        • 5.5.2.8. Composition
        • 5.5.2.9. Cross-compilation
        • 5.5.2.10. ROS 2 Security
        • 5.5.2.11. Tf2
      • 5.5.3. Advanced Concepts
        • 5.5.3.1. The build system
        • 5.5.3.2. Internal ROS 2 interfaces
        • 5.5.3.3. ROS 2 middleware implementations
    • 5.6. Contact
    • 5.7. The ROS 2 Project
      • 5.7.1. Contributing
        • ROS 2 developer guide
        • Code style and language versions
        • Quality guide: ensuring code quality
        • ROS Build Farms
        • Windows Tips and Tricks
        • Contributing to ROS 2 Documentation
      • 5.7.2. Features Status
      • 5.7.3. Feature Ideas
      • 5.7.4. Roadmap
      • 5.7.5. ROSCon Talks
      • 5.7.6. Project Governance
      • 5.7.7. Marketing
      • 5.7.8. Metrics
    • 5.8. Package Docs
    • 5.9. Related Projects
      • 5.9.4.1. Intel ROS 2 Projects
      • 5.9.4.2. NVIDIA ROS 2 Projects
    • 5.10. Glossary
    • 5.11. Citations
  • 6. micro-ROS Documentation
    • 6.1. Getting started micro-ROS
    • 6.2. Build System Components
    • 6.3. micro-ROS User API
      • 6.3.1. Nodes
      • 6.3.2. Publishers and subscribers
      • 6.3.3. Services
      • 6.3.4. Executor and timers
      • 6.3.5. Actions
      • 6.3.6. Parameter Server
      • 6.3.7. Middleware API
      • 6.3.8. micro-ROS Utilities
      • 6.3.9. QoS configuration
      • 6.3.10. Multithreading
    • 6.4. Benchmarking
  • 7. Vulcanexus Enhancements
    • 7.1. Support for Fast DDS v3
    • 7.2. Topic Keys
    • 7.3. Easy Mode

Tutorials

  • 1. Vulcanexus Core Tutorials
    • 1.1. Vulcanexus WiFi & Large Data Tutorials
      • 1.1.1. Easy Mode Tutorial
      • 1.1.2. Easy Mode CLI Tutorial
      • 1.1.3. How to solve wireless network issues in ROS 2
      • 1.1.4. How to handle large data video streaming in ROS 2
      • 1.1.5. How to compress images for video streaming in ROS 2
    • 1.2. Scalability and Large Scale Networks Tutorials
      • 1.2.1. How to Use a Discovery Server to Optimize ROS 2 Node Discovery
      • 1.2.2. How to Use DDS Router for Scalable ROS 2 Network Communication
    • 1.3. Discovery Server Tutorials
      • 1.3.1. Discovery Server Minimal Example
    • 1.4. Vulcanexus Security Tutorials
      • 1.4.1. Storing private keys in Hardware Secure Modules (HSM)
    • 1.5. Vulcanexus QoS Tutorials
      • 1.5.1. Configuring Fast-DDS QoS via XML profiles
      • 1.5.2. Modifying Ownership and Ownership Strength QoS Policy
      • 1.5.3. Modifying Partition QoS Policy
      • 1.5.4. Persistent Data using Durability QoS
      • 1.5.5. Static discovery between ROS 2 nodes with Initial Peers
      • 1.5.6. Change mutable QoS through get native API
    • 1.6. Vulcanexus Deployment Tutorials
      • 1.6.1. Communication between Vulcanexus and Fast DDS using ROS 2 generated IDLs
      • 1.6.2. Customizing Network Transports
      • 1.6.3. Connecting Nodes over an External Network
      • 1.6.4. Fast DDS - Vulcanexus Topic Intercommunication
      • 1.6.5. Static Discovery
      • 1.6.6. Modify Discovery Server locators on run-time
      • 1.6.7. TCP over WAN with Discovery Server
      • 1.6.8. Enabling multicast communication
      • 1.6.9. Topic Keys Tutorial
      • 1.6.10. Topic Instances Subscription Filtering Tutorial
  • 2. Vulcanexus Tools Tutorials
    • 2.1. ROS 2 network statistics inspection with ROS 2 Monitor
    • 2.2. ROS 2 recording with DDS Record & Replay
    • 2.3. Monitoring ROS 2 with Fast DDS Statistics Backend
    • 2.4. Fast DDS Statistics Backend Monitoring to SQL
    • 2.5. Hand-on ROS 2 Shapes Demo
    • 2.6. ROS 2 network statistics inspection with Prometheus
  • 3. Vulcanexus Cloud Tutorials
    • 3.1. Change ROS 2 Domain Id
    • 3.2. Change ROS 2 Domain to Discovery Server
    • 3.3. Debugging ROS 2 Router
    • 3.4. Configuring ROS 2 Router’s Topic QoS
    • 3.5. Vulcanexus Cloud and Kubernetes
    • 3.6. Edge-Cloud communication on WAN
    • 3.7. Edge-Cloud TLS communication on WAN
    • 3.8. Edge-Edge communication via Repeater
    • 3.9. Cloud ROS 2 MicroServices
    • 3.10. ROS 2 Router configuration via XML profiles
    • 3.11. ROS 2 Router configuration with Forwarding Routes
    • 3.12. Secure communications with ROS 2 Router
  • 4. Vulcanexus Micro Tutorials
    • 4.1. Custom Transports
    • 4.2. Creating custom types
    • 4.3. Reconnections and liveliness
    • 4.4. Integrating micro-ROS
    • 4.5. Memory management
    • 4.6. micro-ROS and Discovery Server

Use cases

  • 1. Vulcanexus Use Cases
    • 1.1. Mapping Webots environment with ROSbot 2R teleoperation
    • 1.2. Large data communication with ROS 2 (a practical example)
    • 1.3. Keyed Topics in ROS 2 Turtlesim Demo

Support

  • 1. Supported platforms
  • 2. Vulcanexus Releases
    • 2.1. Jazzy Jolo (v4.3.0)
    • 2.2. Jazzy Jolo previous versions
    • 2.3. Iron Imagination (v3.4.0)
    • 2.4. Iron Imagination previous versions
    • 2.5. Humble Hierro (v2.7.0)
    • 2.6. Humble Hierro previous versions
    • 2.7. Galactic Gamble

Appendixes

  • Glossary
Back to top

4. Vulcanexus Micro Tutorials¶

micro-ROS already provides several tutorials that can be also run within Vulcanexus. Please, visit micro-ROS tutorial webpage.

  • 4.1. Custom Transports
  • 4.2. Creating custom types
  • 4.3. Reconnections and liveliness
  • 4.4. Integrating micro-ROS
  • 4.5. Memory management
  • 4.6. micro-ROS and Discovery Server
Next
4.1. Custom Transports
Previous
3.12. Secure communications with ROS 2 Router
Copyright © 2022, eProsima
Made with Furo