synchros2
  • Getting Started
    • Installation
      • Prerequisites
      • Install and Build synchros2
    • Quickstart
      • Overview
      • Your First synchros2 Code
        • Interface
        • Writing and Running the Code
      • Analyzing the Code
        • Analyzing the Output
      • Next Steps
  • Concepts
    • Process-wide APIs
      • Nodes v. Processes
      • ROS 2 Awareness for Processes
      • Setting up Single Node Processes
      • Setting up Multi-Node Processes
      • Interactive Multi-Node Applications
      • Command-Line Single Node Applications
    • Actionable and Serviced APIs
      • Services
        • Invoking a service synchronously
        • Invoking a service asynchronously
      • Actions
        • Invoking an action synchronously
        • Invoking an action asynchronously
    • Message Feeds
      • Looping over topic messages
      • Waiting for the next topic message
      • Waiting for a specific topic message
      • Setting up a message callback
      • Synchronizing topic messages
      • Adapting topic messages
      • Fetch the last 10 topic messages
    • Executors and Callback Groups
      • Executors
        • rclpy.executors.SingleThreadedExecutor
        • rclpy.executors.MultiThreadedExecutor
        • synchros2.executors.AutoScalingMultiThreadedExecutor
      • Callback groups
        • rclpy.callback_groups.MutuallyExclusiveCallbackGroup
        • rclpy.callback_groups.ReentrantCallbackGroup
        • synchros2.callback_groups.NonReentrantCallbackGroup
      • Utilities
    • Logging Interoperability
      • Log bridging
      • API review
  • Guides
    • Effective synchros2
      • Prefer process-wide APIs over direct node subclassing
      • Use ros_scope for libraries, ros_process for applications
      • Subclass synchros2.node.Node for custom nodes
      • Avoid blocking in node initialization
      • Use create_task to dispatch background work
      • Use single-threaded executor for time-sensitive applications
      • Use Python’s logging module for general logging
    • Integration Testing with synchros2
      • Considerations
      • Rules of Thumb
      • Writing integration tests using pytest (recommended)
      • Writing integration tests using unittest
      • Adding integration tests to a package
      • Useful References
    • Migrating from rclpy to synchros2
      • Example
    • PyTorch Interoperability
      • Idioms
        • Foreground inference only
        • Background inference, foreground threads
        • Background threads, foreground inference
        • Callback groups with thread affinity
      • Appendix
  • Tutorials
    • Timers and Callbacks with synchros2
      • Prerequisites
      • Introduction
      • Doing Work in a Message Callback
        • Writing and Running the Code
        • Understanding the Code
      • Doing Work with Timers
        • Writing and Running the Code
        • Understanding the Code
        • Analyzing the Output
      • Further Thoughts
        • Should I Do Work in a Subscription Callback or a Timer Callback?
        • Can We Miss Messages?
      • Next Steps
    • Actions with synchros2
      • Prerequisites
      • Introduction
      • Writing and Running the Code
        • Action Interface
        • Action Server
        • Action Client
        • Running
      • Analyzing the Code
        • Server
        • Client
      • Action Exceptions
      • Next Steps
    • Using TF with synchros2
      • Prerequisites
      • What is TF?
      • What does synchros2 do for TF?
      • Transform Listeners and synchros2
        • Transform Listener and uses_tf
        • Using TransformListenerWrapper
  • FAQ
    • Is synchros2 an alternative to rclpy?
    • What are these deadlocks synchros2 solves?
  • Python API
    • synchros2 package
      • Subpackages
        • synchros2.launch package
      • Submodules
        • synchros2.action module
        • synchros2.action_client module
        • synchros2.action_handle module
        • synchros2.callables module
        • synchros2.callback_groups module
        • synchros2.clock module
        • synchros2.context module
        • synchros2.executors module
        • synchros2.feeds module
        • synchros2.filters module
        • synchros2.futures module
        • synchros2.graph module
        • synchros2.logging module
        • synchros2.node module
        • synchros2.process module
        • synchros2.publisher module
        • synchros2.scope module
        • synchros2.service module
        • synchros2.service_handle module
        • synchros2.single_goal_action_server module
        • synchros2.single_goal_multiple_action_servers module
        • synchros2.static_transform_broadcaster module
        • synchros2.subscription module
        • synchros2.tf_listener_wrapper module
        • synchros2.time module
        • synchros2.type_hints module
        • synchros2.utilities module
      • Module contents
  • Files
    • PACKAGE
    • CHANGELOG
      • Changelog for package synchros2
        • 1.0.4 (2025-11-18)
        • 1.0.3 (2025-11-18)
        • 1.0.2 (2025-11-12)
        • 1.0.1 (2025-11-12)
        • 1.0.0 (2025-11-07)
    • README
      • synchros2
        • Features
  • Links
    • Rosindex
    • Repository
synchros2
  • Guides
  • View page source

Guides

  • Effective synchros2
  • Integration Testing with synchros2
  • Migrating from rclpy to synchros2
  • PyTorch Interoperability
Previous Next

© Copyright 2025, Robotics and AI Institute LLC dba RAI Institute.

Built with Sphinx using a theme provided by Read the Docs.