话题通信
1.1 发布第一个节点:
import rclpy #导入此类模块 rcl+类型
from rclpy.node import Node #从这个子模块中导入这类函数
def main(): #定义这个函数
rclpy.init() #使用初始化函数
node = Node('hello_python') 将类函数里面的内容调给node 在ROS2中的节点不允许有标点符号出现
node.get_logger().info('您好,中国') 显示日志信息,填充节点内容
node.get_logger().warn('您好,中国')
rclpy.spin(node) #一直出现
rclpy.shutdown() #关闭
if __name__=='__main__': 如果调用的名字相同就调用main()函数
main()
有一些技巧 在终端这里按住ctrl+5可以分端口
1.2 使用功能包组织python节点
创建方法:ros2 pkg create --build-type ament_类型(python) --licenseApache-2.0 demo_python_pkg
接着在srtup.py中画得蓝色框中记得修改 右面的意思是包名+文件名+函数名
最后在程序中既然都用到了rclpy.那么把rclpy添加依赖信息。
<depend>relpy</depend>
最后在这个下面添加 colcon build 就会多出三个文件夹,build install log
其中 install是结果文件夹
我们在编译colcon build时候,实际上是把节点那个py文件给复制了一份。如果不colcon build下就是会运行原文件。
国庆第二天,学的效率很低,明天开始好好学习,充分利用好时间。