1、节点
对于节点,学习完成后,个人认为,节点就是写完代码,类似封装成windows上可以点击的exe,具体执行文件
2、编写节点
输出helloworld为例子:功能包名字/xxx.py
import rclpy # ROS2 Python接口库
from rclpy.node import Node # ROS2 节点类
import time
def main(args=None): # ROS2节点主入口main函数
rclpy.init(args=args) # ROS2 Python接口初始化
node = Node("node_helloworld") # 创建ROS2节点对象并进行初始化
while rclpy.ok(): # ROS2系统是否正常运行
node.get_logger().info("Hello World") # ROS2日志输出
time.sleep(0.5) # 休眠控制循环时间
node.destroy_node() # 销毁节点对象
rclpy.shutdown() # 关闭ROS2Python接口
import rclpy # ROS2 Python接口库
from rclpy.node import Node # ROS2 节点类
import time
class HelloWorldNode(Node):
def __init__(self, name):
super().__init__(name) # ROS2节点父类初始化
while rclpy.ok(): # ROS2系统是否正常运行
self.get_logger().info("Hello World") # ROS2日志输出
time.sleep(0.5) # 休眠控制循环时间
def main(args=None): # ROS2节点主入口main函数
rclpy.init(args=args) # ROS2 Python接口初始化
node = HelloWorldNode("node_helloworld_class") # 创建ROS2节点对象并进行初始化
rclpy.spin(node) # 循环等待ROS2退出
node.destroy_node() # 销毁节点对象
rclpy.shutdown() # 关闭ROS2 Python接口
3、设置入口
打开功能包的setup.py文件
entry_points={
'console_scripts': [
'节点名字 = 功能包名字.py文件名:main',
'节点名字 = 功能包名字.py文件名:main',
],
4、运行
使用如下命令
ros2 run 功能包名字 node节点名字