Compare commits

...

Author SHA1 Message Date
  haixuanTao fa0539d805 initial commit 1 year ago
1 changed files with 37 additions and 0 deletions
Split View
  1. +37
    -0
      node-hub/dora-ros2-jointstate/dora_ros2_jointstate/main.py

+ 37
- 0
node-hub/dora-ros2-jointstate/dora_ros2_jointstate/main.py View File

@@ -0,0 +1,37 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import dora
from dora import Node

ros2_context = dora.Ros2Context()
ros2_node = ros2_context.new_node(
"dora", # name
"/piper", # namespace
dora.Ros2NodeOptions(rosout=True),
)

# Define a ROS2 QOS
topic_qos = dora.Ros2QosPolicies(reliable=True, max_blocking_time=0.1)

# Create a listener to pose topic
turtle_pose_topic = ros2_node.create_topic(
"/puppet/joint_left", "sensor_msgs/JointState", topic_qos
)
pose_reader = ros2_node.create_subscription(turtle_pose_topic)

# Create a dora node
dora_node = Node()

# Listen for both stream on the same loop as Python does not handle well multiprocessing
dora_node.merge_external_events(pose_reader)

while True:
event = dora_node.next()
if event is None:
break
match event["kind"]:

# In this case ROS2 event
case "external":
pose = event["value"][0].as_py()
dora_node.send_output("/puppet/joint_left", event["value"])

Loading…
Cancel
Save