Skip to content

m-elwin/async_experiments

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ROS 2 Asynchronous Service Client

Overview

Provides examples for calling ROS 2 services asynchronously from python. For now the repository is focused on single-threaded python nodes.

Nodes

  • delay_server: Offers a /delay (std_srvs/srv/Empty) service that delays for 3 seconds before returning
  • deadlock: This node calls /delay improperly and deadlocks
  • await: This node uses python asyncio to wait for the service to complete
  • future: This node directly polls a future object after calling the service
  • yield: This node uses python generators to help sequence a pattern

Usage

  • It is often useful to run the server and the experiment node in separate windows, to see how they interact:
    ros2 run async_experiments delay_server # run the delay server
    ros2 run async_experiments <deadlock|await|future|yield> # run the node of your choice
        
  • A launchfile can also be used: ros2 launch async_experiments experiment.launch.xml experiment:=<deadlock|await|future|yield>

About

Asynchronous service client experiments for ros2

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages