# 3.4.2 使用非OOP方法编写一个节点 创建好了`li4.py`,接着我们就可以正式编写代码。大家看到我们的标题是使用非OOP方法编写节点,OOP就是所谓的面向对象编程,如果你不理解也没关系,小鱼下面会跟大家一一讲解。 ## 1.开始编写程序 编写ROS2节点的一般步骤 1. 导入库文件 2. 初始化客户端库 3. 新建节点 4. spin循环节点 5. 关闭客户端库 打开li4.py,接着我们开始编写代码。跟着小鱼一起边理解输入下面的代码,注释不用输。 ``` import rclpy from rclpy.node import Node def main(args=None): """ ros2运行该节点的入口函数 编写ROS2节点的一般步骤 1. 导入库文件 2. 初始化客户端库 3. 新建节点对象 4. spin循环节点 5. 关闭客户端库 """ rclpy.init(args=args) # 初始化rclpy node = Node("li4") # 新建一个节点 node.get_logger().info("大家好,我是作家li4.") rclpy.spin(node) # 保持节点运行,检测是否收到退出指令(Ctrl+C) rclpy.shutdown() # 关闭rclpy ``` 代码编写完成用Crtl+S进行保存。接着修改`setup.py` 增加一句话,告诉ros2村庄来了一位新村民李四,要找这位村民去`village_li.li4:main`路径下寻找。 ``` entry_points={ 'console_scripts': [ "li4_node = village_li.li4:main" ], }, ) ``` 完成上面的工作后,就可以编译运行了。 ## 2.编译运行节点 打开vscode终端,进入`town_ws` ### 编译节点 ``` colcon build ``` ### source环境 ``` source install/setup.bash ``` ### 运行节点 ``` ros2 run village_li li4_node ``` ### 运行结果 ![image-20210727134002735](3.5.2使用非OOP方法编写一个节点并测试/imgs/image-20210727134002735.png) ## 3.总结 当节点运行起来后,可以再尝试使用`ros2 node list `指令来查看现有的节点。这个时候你应该能看到: ![image-20210727135236470](3.5.2使用非OOP方法编写一个节点并测试/imgs/image-20210727135236470.png) 这说明你的节点已经运行起来了。