ROS学习之 cpp节点句柄

本文介绍了ROS中的NodeHandle类,详细阐述了其两个主要作用:自动启动和关闭节点以及提供名字空间解决方案。通过示例展示了如何利用NodeHandle进行名字空间的管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


wiki链接:http://wiki.ros.org/roscpp/Overview/NodeHandles

NodeHandles节点句柄 API: http://docs.ros.org/api/roscpp/html/classros_1_1NodeHandle.html

关于节点的启动与关闭,已经在之前的博客中学习记录过了(http://wiki.ros.org/roscpp/Overview/NodeHandles),
下面来继续学习ROS提供的节点句柄相关知识

    ros::NodeHandle类有两个作用:1.它在roscpp程序内提供了一种RAII(Resource Acquisition Is Initialization)类型式启动和关闭内部节点的方法.
                                                            2.它提供了名字空间解决方案中额外一层,使对于子部件的写操作更加简单.

    1.自动地启动和关闭

        在节点初始化和关闭一节中,使用ros::NodeHandle管理节点的内部引用,使启动和关闭一个节点变得简单.
        在创建时,如果一个内部节点没有被启动,节点句柄将启动该节点.一旦所有的节点句柄实例被销毁,那么节点将被自动关闭.    

    2.名字空间

        节点句柄允许给构造器明确一个名字空间
            ros::NodeHandle nh("my_namespace");
        这使节点拥有相对名字<node_namespace>/my_namespace,而不仅仅是<node_namespace>
        也可以给节点句柄明确一个父节点句柄和一个紧跟的名字空间
            ros::NodeHandle nh1("ns1");
            ros::NodeHandle nh2(nh1, "ns2");
        这使节点句柄nh2进入<node_namespace>/nh1/nh2名字空间下
        全局名字空间
        ros::NodeHandle nh("/my_global_namespace");
       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值