当前位置: 首页 > wzjs >正文

企业展示网站 数据库设计优化设计五年级上册语文答案

企业展示网站 数据库设计,优化设计五年级上册语文答案,深圳网站设计专家乐云seo品牌,疯狂购网站开发商问题描述 节点名称可能出现重名的情况,同理话题名称也可能重名,不过与节点重名不同的是,有些场景下需要避免话题重名的情况,但有些场景下又需要将不同的不同的话题名称修改为相同。 在 ROS2 不同的节点之间通信都依赖于话题&…

问题描述

节点名称可能出现重名的情况,同理话题名称也可能重名,不过与节点重名不同的是,有些场景下需要避免话题重名的情况,但有些场景下又需要将不同的不同的话题名称修改为相同。
在 ROS2 不同的节点之间通信都依赖于话题,话题名称也可能出现重名的情况,话题重名时,系统虽然不会抛出异常,但是通过相同话题名称关联到一起的节点可能并不属于同一通信逻辑,从而导致通信错乱,甚至出现异常。这种情况下可能就需要将相同的话题名称设置为不同。

又或者,两个节点是属于同一通信逻辑的,但是节点之间话题名称不同,导致通信失败。这种情况下就需要将两个节点的话题名称由不同修改为相同。
那么如何修改话题名称呢?

解决思路

与节点重名的解决思路类似的,为了避免话题重名问题,一般有两种策略:
1.名称重映射,也即为话题名称起别名,
2.命名空间,是为话题名称添加前缀,可以有多级,格式:/xxx/yyy/zzz。
需要注意的是,通过命名空间设置话题名称时,需要保证话题是非全局话题。

解决方案

与节点重名解决方案类似的,修改话题名称的方式主要有如下三种
1.ros2 run 命令实现;
2.launch 文件实现;
3.编码实现。

1、ros2 run修改话题名称

1、ros2 run设置命名空间

1、设置命名空间演示

语法:ros2 run 包名 节点名 --ros-args --remap __ns:=命名空间

示例:ros2 run turtlesim turtlesim_node --ros-args --remap __ns:/t1

运行结果:使用 ros2 topic list查看节点信息,显示:

/t1/turtlesim/cmd_vel

/t1/turtlesim/color_sensor

/t1/turtlesim/pose

2、ros2 run话题名称重映射

语法:ros2 run 包名 节点名 --ros-args --remap 原话题名称:=新话题名称

ros2 run turtlesim turtlesim_node --ros-args --remap /turtle1/cmd_vel:=/cmd_vel

2、launch设置节点名称

在ROS2中launch文件可以由Python、XML或YAML三种语言编写,每种实现方式都可以设置节点的命名空间或为节点起别名。

在 Python 方式实现的 launch 文件中,可以通过类 1aunch_ros.actions.Node 来创建被启动的节点对象在对象的构造函数中提供了 name 和 namespace 参数来设置节点的名称与命名空间,使用示例如下:

(1)、在工作空间的src目录下,新建功能包

ros2 pkg create 包名 --build-type ament_cmake --node-name 节点名 --dependencies rclcpp

(2)、在功能包下面新建文件夹,名称为launch

(3)、打开CMakeLists.txt,添加

 install(DIRECTORY launch DESTINATION Share/${PROJECT NAME})

(4)、在launch文件夹下,新建.py文件,比如demo01_launch.py,编写如下代码

以下是使用3中方式,实际只用一种就可以了。

其中remappings就是修改话题名称。

(5)、编译功能包

colcon build --packages-select 包名

(6)、运行测试

source install/setup.bash

ros2 launch 包名 demo01_launch.py

此时对应的功能包的节点就开始运行。

 2、XML方式实现的launch文件设置命名空间与名称重映射

(1)、在工作空间的src目录下,新建功能包

ros2 pkg create 包名 --build-type ament_cmake --node-name 节点名 --dependencies rclcpp

(2)、在功能包下面新建文件夹,名称为launch

(3)、打开CMakeLists.txt,添加

 install(DIRECTORY launch DESTINATION Share/${PROJECT NAME})

(4)、在launch文件夹下,新建.xml文件,比如demo01_launch.xml,编写如下代码

(5)、编译功能包

colcon build --packages-select 包名

(6)、运行测试

source install/setup.bash

ros2 launch 包名 demo01_launch.xml

3、yaml方式实现的launch文件设置命名空间与名称重映射

(1)、在工作空间的src目录下,新建功能包

ros2 pkg create 包名 --build-type ament_cmake --node-name 节点名 --dependencies rclcpp

(2)、在功能包下面新建文件夹,名称为launch

(3)、打开CMakeLists.txt,添加

 install(DIRECTORY launch DESTINATION Share/${PROJECT NAME})

(4)、在launch文件夹下,新建.yaml文件,比如demo01_launch.yaml,编写如下

(5)、编译功能包

colcon build --packages-select 包名

(6)、运行测试

source install/setup.bash

ros2 launch 包名 demo01_launch.yaml

3、编码设置话题名称

话题分类

话题的名称的设置是与节点的命名空间、节点的名称有一定关系的,话题名称大致可以分为三种类型:
        全局话题(话题参考ROS系统,与节点命名空间平级);
        相对话题(话题参考的是节点的命名空间,与节点名称平级);
        私有话题(话题参考节点名称,是节点名称的子级)。
总之,以编码方式设置话题名称是比较灵活的。本节将介绍如何在rcicpp和rclpy 中分别设置不同类型的话题。

话题设置:

全局话题:

格式:定义时以 / 开头的名称,和命名空间、节点名称无关。

相对话题:

格式:定义时以 / 开头的名称,参考命名空间设置话题名称,和节点名称无关。

私有话题:

格式:定义时以~/开头的名称,和命名空间、节点名称有关系。

http://www.dtcms.com/wzjs/10022.html

相关文章:

  • 奉化建设网站app平台搭建
  • 安吉做企业网站seo实战密码在线阅读
  • 拖拉建网站黑马培训是正规学校吗
  • 自己建设色情网站赚钱石家庄seo全网营销
  • 关键词优化排名软件sseo排名怎么优化软件
  • 简单建设一个网站的过程毕节地seo
  • 做威客的网站百度检索入口
  • 帮人做网站小红书怎么做关键词排名优化
  • 南宁伯才网络公司做网站好吗怎么注册网站 个人
  • 快速做网站团队百度seo手机
  • 玉环住房与城乡建设规划局网站成品人和精品人的区别在哪
  • 如何开发网站平台开发南宁seo排名优化
  • 国际消息新闻百度seo优化包含哪几项
  • 怎么把网站横幅做很大企业网站制作方案
  • 做网站用的编程语言seo网站推广助理
  • 怎样利用网站做淘宝客搜索关键词排名推广
  • 网站后台管理系统模板下载西安快速排名优化
  • 扫码进入网站 怎么做淘宝店铺怎么运营
  • 如何用框架做网站推广优化排名
  • 有哪些网站做电子元器件比较好东莞网站建设推广哪家好
  • 大连装修网站推广百度快照是干什么的
  • 可以做哪些有趣的网站百度问答平台
  • 查看网站 vps营销策略是什么
  • wordpress做淘客网站网站推广和网络推广
  • 如何再腾讯云服务器做网站google store
  • 网络推广文案策划书引擎优化是什么意思
  • 在线网站建设工程标准seo整站优化方案案例
  • 做网站开发需要什么郑州网站seo推广
  • 学习做网站只学过cvivo应用商店
  • 米拓网站建设步骤自己怎么优化关键词