ROS分布式演练,多台设备进行通信的配置

这篇具有很好参考价值的文章主要介绍了ROS分布式演练,多台设备进行通信的配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、概述

前面我们做的操作都是在单个设备上进行,也就是分别开启多个终端,在不同终端上启动节点等相关操作,这里我们使用两台设备来控制,一台虚拟机和一台无人车(使用VNC Viewer连上去,也可以看做一台Linux虚拟机)
VNC Viewer有兴趣的可以查阅:远程连接VNC-Viewer与安全传输WinSCP软件

2、安装Chrony包与SSH服务器

2.1、介绍

ChronyNTP(Network Time Protocol)网络时间协议的替代品,能更精确、更快的同步时钟,传统NTP需要几个小时,而Chrony仅需要数秒种或数毫秒就可以完成时间同步。
安装这个时间同步服务是很有意义的,因为每台设备的运行环境等都不一样,本地时钟可能会不一致,虽然有校正过,但是过一段时间之后,又可能不一致了,那么对于分布式架构来说,就会造成不好的结果,我们需要不同的设备协同完成,所以需要统一时间。

Chrony由两个程序组成,分别是chronyd和chronyc。
chronyd
是一个后台运行的守护进程,用于调整内核中运行的系统时钟和时钟服务器同步,确定计算机增减时间的比率,并对此进行补偿。
chronyc提供了一个用户界面,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的计算机上工作,也可以在一台不同的远程计算机上工作。

OpenSSH是SSH协议的免费开源实现,功能包括:实现SSH协议,可以让本地计算机和远程服务器之间建立安全的连接,提供安全的传输通道,保护数据的传输安全。

2.2、安装

分别在两台设备上安装chrony包以及ssh服务器用来实现同步
sudo apt-get install chrony openssh-server

分别输入ifconfighostname命令,找出其IP地址和主机名
虚拟机(主机)

192.168.1.128 YAB

无人车(从机)

192.168.1.11 jetson-desktop

 2.3、修改hosts

修改hosts文件,将两者的IP与主机名都写入里面
所有用户加个可写权限:sudo chmod a+w /etc/hosts
修改hosts文件:gedit /etc/hosts

192.168.1.128    YAB
192.168.1.11    jetson-desktop

修改好了之后,在两台设备上都输入下列命令重启网络,实现两台设备间通信:
sudo /etc/init.d/networking restart
确认服务是否启动
ps -e | grep ssh
也可以互相ping主机名测试下,是否可以ping通,能够ping通就没有问题。

2.4、设置环境变量 

接下来就设置环境变量,最好是加入到.bashrc文件
虚拟机(主机)

echo "export ROS_HOSTNAME=YAB" >> ~/.bashrc
echo "export ROS_MASTER_URI=http://YAB:11311" >>~/.bashrc
source ~/.bashrc

无人车(从机)

echo "export ROS_HOSTNAME=jetson-desktop" >> ~/.bashrc
echo "export ROS_MASTER_URI=http://YAB:11311" >>~/.bashrc
source ~/.bashrc

2.5、启动节点

虚拟机(主机)启动ROS管理节点Master:roscore

无人车(从机)
启动乌龟
rosrun turtlesim turtlesim_node
启动键盘控制
rosrun turtlesim turtle_teleop_key 

这样就可以在从机上控制乌龟了,这里也可以看出分布式的优势,可以让相互独立的节点能够相互通信,非常棒。如下图:

ROS分布式演练,多台设备进行通信的配置,机器人操作系统(ROS),桥接模式,虚拟网络编辑器,Chrony,OpenSSH,VNC Viewer

当然上面的URI也可以使用IP地址,这个看个人的具体情况吧。

3、不同网段处理

这里可能大家会遇到一个不在同一个网段的情况,这样就不能互相通信,这里以本人的为例,怎么更改虚拟中的IP网段。
本人电脑是有线网络,IP是在192.168.3.xx的网段,虚拟机一般都是直连物理网络,所以IP地址也是在192.168.3.xx这个网段
而无人车使用的是无线USB网卡(Realtek 8188GU Wireless LAN 802.11n USB NIC),IP地址是192.168.1.11

由于虚拟机跟无人车不在同一个网段里面,所以不能相互通信,这个时候我们需要使用到“虚拟网络编辑器”,如下图: ROS分布式演练,多台设备进行通信的配置,机器人操作系统(ROS),桥接模式,虚拟网络编辑器,Chrony,OpenSSH,VNC Viewer

点击进来之后,右下角点击“更改设置”,如下图:

ROS分布式演练,多台设备进行通信的配置,机器人操作系统(ROS),桥接模式,虚拟网络编辑器,Chrony,OpenSSH,VNC Viewer

将出现一个新的VMnet0选择,我们点击“桥接模式(将虚拟机直接连接到外部网络)(B)”,其中已桥接至:选择无人车的无线USB网卡即可。如下图: 

ROS分布式演练,多台设备进行通信的配置,机器人操作系统(ROS),桥接模式,虚拟网络编辑器,Chrony,OpenSSH,VNC Viewer

最后我们来到虚拟机的设置,点击“网络适配器”,网络连接,这里我们选择“自定义(U):特定虚拟网络”,选择上面配置好的VMnet0即可。如下图:

ROS分布式演练,多台设备进行通信的配置,机器人操作系统(ROS),桥接模式,虚拟网络编辑器,Chrony,OpenSSH,VNC Viewer 

重启网络:sudo /etc/init.d/networking restart
我们在两台设备上面分别互相ping下,不出意外是可以互相ping通了,如下图: 

ROS分布式演练,多台设备进行通信的配置,机器人操作系统(ROS),桥接模式,虚拟网络编辑器,Chrony,OpenSSH,VNC Viewer文章来源地址https://www.toymoban.com/news/detail-742558.html

到了这里,关于ROS分布式演练,多台设备进行通信的配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 分布式通信方式

      分布式通信是指在分布式系统中,不同节点之间进行消息传递和交互的方式。   以下是常见的分布式通信方式:   使用消息队列作为中间件,节点之间通过发送和接收消息来实现通信。消息队列提供了异步、解耦和可靠性的通信机制,常见的消息队列系统包括Rabb

    2024年02月15日
    浏览(38)
  • RPC分布式通信框架

    在实际开发中单机服务器存在诸多问题: 1.受限于硬件资源无法提高并发量 2.任意模块的修改都将导致整个项目代码重新编译部署 3.在系统中,有些模块属于CPU密集型,有些属于I/O密集型,各模块对于硬件资源的需求不一样 什么是分布式?分布式是否可以解决以上问题? 分

    2024年04月28日
    浏览(45)
  • torch分布式通信基础

    官网文档:WRITING DISTRIBUTED APPLICATIONS WITH PYTORCH 需要注意的一点是: 这里面的调用都是同步的,可以理解为,每个进程都调用到通信api时,真正的有效数据传输才开始,然后通信完成之后,代码继续往下跑。实际上有些通信进程并不获取数据,这些进程可能并不会被阻塞。 文

    2024年02月16日
    浏览(32)
  • Dobbo---分布式系统通信方式

    RMI ( Remote Method Invocation 远程方法调用) 图1.1 客户端-服务端通信方式 客户端将要调用的方法及参数,打包为辅助对象,通过网络socket,发送给服务端辅助对象。服务端接收后,会进行解包,找出真正被调用的方法,然后将执行结果,依次再返回回去。服务端辅助对象进行打包

    2024年01月17日
    浏览(58)
  • 分布式链路追踪专栏,Spring Cloud Sleuth:分布式链路追踪之通信模型设计

    Spring Cloud Sleuth  赋予分布式跟踪的  Spring Boot  自动配置的一键解决方案。 Spring Cloud Sleuth  是基于  Brave  的封装,也是很多公司采用开源加自研的最佳解决方案。 那么从作为架构师或者技术专家如何去借鉴优秀框架的设计理念和思想,本次  Chat  将开启作者既分布式链路

    2024年01月19日
    浏览(66)
  • OpenHarmony 4.0 分布式软总线解析:设备发现与传输

    OpenHarmony 的分布式软总线子系统为 OpenHarmony 系统提供的通信相关的能力,包括:WLAN 服务能力、蓝牙服务能力、软总线、进程间通信 RPC(Remote Procedure Call)等通信能力。 其中主要包括: WLAN 服务:为用户提供 WLAN 基础功能、P2P(peer-to-peer)功能和 WLAN 消息通知的相应服务,

    2024年04月23日
    浏览(46)
  • 聊聊分布式架构04——RPC通信原理

    目录 RPC通信的基本原理 RPC结构 手撸简陋版RPC 知识点梳理 1.Socket套接字通信机制 2.通信过程的序列化与反序列化 3.动态代理 4.反射 思维流程梳理 码起来 服务端时序图 服务端—Api与Provider模块 客户端时序图 RPC通信的基本原理 RPC(Remote Procedure Call)是一种远程过程调用协议,

    2024年02月07日
    浏览(38)
  • 聊聊分布式架构01——http通信基础

    目录 web通信的简单结构 网络通信基础TCP/IP TCP/IP 通信传输流 HTTP中的三剑客 负责传输的IP协议 确保可靠性的TCP协议 SYN攻击(SYN Flood Attack) 四次挥手 负责域名解析的DNS服务 基于 TCP 协议实现通信 TCP 协议的通信过程 Web通信的简单结构 Web 使用一种名为 HTTP(HyperText Transfer Pr

    2024年02月07日
    浏览(42)
  • 【分布式训练】基于PyTorch进行多GPU分布式模型训练(补充)

    简介: 在PyTorch中使用DistributedDataParallel进行多GPU分布式模型训练。 原文链接:https://towardsdatascience.com/distributed-model-training-in-pytorch-using-distributeddataparallel-d3d3864dc2a7 随着以ChatGPT为代表的大模型的不断涌现,如何在合理的时间内训练大模型逐渐成为一个重要的研究课题。为了解

    2024年02月16日
    浏览(46)
  • 考虑设备动作损耗的配电网分布式电压无功优化(Matlab代码实现)

     💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码实现 文献来

    2024年02月16日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包