ROS2学习笔记,案例实现记录——10.节点node

前言

在学习了ROS 2官方教程之后,我决定以自导自演的方式,给自己出题来实践所学知识,以加深对ROS 2的各个概念和使用方式的理解。我将把我的学习过程记录在博客中,并将代码放在我的GitHub仓库中https://github.com/YuAndWang/ROS2_Case(当然博客中也会贴上代码),后面有新的案例将会放到对应的章节之后,供大家参考和学习。

欢迎━(`∀´)ノ亻! 大家一起出题,一起探讨!希望我的实践过程对你理解ROS 2有所帮助。如果你有任何问题或建议,欢迎提出!谢谢~~~

10.节点node

节点是ROS 2中最基本的通信单元。

10.1案例1:object_recognition_node

我想实现使用OpenCV库进行图像识别并显示识别结果。它加载一张图片,对其进行颜色识别,然后在图像中绘制识别结果的轮廓并显示出来。

实现过程如下:

建立功能包

打开一个新的终端,进入到我的工作空间目录,并且应该在 src 目录中创建包,而不是在工作空间的根目录中创建包。因此,进入到 my_ws/src,并运行包创建命令:

cd my_ws/src
ros2 pkg create --build-type ament_python object_recognition_node_py

节点 object_recognition.py

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

"""
@作者: 王仰旭
@说明: 使用OpenCV进行图像识别并显示识别结果的节点代码, 无发布消息
"""

import rclpy
from rclpy.node import Node
import cv2
import numpy as np                                  # Python数值计算库

lower_red = np.array([0, 90, 128])
upper_red = np.array([180, 255, 255])

def object_detect(image):
    hsv_img = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)            # 图像从BGR颜色模型转换为HSV模型
    mask_red = cv2.inRange(hsv_img, lower_red, upper_red)       # 图像二值化
    cv2.imshow("mask_red", mask_red)
    contours, hierarchy = cv2.findContours(mask_red
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鱼 丸

您的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值