ubuntu系统使用SSH远程连接ROS小车并使用远程的Rviz_远程打开rviz-程序员宅基地

技术标签: ubuntu  ROS  linux  人工智能  ssh  

一.SSH简介

SSH是一种网络协议,用于计算机之间的加密通讯,即我们可以在一台计算机上通过SSH协议登陆另一台计算机,并对其进行操作。作者在这里使用的是SSH在Ubuntu中的免费开源实现,通过SSH协议访问ROS小车,并实现远程的Rviz。

说明:在帖子中只有SSH的账号密码登陆。

(以下是比较官方的说法)Secure Shell(缩写为 SSH),由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为一项创建在应用层和传输层基础上的安全协议,为计算机上的 Shell(壳层)提供安全的传输和使用环境。最初的 SSH 协议是由芬兰的一家公司的研究员 Tatu Ylönen 于 1995 年设计开发的,但是因为受版权和加密算法等等的限制,现在很多人都转而使用 OpenSSH。OpenSSH 是 SSH的替代软件包,而且是开放源代码和免费的。 

二.准备工作

1)服务端与客户端

在通过SSH访问ROS小车系统前,我们需要搞清楚服务端与客户端的概念。

服务端:ROS小车

客户端:我们的ubuntu电脑

(以下为一些定义,赶时间请跳过)

服务端指提供服务的一端。它会等待客户端的访问,并为其提供服务。服务端一般是 sshd 进程,提供了对远程连接的处理,一般包括公共密钥认证、密钥交换、对称密钥加密和非安全连接。

客户端指面向用户的一端。它会向服务端发出连接请求,服务端响应请求,两者建立连接。

2)ip地址

在进行SSH连接前,我们需要知道服务端与客户端的ip地址。通过以下命令进行查看。

ifconfig

例如,我的ROS小车(服务端)ip地址为192.168.43.198,ubuntu电脑(客户端)ip地址为192.168.43.114。

三.安装SSH

1)服务端安装

需要在ROS小车安装服务端

sudo apt-get install openssh-server

2)客户端安装

一般Ubuntu系统默认自动安装有SSH客户端,因此大家根据需求在自己的ubuntu安装客户端。

sudo apt-get install openssh-client

3)检查是否安装完成

dpkg -l | grep ssh

  

4)其他SSH指令

启动ssh服务:sudo /etc/init.d/ssh start 
关闭ssh服务:sudo /etc/init.d/ssh stop
重启ssh服务:sudo /etc/init.d/ssh restart

四.SSH连接(帐号密码)

ssh 服务端id@服务端ip地址

例如:我的小车id为nano,ip地址为192.168.43.198,那么我的命令为:

ssh [email protected]

  

 SSH默认端口号为22,如果需要更改,请按照以下操作:

(1)服务端更改端口号

gedit /etc/ssh/sshd_config
修改15行 #Port 22 值为端口号,然后重启SSH
sudo /etc/init.d/ssh restart

(2)客户端运行指令

ssh -p 端口号 服务端id@服务端ip地址

问题:

连接报错

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
SHA256:6zKiuPSPE90dB6PNCj1fICgA1DTrTxPFiVbl82+sS0E.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending RSA key in /root/.ssh/known_hosts:4
RSA host key for  has changed and you have requested strict checking.
Host key verification failed.

解决办法:运行指令打开know_hosts文件,并清空know_hosts中的数据

sudo gedit /home/.ssh/knows_hosts

报错原因: 服务器的公钥(public key)发生了变化(比如重装了系统或重装了openssh服务),而客户端存储的信息没有发生变化。

五.SSH运行导航并远程使用Rviz

注意:首先要确保自己的ubuntu电脑有ROS,并可以正常启动

(1)修改服务端.bashrc文件(ROS小车)

gedit ~/.bashrc

在后面加上

export ROS_HOSTNAME=服务端ip
export ROS_MASTER_URI=http://服务端ip:11311

(2)修改客户端.bashrc文件(自己的ubuntu电脑)

gedit ~/.bashrc

在后面加上 

export ROS_HOSTNAME=客户端ip
export ROS_MASTER_URI=http://服务端ip:11311

例如我的电脑是这样 :

 

(3)运行导航

注意:导航中不能自动开启rviz节点

客户端(自己的ubuntu电脑)通过SSH远程连接服务端(ROS小车),并启动导航相关的节点。

(4)开启Rviz

客户端(自己的ubuntu电脑)直接开启Rviz,注意不是在连接SSH后开启Rviz,导入导航的rviz文件,选择各部分订阅话题即可。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_53694106/article/details/125686232

智能推荐

ACM 组队经验谈_acm 竞赛 题目 组队技巧-程序员宅基地

文章浏览阅读8.3k次,点赞5次,收藏12次。原本是ppt上面的,趴了下来,提醒自己。§序章——团队!ACM不是一个人的战斗§上篇——合理分工,演好自己的角色§下篇——队友齐心,其利断金§番外——深呼吸§尾声——信任与成功这个世界上大牛无处不在大牛的形成无非三种: 天赋异禀 勤奋过人 媳妇熬成婆大牛往往神功盖世,知道无数优化算法, coding_acm 竞赛 题目 组队技巧

说说如何在 Linux 中离线安装 Nginx_nginx linux aarch64 离线安装编译-程序员宅基地

文章浏览阅读317次。(1)下载并安装依赖包首先下载nginx-and-gcc.tar.gz,点击下载,该压缩包内包含了 Nginx-1.18.0以及 Nginx所需要的依赖库。依赖库主要为:编译 Nginx 的GCC 编译器;未来使用 C++ 来编写 Nginx 的 G++ 编译器;Perl 正则表达式(Nginx HTTP 模块依赖库);zlib (网络数据包 gzip压缩依赖库);openssl (提供HTTPS 支持以及 MD5、SHA1 等加密算法_nginx linux aarch64 离线安装编译

计算机网络复习------TCP的滑窗_往返时延 rtoa-程序员宅基地

文章浏览阅读320次。RTT和RTORTT(Round-Trip Time)往返时延:发送一个数据包到收到对应的ACK,所花费的时间。简单来说就是我发送一个数据包,然后对端回发一个ACK,当接我收到ACK之后,就能计算出从我发出包到接到回应过了多久,这个时间就是RTT。RTT计算就是一个时间差RTO(Rnsmission time-out)重传间隔:重传时间间隔TCP在发送一个数据包之后,会启动一个重传..._往返时延 rtoa

codeforce Anton and Fairy Tale-程序员宅基地

文章浏览阅读432次。题意:有一个谷仓,它的容量为N。第i天先会增加M(不会超出它的容量),然后减少i, 问第几天后谷仓为空,且第一天谷仓是满的。第i天 增加 减少 1 0 1 2 1

使用VS2019进行python开发 调试 环境创建_vs2019 python调试-程序员宅基地

文章浏览阅读2.1k次,点赞2次,收藏25次。VS作为宇宙第一编辑器,对Python开发也有很好的支持。添加安装打开Visual Studio Installer点击修改勾选python以及用于科学分析脚本简单使用新建一个python项目选择Python环境查看Python环境添加Python环境可以选择当前已经有的环境,或者创建新的环境.常用的调试快捷键F5 F9 F10 F11这些vs常用的调试快捷键都是可以用的几个有用的窗口打开python调试交互窗口菜单:调试->窗口->python调试交_vs2019 python调试

如何利用对比学习做无监督——[CVPR22]Deraining&[ECCV20]Image Translation_unpaired deep image deraining using dual contrasti-程序员宅基地

文章浏览阅读5.9k次,点赞4次,收藏27次。知乎同名账号同步发布。目录0,参考文献和前置知识和阅读注意1,[ECCV20]Contrastive Learning for Unpaired Image-to-Image Translation1.1,创新点和架构1.2,multi-layer、patchwise的对比学习0,参考文献和前置知识和阅读注意参考文献本文通过两篇paper,简述一下如何利用对比学习做无监督。(ECCV20)Contrastive Learning for Unpaired Image-to-Image Tra_unpaired deep image deraining using dual contrastive learning论文引用

随便推点

JobClient_jobclient getjob null-程序员宅基地

文章浏览阅读926次。+18投票我是想收集一些作业跟踪中的信息。 对于初学者来说, 我想开始让正在运行的作业信息如作业id或者工作名称等。 但已经跑了, 下面是我有什么( 将打印出当前运行作业的作业id )public static void main(String[] args) throws IOException { Configuration co_jobclient getjob null

Cisco(GNS3) - 数据链路层协议PPP_gns3ppp协议-程序员宅基地

文章浏览阅读2.5k次,点赞3次,收藏22次。PPP(Point to Point Protocol)广域网点对点串行链路上的封装协议,相比HDLC(High-Level Data Link Control)协议具有更好的扩展功能,例如数据压缩、身份验证、链路捆绑等。PPP基本配置(Authentication) PPP身份认证(PAP) PPP身份认证(CHAP) PPP链路捆绑(MultiLink)一: PPP基本配置..._gns3ppp协议

JAVA1.8新特性_java 1.8 annotation 的作用域 use_type和type_parameter-程序员宅基地

文章浏览阅读215次。“Java is still not dead—and people are starting to figure that out.”本教程将用带注释的简单代码来描述新特性,你将看不到大片吓人的文字。一、接口的默认方法Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法,示例如下:复制代码代码如下:_java 1.8 annotation 的作用域 use_type和type_parameter

Ubuntu系统下安装gnome桌面_ubuntu启动gnome桌面-程序员宅基地

文章浏览阅读8.9k次。sudo apt-get install gnome-shell_ubuntu启动gnome桌面

mysql 个别字段设置默认值_mysql laravel 给某个字段设置默认值-程序员宅基地

文章浏览阅读1.4k次。项目中经常遇到一些问题:添加到表中数据一般不会出现什么错误,反而读取数据各种报错像我这种,自以为很简单的读取,也不debug,直接获取数据,然后。。非常浪费时间,有个别报错。查看的时候,原来是某个字段为空 转化 数据类型的出现错误。解决办法:那就是‘设置默认值’我试过在实体里添加默认值 没有效果数据库---找到数据表-修改字段默认值--存入数据的时候还是没有效果..._mysql laravel 给某个字段设置默认值

html+css 图片右上角加删除叉,图片删除_css 右上角半圆删除-程序员宅基地

文章浏览阅读3.8w次,点赞4次,收藏17次。html+css 图片右上角加删除叉,图片删除_css 右上角半圆删除