使用ROS2设计两个节点进行通信: 节点一发布一个话题,话题内容为 Hello,EV。 节点二订阅节点一的话题并且在回调函数中打印出 Welcome to EV。
时间: 2023-07-15 10:13:28 浏览: 67
以下是使用ROS2设计两个节点进行通信的示例代码:
节点一发布一个话题,话题内容为 "Hello, EV":
```python
import rclpy
from std_msgs.msg import String
def main(args=None):
rclpy.init(args=args)
node = rclpy.create_node('publisher_node')
publisher = node.create_publisher(String, 'chatter', 10)
msg = String()
msg.data = 'Hello, EV'
while rclpy.ok():
publisher.publish(msg)
node.get_logger().info('Publishing: "%s"' % msg.data)
rclpy.spin_once(node)
node.destroy_node()
rclpy.shutdown()
if __name__ == '__main__':
main()
```
节点二订阅节点一的话题并且在回调函数中打印出 "Welcome to EV":
```python
import rclpy
from std_msgs.msg import String
def callback(msg):
print('Received: "%s"' % msg.data)
print('Welcome to EV')
def main(args=None):
rclpy.init(args=args)
node = rclpy.create_node('subscriber_node')
subscriber = node.create_subscription(String, 'chatter', callback, 10)
while rclpy.ok():
rclpy.spin_once(node)
node.destroy_node()
rclpy.shutdown()
if __name__ == '__main__':
main()
```
注意:在运行以上代码前,需要安装 ROS2 和 Python 的 ROS2 包。