C5-Ros2从零开始学习——功能包部署python节点
一.功能包创建
ros2 pkg create demo_python_pkg --build-type ament_python --license Apache-2.0
先来创建一个包
功能包名:demo_python_pkg
构建类型:--build-type ament_python
声明功能包开源协议:--license Apache-2.0

二.功能包里编写节点
打开文件夹demo_python_pkg/demo_python_pkg/然后创建新的文件python_node.py
python_node.py
import rclpy
from rclpy.node import Node
def main():
rclpy.init ()
node = Node ("python_node")
node.get_logger().info('你好 Python 节点!')
rclpy.spin (node)
rclpy.shutdown()
更新setup.py——添加配置注册节点
'python_node = demo_python_pkg.python_node:main',

setup.py是Python开发中常用的构建配置文件,添加的这句指令的含义是,当执行python_node 时就相当于执行demo_python_pkg目录下python_node 文件中的main函数。
打开package.xml进行声明——设置保证是添加依赖
<depend>rclpy<depend>

三.编译节点和功能包
在chapt2目录下使用colcon构建功能包
colcon build
通过source设置环境变量
source install/setup.bash
echo $AMENT PREFIX PATH
运行python_node节点
ros2 run demo_python_pkg python_node
需要注意的是,因为环境变量只对当前的终端上下文有效,所以打开新的终端后就要重
新执行source,才能找到节点。
四.功能包总结分析
demo_python_pkg:该文件夹下的init_py是Python包的标识文件,放置节点代码的目录
resource:该目录可以放置一些资源,该目录和其下的demo_python_pkg文件比较特殊,主要为了提供功能包标识
test:测试代码文件夹,用于放置代码单元测试文件,结合colcon构建工具中的测试相关指令,可以完成对代码的单元测试并形成报告。
LICENSE:该文件是功能包的许可证,保证知识产权package.xml:该文件是功能包的清单文件,在该文件内声明了功能包的名称、版本编号、功能包管理者、构建类型、许可证和依赖等信息,方便分享移植。
setup.cfg:该文件是一个普通的文本文件,用于放置构建Python包时的配置选项,这些配置在构建时会被读取和处理。
setup.py:该文件是Python包的构建脚本文件,其中包含一个setupO)函数,用于指定如何构建和安装Python。包
更多推荐




所有评论(0)