OSC_ROS2/ros_osc/joint_info/pythonosc/joint_state_overview.py
Alexander Schaefer 98759f2bab AS: osc4py3
2025-03-14 09:37:10 +01:00

44 lines
1.1 KiB
Python

from pythonosc import dispatcher
from pythonosc import osc_server
import time
last_received = time.time()
def joint_handler(address, *args):
global last_received
now = time.time()
if now - last_received > 0.1: # Limit updates to every 100ms
last_received = now
if args:
print(args[0])
"""
def joint_handler(address, *args):
if args:
print(args[0])
gc.collect() # Force garbage collection
"""
def main():
ip = "0.0.0.0" # Listen on all network interfaces
port = 8000 # Must match the sender's port in `joint_state_osc.py`
# Create dispatcher and register callback
disp = dispatcher.Dispatcher()
disp.map("/joint_states", joint_handler) # Listen for all joint messages
# Start OSC server
server = osc_server.ThreadingOSCUDPServer((ip, port), disp)
try:
#server.serve_forever() # Keep server running
while True:
server.handle_request() # Process one request at a time
except KeyboardInterrupt:
print("")
if __name__ == "__main__":
main()