Synchronization between Python and Gazebo Classic via YARP.
Project description
gazebo-yarp-synchronizer
Synchronization with Gazebo Classic via YARP. With Python batteries.
This project is the client side of the Clock Plugin included in robotology/gazebo-yarp-plugins
, with some sugar on top.
It provides GazeboYarpSynchronizer
, a new class that extends the automatically generated resources from the thrift service and provides initialization and termination helpers.
The main scope of this repository is providing a PyPI package for Python usage, but nothing prevents importing and using it from plain C++.
Dependencies
gazebo-yarp-synchronizer
expects to find installed and configured the following dependencies:
Installation
pip3 install gazebo-yarp-synchronizer
Usage
In different terminals, execute:
# 1. Start the YARP server
yarpserver
# 2. Open Gazebo paused
gazebo -u -slibgazebo_yarp_clock.so
# 3. Make sure that YARP is running
yarp detect
# 4. Open the Python interpreter
ipython
Then, in the Python interpreter:
# Import the module
>>> from gazebo_yarp_synchronizer import GazeboYarpSynchronizer
# Create the Gazebo synchronizer
>>> gys = GazeboYarpSynchronizer(gazebo_rpc_port_name="/clock/rpc")
# Initialize the Gazebo synchronizer
>>> gys.init()
# [INFO] |yarp.os.Port| Port /tmp/port/1 active at tcp://192.168.8.102:10056/
# [INFO] |yarp.os.impl.PortCoreOutputUnit| Sending output from /tmp/port/1 to /clock/rpc using tcp
# Inspect simulation status
>>> gys.get_step_size(), gys.get_simulation_time()
# (0.001, 0.0)
# Advance the simulation synchronously
>>> gys.step_simulation_and_wait(number_of_steps=250)
# Print time
>>> gys.get_simulation_time()
# 0.25
# Advance the simulation synchronously
>>> gys.run_simulation_and_wait(duration=0.75)
# Print time
>>> gys.get_simulation_time()
# 1.0
# Terminate the synchronizer
>>> gys.fini()
# [INFO] |yarp.os.impl.PortCoreOutputUnit| Removing output from /tmp/port/1 to /clock/rpc
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for gazebo_yarp_synchronizer-0.9.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 931ff417c2ca98e507f2b2d823747d74082b5b353a5eae2b47164f41c7ec3eb1 |
|
MD5 | 189e9947412bbbf0a5bd024cc3b04679 |
|
BLAKE2b-256 | fa63fb618e3d8ea55f66126f28d7d04167dc2ad7eafa3e2190a825861c32b915 |
Hashes for gazebo_yarp_synchronizer-0.9.1-cp39-cp39-manylinux_2_24_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f847488bca347e345ff1a2d994a2257209491f77b7c8c04686d793260a33b6fc |
|
MD5 | 726a079954de62939908d96134c2603c |
|
BLAKE2b-256 | 23cfa7c0ece4153af072bea1e2cf7efd3239a5e9d2e43635943525b98a36751b |
Hashes for gazebo_yarp_synchronizer-0.9.1-cp38-cp38-manylinux_2_24_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 11ba07a537c1a463276aa8172b6ce7827a1a4e36ebc0d8648077af19e66b5967 |
|
MD5 | cec72bf117e01896b3be3d0c5b06704e |
|
BLAKE2b-256 | f67f7d29376bb55aa0d72e96ffbe9bb7d929972d369c571309a328b6e8d17b7a |
Hashes for gazebo_yarp_synchronizer-0.9.1-cp37-cp37m-manylinux_2_24_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4995140b46a927bbba7ac6b9474be2f046c4ca278e87be92b82131a3f5420f7d |
|
MD5 | 16644def73ab9b17c14e74001edc2e8f |
|
BLAKE2b-256 | 85cfb44128aa70a1d791f6be328b3006b368f2aa55f955d7241f531dea7c2bb1 |