ROS多机通信——SSH有线连接及无线连接|主从机设置|远程控制(上)

本文主要是介绍ROS多机通信——SSH有线连接及无线连接|主从机设置|远程控制(上),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

一、前言

二、ROS多机通信—有线及无线连接

有线连接

无线连接

三、其他注意事项


一、前言

因业务需要,需在本机电脑运行python代码(代码必须是基于ros环境开发的,并编译正确),来控制远程机器人(远程机器人也是基于ros系统进行运动控制)。中间涉及ros的多机通信(包括有线连接和无线连接两种方法)、ros主从机设置、ros远程控制。经过几天的实机操作,算是有所体会,分享出来希望能帮助到大家。有不准确的地方还请留言区指正。

二、ROS多机通信—有线及无线连接

  • 有线连接

1、用网线将本机与机器人连接

连上网线后,在有线网设置的地方点击“连接”

2、固定两台电脑的ip到同一个子网

这里可能有的人不知道什么叫一个子网,本人也非计算机专业,不过根据我的理解,就是ip的前三个数字相同。如:

本机:192.168.1.104

机器人:192.168.1.110

这两个ip仅仅最后一位不同。

那么怎么将两台电脑的ip改到一个子网了?本机电脑和机器人的系统都是ubuntu18.04,本机的ip设置方法如下图所示:

即把IPV4方式改为手动,将ip地址设置为:192.168.1.104

在机器人上的设置方法类似,将机器人的ip地址设置为:192.168.1.110

但是ip太长不好记,于是我们需要给ip取一个名字,这就是连接用hostname,即建立ip与连接用hostname的映射关系。

可能又有人不知道什么是hostname,什么是username,那么请看下图:

绿色字体中,@前面的是username,@后面的是hostname(本机真实hostname),即username@hostname,本人电脑的两个名字相同都是zoukun

*另外需要注意的是,这里给ip起的hostname是一个临时名字,用于连接使用。这个hostname可以与本机真实hostname相同或不同,但为了区分最好还是设置为不同。为了方便理解及后文表述,这里给出两台电脑的有关参数。

电脑usernamehostnameip连接用hostname(自己设置的)
本机(A)zoukunzoukun192.168.1.104ubuntu18-dell
机器人(B)nvidiategra-nvidia192.168.1.110nvidia

 

 

 

 

 

*表中usernamehostname两列为电脑的固有参数。ip连接用hostname两列为连接前需要手动设置的参数。

3、在两台电脑的hosts文件中添加设置的两个ip及对应的hostname

执行该步骤就是建立ip连接用hostname之间的映射关系,这样就可以在后面的场合使用连接用hostname代替ip,进行连接及主从机设置。修改hosts需要root权限,执行指令如下:

zoukun@zoukun:~$ sudo gedit /etc/hosts
[sudo] zoukun 的密码:

输入sudo密码进入hosts文件编辑,将如下两行添加到hosts文件中,一般是第三行的位置,并保存退出:

192.168.1.104	ubuntu18-dell   #有线连接
192.168.1.110   nvidia          #有线连接

注意:两台电脑的hosts文件都需要加入这两行,机器人上的操作同上。修改后需要重启电脑。

4、进行连接

执行如下代码:

ssh username@连接用hostname

这里username就是需要连接电脑的username,连接用hostname就是前面手动给ip起的临时hostname名字

以本机(A)连接机器人(B)为例,执行代码如下:

ssh nvidia@nvidia

输入nvidia@nvidia的密码即可连接。

还可以通过直接ip进行连接,执行代码如:

ssh nvidia@192.168.1.110

*温馨提示: 如果只需要连接两台电脑(不需要ros交互),只需进行1、2步即可,连接方式便是通过上面的ip方式连接

进行3、4操作的目的一个是为了连接方便(可以通过连接用hosename进行连接),另一个就是为了方便后面主从机设置及ros交互。

  • 无线连接

无线连接的步骤与有线连接类似,不同的地方在于ip的获取和设置。

1、将两台电脑连接到同一个局域网(子网)

方法有两种:将其中一台电脑设置为wifi发射器,另一台电脑进行连接;两台电脑同时连接到一个路由器(局域网)上。

2、获取两台电脑分配的ip,并进行ip固定

两台电脑连接到同一局域网后,通过ifconfig指令分别查看两台电脑分配的ip,并进行ip固定,方法同有线连接相同。

这里两台电脑被分配的ip如下:

本机:192.168.8.168

机器人:192.168.8.1

ip固定方法与有线连接相同,如下图在wifi设置中,修改IPV4方式手动,并设置ip地址为本机分配的ip,如下图所示:

无线连接模式下两台电脑设置的有关参数如下:

电脑连接用hostnameip
本机(A)ubuntu18-wifi192.168.8.168
机器人(B)nvidia-wifi192.168.8.1

 

 

 

 

后面的步骤与有线连接相同。 最后别忘了重启。其实进行这么多步的设置是为了后面的主从机设置及远程控制不出现bug。不然后面roscore启动不了,或者远程控制机器人没有响应找不到原因。

关于主从机设置、远程控制将在下一篇博文分享。由于本人接触ROS时间较短,有不对的地方还请评论区指正。

三、其他注意事项

在不进行ROS通信时,需要将电脑的IPV4方式改回“自动”,不然电脑可能会无法联网。

 

这篇关于ROS多机通信——SSH有线连接及无线连接|主从机设置|远程控制(上)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/300967

相关文章

Spring MVC如何设置响应

《SpringMVC如何设置响应》本文介绍了如何在Spring框架中设置响应,并通过不同的注解返回静态页面、HTML片段和JSON数据,此外,还讲解了如何设置响应的状态码和Header... 目录1. 返回静态页面1.1 Spring 默认扫描路径1.2 @RestController2. 返回 html2

Redis主从/哨兵机制原理分析

《Redis主从/哨兵机制原理分析》本文介绍了Redis的主从复制和哨兵机制,主从复制实现了数据的热备份和负载均衡,而哨兵机制可以监控Redis集群,实现自动故障转移,哨兵机制通过监控、下线、选举和故... 目录一、主从复制1.1 什么是主从复制1.2 主从复制的作用1.3 主从复制原理1.3.1 全量复制

四种简单方法 轻松进入电脑主板 BIOS 或 UEFI 固件设置

《四种简单方法轻松进入电脑主板BIOS或UEFI固件设置》设置BIOS/UEFI是计算机维护和管理中的一项重要任务,它允许用户配置计算机的启动选项、硬件设置和其他关键参数,该怎么进入呢?下面... 随着计算机技术的发展,大多数主流 PC 和笔记本已经从传统 BIOS 转向了 UEFI 固件。很多时候,我们也

Xshell远程连接失败以及解决方案

《Xshell远程连接失败以及解决方案》本文介绍了在Windows11家庭版和CentOS系统中解决Xshell无法连接远程服务器问题的步骤,在Windows11家庭版中,需要通过设置添加SSH功能并... 目录一.问题描述二.原因分析及解决办法2.1添加ssh功能2.2 在Windows中开启ssh服务2

Redis连接失败:客户端IP不在白名单中的问题分析与解决方案

《Redis连接失败:客户端IP不在白名单中的问题分析与解决方案》在现代分布式系统中,Redis作为一种高性能的内存数据库,被广泛应用于缓存、消息队列、会话存储等场景,然而,在实际使用过程中,我们可能... 目录一、问题背景二、错误分析1. 错误信息解读2. 根本原因三、解决方案1. 将客户端IP添加到Re

Linux中chmod权限设置方式

《Linux中chmod权限设置方式》本文介绍了Linux系统中文件和目录权限的设置方法,包括chmod、chown和chgrp命令的使用,以及权限模式和符号模式的详细说明,通过这些命令,用户可以灵活... 目录设置基本权限命令:chmod1、权限介绍2、chmod命令常见用法和示例3、文件权限详解4、ch

Mysql 中的多表连接和连接类型详解

《Mysql中的多表连接和连接类型详解》这篇文章详细介绍了MySQL中的多表连接及其各种类型,包括内连接、左连接、右连接、全外连接、自连接和交叉连接,通过这些连接方式,可以将分散在不同表中的相关数据... 目录什么是多表连接?1. 内连接(INNER JOIN)2. 左连接(LEFT JOIN 或 LEFT

SpringBoot项目引入token设置方式

《SpringBoot项目引入token设置方式》本文详细介绍了JWT(JSONWebToken)的基本概念、结构、应用场景以及工作原理,通过动手实践,展示了如何在SpringBoot项目中实现JWT... 目录一. 先了解熟悉JWT(jsON Web Token)1. JSON Web Token是什么鬼

mysql主从及遇到的问题解决

《mysql主从及遇到的问题解决》本文详细介绍了如何使用Docker配置MySQL主从复制,首先创建了两个文件夹并分别配置了`my.cnf`文件,通过执行脚本启动容器并配置好主从关系,文中还提到了一些... 目录mysql主从及遇到问题解决遇到的问题说明总结mysql主从及遇到问题解决1.基于mysql

使用Spring Cache时设置缓存键的注意事项详解

《使用SpringCache时设置缓存键的注意事项详解》在现代的Web应用中,缓存是提高系统性能和响应速度的重要手段之一,Spring框架提供了强大的缓存支持,通过​​@Cacheable​​、​​... 目录引言1. 缓存键的基本概念2. 默认缓存键生成器3. 自定义缓存键3.1 使用​​@Cacheab