警告
您正在阅读的 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.自旋直到未来完成(网站, 呼吸)