码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • create® 3入门教程-使用多个机器人


     系列文章目录:

    • 目录:

    • create® 3入门教程-介绍

    • create® 3入门教程-硬件概述

    • create® 3入门教程-硬件安装

    • create® 3入门教程-电池组

    • create® 3入门教程-按钮和灯环

    • create® 3入门教程-适配器板

    • create® 3入门教程-USB-C连接器

    • create® 3入门教程-网络服务器

    • create® 3入门教程-连接网络服务器

    • create® 3入门教程-更新固件

    • create® 3入门教程-网络服务器日志

    • create® 3入门教程-网络服务器应用

    • create® 3入门教程-网络服务器状态信息

    • create® 3入门教程-连接到Wi-Fi

    • create® 3入门教程-使用多个机器人

    • create® 3入门教程-ROS2网络配置

    • create® 3入门教程-在Ubuntu 20.04上使用Create3

    • create® 3入门教程-在Raspberry Pi4上使用Create3

    • create® 3入门教程-将Create3连接到NVIDIA Jetson

    • create® 3入门教程-设置NTP

    • create® 3入门教程-创建Create3 Docker映像

    • create® 3入门教程-Create3 ROS 2 API

    • create® 3入门教程-自主充电

    • create® 3入门教程-简单的动作

    • create® 3入门教程-传感器检测

    • create® 3入门教程-里程计

    • create® 3入门教程-反应Reflexes

    • create® 3入门教程-安全功能

    • create® 3入门教程-按钮和光环与用户进行交互

    • create® 3入门教程-沿着障碍物前进

    • create® 3入门教程-模拟器

    • create® 3入门教程-通过ROS2命令执行

    • create® 3入门教程-读取机器人的传感器

    • create® 3入门教程-导航


    说明:

    • 介绍如何使用多个 Create® 3 机器人

    相关设备

    • Turtlebot4机器人套件:采购地址

    ROS 2 通信的基本概念

    • ROS 2 1通信基于底层 DDS​​ 中间件。两个 ROS 进程发现彼此后,如果它们的主题、服务或操作匹配,它们将自动开始通信。

    • ROS 2 使用的默认发现协议是基于广播的。这意味着当一个 ROS 2 进程启动时,它会将自己的发现消息通告给连接到同一网络的所有其他 ROS 进程。

    • 使用广播发现协议的主要优点是,只要你的 ROS 2 进程连接到同一个网络,它们就会自动相互连接并开始通信。基本用例不需要用户进行任何特殊配置。

    多个机器人的潜在问题

    • 让 ROS 2 进程自动开始通信并不总是一件好事。通常,如果两个原本要单独执行的 ROS 2 进程开始通信,它们最终会在进程之间混淆消息,而无法理解它们接收到的信息是针对它们还是针对其他进程(或者在这种情况下) , 机器人)。

    • 在某些情况下,机器人内部的两个 ROS 2 进程无意进行通信,但碰巧这样做是因为它们具有相同的主题名称并且恰好位于同一网络下。另一方面,同时运行多个机器人的用户可能希望能够从他们的笔记本电脑选择与哪个机器人进行通信,同时仍然阻止它们相互通信。

    • 以下部分将描述如何缓解和解决这些问题。提出了不同的解决方案,因为每种解决方案都适用于不同的场景。

    ROS 2 命名空间

    • 防止多个 ROS 2 进程相互通信的最简单方法是使用 ROS 2 命名空间。您可能知道,每个 ROS 2 实体都由其名称唯一标识(例如,命名的主题cmd_vel用于控制机器人)。通过为 ROS 2 进程指定命名空间,您实际上是在它创建的所有实体的名称前面添加了一个单词。

    • ROS 2 命名空间可以从 Create® 3 机器人网络服务器的应用程序 → 配置菜单中设置。请注意,命名空间名称必须以斜杠开头/。

    • 如果您有两个机器人并指定以下命名空间:/robot_1然后/robot_2您将能够看到它们各自的主题被很好地分开:

    1. $ ros2 topic list
    2. /robot_1/cmd_vel
    3. /robot_1/dock
    4. /robot_1/odom
    5. ...
    6. /robot_2/cmd_vel
    7. /robot_2/dock
    8. /robot_2/odom
    9. ...
    • 请注意,如果您想发布或订阅特定主题,现在您必须在其前面添加适当的命名空间。例如:
    $ ros2 topic echo /robot_1/odom
    
    • 如果您没有太多机器人,或者如果您有一个需要同时与所有机器人通信的附加应用程序,则推荐为您的机器人使用自定义 ROS 2 命名空间

    ROS 2 域 ID

    • 隔离多个 ROS 2 进程的另一种方法是指定ROS_DOMAIN_ID环境变量。

    • 如果两个进程使用不同的ROS_DOMAIN_ID值,它们将彼此完全隔离,这意味着它们不仅会避免通信,而且它们也将无法发现彼此。您可以在ROS 2 官方文档中阅读有关此变量的更多详细信息。

    • ROS 2 域 ID 可以从 Create® 3 机器人网络服务器的应用程序 → 配置菜单中设置。请注意,域 ID 必须是介于 0 和 101 之间的值。默认情况下,ROS 2 进程使用ROS_DOMAIN_ID值 0。

    • 如果您想通过笔记本电脑与特定机器人进行通信,则需要为域 ID 设置相应的值。例如:

    1. $ export ROS_DOMAIN_ID=42
    2. $ ros2 topic list
    3. /cmd_vel
    4. /dock
    5. /odom
    6. ...
    • 请注意,ROS 2 进程一次只能使用一个域 ID。如果需要,您始终可以在同一个域 ID 下拥有多个机器人,然后还可以添加命名空间以防止它们通信。

    • 当您拥有大量机器人并且您希望您的工具仅与其中的一部分机器人进行通信时,推荐为您的机器人使用自定义 ROS 2 域 ID 的解决方案。

  • 相关阅读:
    【51单片机】6-点亮第一个LED灯
    MySQL数据库基本操作+用户管理+用户授权
    蓝禾,三七互娱,顺丰,康冠科技,金证科技24春招内推
    acwing算法基础之数据结构--并查集算法
    SWUST OJ#99 欧几里得博弈
    只能用于文本与图像数据?No!看TabTransformer对结构化业务数据精准建模
    易基因|深度综述:表观遗传机制在慢性疼痛中的作用(DNA甲基化+组蛋白修饰+非编码RNA)
    Java顺序表和链表
    带团队后的日常思考(十二)
    Opencv项目实战:08 Yolov3更高精度的检测物体
  • 原文地址:https://blog.csdn.net/ncnynl/article/details/127306152
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号