警告

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

从 ROS 1 移植 Python 指南

节点初始化

# rospy.init_node('asdf')
rclpy.启动(参数=系统.参数)
网站 = rclpy.创建节点('asdf';)
# rospy.loginfo('Created node')
网站.get_logger().信息('创建节点';)

ROS 参数

# port = rospy.get_param('port', '/dev/ttyUSB0')
# assert isinstance(port, str), '端口参数必须是字符串';
 = 网站.declare_parameter('端口';, '/dev/ttyUSB0').价值
宣称 isinstance(, 字符串), '端口参数必须是字符串';
# buadrate = rospy.get_param('baudrate', 115200)
# assert isinstance(port, int), '端口参数必须是整数';
波特率 = 网站.declare_parameter('波特率';, 115200).价值
宣称 isinstance(, int), '端口参数必须是整数';
# rospy.logwarn('port: ' + port)
网站.get_logger().警示('端口:'; + )

创建出版商

# pub = rospy.Publisher('chatter', String)
酒吧 = 网站.创建出版商(字符串, '唠叨';)

创建订阅者

# sub = rospy.Subscriber('chatter', String, callback)
字幕 = 网站.创建订阅(字符串, '唠叨';, 回调)

创建服务

# srv = rospy.Service('add_twoo_ints', AddTwoInts, add_twoo_ints_callback)
服务 = 网站.创建服务(添加两个字符, 'add_two_ints', add_twoo_ints_callback)

创建服务客户端

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