警告

您正在阅读的 ROS 2 文档版本已达到 EOL(生命周期结束),不再受官方支持。如果您想了解最新信息,请访问 Jazzy.

从 ROS 1 移植 Python 指南

节点初始化

在 ROS 1 中:

蟑螂.初始节点('asdf';)

蟑螂.登录信息('创建节点';)

在 ROS 2:

rclpy.启动(参数=系统.参数)
网站 = rclpy.创建节点('asdf';)

网站.get_logger().信息('创建节点';)

ROS 参数

在 ROS 1 中:

  = 蟑螂.get_param('端口';, '/dev/ttyUSB0')
 宣称 isinstance(, 字符串), '端口参数必须是字符串';

 角黄素 = 蟑螂.get_param('波特率';, 115200)
 宣称 isinstance(, int), '端口参数必须是整数';

蟑螂.日志预警('端口:'; + )

在 ROS 2:

 = 网站.declare_parameter('端口';, '/dev/ttyUSB0').价值
宣称 isinstance(, 字符串), '端口参数必须是字符串';

波特率 = 网站.declare_parameter('波特率';, 115200).价值
宣称 isinstance(, int), '端口参数必须是整数';

网站.get_logger().警示('端口:'; + )

创建出版商

在 ROS 1 中:

酒吧 = 蟑螂.出版商('唠叨';, 字符串)

在 ROS 2:

酒吧 = 网站.创建出版商(字符串, '唠叨';)

创建订阅者

在 ROS 1 中:

字幕 = 蟑螂.订阅者('唠叨';, 字符串, 回调)

在 ROS 2:

字幕 = 网站.创建订阅(字符串, '唠叨';, 回调)

创建服务

在 ROS 1 中:

服务 = 蟑螂.服务('add_two_ints', 添加两个字符, add_twoo_ints_callback)

在 ROS 2:

服务 = 网站.创建服务(添加两个字符, 'add_two_ints', add_twoo_ints_callback)

创建服务客户端

在 ROS 1 中:

蟑螂.等待服务('add_two_ints')
add_twoo_ints = 蟑螂.服务代理('add_two_ints', 添加两个字符)
呼吸 = add_twoo_ints(要求)

在 ROS 2:

add_twoo_ints = 网站.创建客户端(添加两个字符, 'add_two_ints')
虽然  add_twoo_ints.等待服务(超时秒数=1.0):
    网站.get_logger().信息('服务不可用,请再次等待...';)
呼吸 = add_twoo_ints.调用同步(要求)
rclpy.自旋直到未来完成(网站, 呼吸)