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 Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

W外链微信推广短连接怎么做?

制作微信推广链接的难点分析 一、内容创作难度 制作微信推广链接时,首先需要创作有吸引力的内容。这不仅要求内容本身有趣、有价值,还要能够激起人们的分享欲望。对于许多企业和个人来说,尤其是那些缺乏创意和写作能力的人来说,这是制作微信推广链接的一大难点。 二、精准定位难度 微信用户群体庞大,不同用户的需求和兴趣各异。因此,制作推广链接时需要精准定位目标受众,以便更有效地吸引他们点击并分享链接

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

【STM32】SPI通信-软件与硬件读写SPI

SPI通信-软件与硬件读写SPI 软件SPI一、SPI通信协议1、SPI通信2、硬件电路3、移位示意图4、SPI时序基本单元(1)开始通信和结束通信(2)模式0---用的最多(3)模式1(4)模式2(5)模式3 5、SPI时序(1)写使能(2)指定地址写(3)指定地址读 二、W25Q64模块介绍1、W25Q64简介2、硬件电路3、W25Q64框图4、Flash操作注意事项软件SPI读写W2

Java 连接Sql sever 2008

Java 连接Sql sever 2008 /Sql sever 2008 R2 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class TestJDBC

实例:如何统计当前主机的连接状态和连接数

统计当前主机的连接状态和连接数 在 Linux 中,可使用 ss 命令来查看主机的网络连接状态。以下是统计当前主机连接状态和连接主机数量的具体操作。 1. 统计当前主机的连接状态 使用 ss 命令结合 grep、cut、sort 和 uniq 命令来统计当前主机的 TCP 连接状态。 ss -nta | grep -v '^State' | cut -d " " -f 1 | sort |

git ssh key相关

step1、进入.ssh文件夹   (windows下 下载git客户端)   cd ~/.ssh(windows mkdir ~/.ssh) step2、配置name和email git config --global user.name "你的名称"git config --global user.email "你的邮箱" step3、生成key ssh-keygen

vue2 组件通信

props + emits props:用于接收父组件传递给子组件的数据。可以定义期望从父组件接收的数据结构和类型。‘子组件不可更改该数据’emits:用于定义组件可以向父组件发出的事件。这允许父组件监听子组件的事件并作出响应。(比如数据更新) props检查属性 属性名类型描述默认值typeFunction指定 prop 应该是什么类型,如 String, Number, Boolean,

【Go】go连接clickhouse使用TCP协议

离开你是傻是对是错 是看破是软弱 这结果是爱是恨或者是什么 如果是种解脱 怎么会还有眷恋在我心窝 那么爱你为什么                      🎵 黄品源/莫文蔚《那么爱你为什么》 package mainimport ("context""fmt""log""time""github.com/ClickHouse/clickhouse-go/v2")func main(