您当前的位置: 首页 > 

鱼香ROS

暂无认证

  • 0浏览

    0关注

    498博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

《动手学ROS2》4.4话题小练习-李三借钱吃麻辣烫

鱼香ROS 发布时间:2021-11-11 14:17:16 ,浏览量:0

本系列教程作者:小鱼 公众号:鱼香ROS QQ交流群:139707339 教学视频地址:小鱼的B站 完整文档地址:鱼香ROS官网 版权声明:如非允许禁止转载与商业用途。 公众号

4.2.3 话题通信小练习之李三白嫖

你好,我是小鱼。恭喜你完成了ROS2中非常重要的话题通信部分的学习,本节我们将一起做一个小练习,巩固一下我们的学习成果。

1.小练习背景

话说李四有个兄弟叫李三,他是李四的哥哥,一个典型的白嫖党。他看李四写的艳娘传奇非常的有意思,自己也想拿来品鉴一下。但他又不想给李四钱。 所以我们的任务就是,在李家村里创建白嫖党李三这个节点,然后为其订阅sexy_girl话题数据。

2.小练习思路

你可以将其分为下面几步:

  1. 新建li3.py这个文件,在里面创建一个BaiPiaoNode类并定义一个main()函数
  2. 编写BaiPiaoNode类,为其订阅话题和编写回调函数
  3. 在setup.py中配置li3节点,如果记不得如何配置可以看看3.5章节
  4. 编译运行李三节点,并启动李四和王二节点
  5. 观察运行结果,用rqt_graph查看计算图
3.小练习答案(写完再参考哦) 3.1代码
#!/usr/bin/env python3
import rclpy
from rclpy.node import Node
from std_msgs.msg import String

class BaiPiaoNode(Node):
    """
    创建一个李三节点,并在初始化时输出一个话
    """
    def __init__(self,name):
        super().__init__(name)
        self.get_logger().info("大家好,我是李三,李四他哥,我可以白嫖李四的小说!")
        self.sub_ = self.create_subscription(String,"sexy_girl",self.recv_callback,10)

    def recv_callback(self,novel):
        self.get_logger().info('李三:我已经收到了:%s' % novel.data)


def main(args=None):
    """
    ros2运行该节点的入口函数,可配置函数名称
    """
    rclpy.init(args=args) # 初始化rclpy
    node = BaiPiaoNode("li3")  # 新建一个节点
    rclpy.spin(node) # 保持节点运行,检测是否收到退出指令(Ctrl+C)
    rclpy.shutdown() # rcl关闭
3.2setup.py配置
    entry_points={
        'console_scripts': [
            "li4_node = village_li.li4:main",
            "li3_node = village_li.li3:main"
        ],
    }
3.3 计算图

image-20210804163450722

从图中可以看到,li3并没有给li4钱。

作者介绍:

我是小鱼,机器人领域资深玩家,现深圳某独脚兽机器人算法工程师一枚 初中学习编程,高中开始接触机器人,大学期间打机器人相关比赛实现月入2W+(比赛奖金) 目前在输出机器人学习指南、论文注解、工作经验,欢迎大家关注小智,一起交流技术,学习机器人

关注
打赏
1666092100
查看更多评论
立即登录/注册

微信扫码登录

0.0347s