创建工作空间
mkdir -p 02_ros_ws/src
然后cd到该目录
创建功能包
在这条命令里,tom就是你的功能包
ros2 pkg create tom --build-type ament_python --dependencies rclpy
可以看到tom功能包已经被创建成功了。
使用tree命令,得到如下文件结构
此时需要cd到tom目录下
在这个目录下创建你的节点
可以用touch命令,也可以在vscode里直接创建
创建tom_say.py
代码里,node_name="tom_say" 可以改节点名
import rclpy
from rclpy.node import Nodedef main(args=None):# init the client librclpy.init(args=args)# create node instancenode_tom_say = Node(node_name="tom_say")# get loggernode_tom_say.get_logger().info("Hello, Jerry. I am comming.")# spin the noderclpy.spin(node=node_tom_say)# shutdown the noderclpy.shutdown()
修改配置文件
打开配置文件,src/tom/setup.py
在 entry_points={'console_scripts': [],}中添加节点位置,修改后如下所示
from setuptools import setuppackage_name = 'tom'setup(name=package_name,version='0.0.0',packages=[package_name],data_files=[('share/ament_index/resource_index/packages',['resource/' + package_name]),('share/' + package_name, ['package.xml']),],install_requires=['setuptools'],zip_safe=True,maintainer='franklin',maintainer_email='franklin@todo.todo',description='TODO: Package description',license='TODO: License declaration',tests_require=['pytest'],entry_points={'console_scripts': ["node_tom_say=tom.tom_say:main"],},
)
这里的tom.tom_say的意思就是
回到工作空间
cd 02_ros_ws, 编译节点 colcon build ,编译后如下如所示
source 更新一下
source install/setup.bash
查看功能包是否存在
ros2 pkg list | grep tom
运行节点
ros2 run tom node_tom_say
这里的tom就是你的功能包,tom_say是你的py文件,但一定要加node_