技术标签: ubuntu ROS linux 人工智能 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的替代软件包,而且是开放源代码和免费的。
在通过SSH访问ROS小车系统前,我们需要搞清楚服务端与客户端的概念。
服务端:ROS小车
客户端:我们的ubuntu电脑
(以下为一些定义,赶时间请跳过)
服务端指提供服务的一端。它会等待客户端的访问,并为其提供服务。服务端一般是 sshd 进程,提供了对远程连接的处理,一般包括公共密钥认证、密钥交换、对称密钥加密和非安全连接。
客户端指面向用户的一端。它会向服务端发出连接请求,服务端响应请求,两者建立连接。
在进行SSH连接前,我们需要知道服务端与客户端的ip地址。通过以下命令进行查看。
ifconfig
例如,我的ROS小车(服务端)ip地址为192.168.43.198,ubuntu电脑(客户端)ip地址为192.168.43.114。
需要在ROS小车安装服务端
sudo apt-get install openssh-server
一般Ubuntu系统默认自动安装有SSH客户端,因此大家根据需求在自己的ubuntu安装客户端。
sudo apt-get install openssh-client
dpkg -l | grep ssh
启动ssh服务:sudo /etc/init.d/ssh start
关闭ssh服务:sudo /etc/init.d/ssh stop
重启ssh服务:sudo /etc/init.d/ssh restart
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服务),而客户端存储的信息没有发生变化。
注意:首先要确保自己的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文件,选择各部分订阅话题即可。
文章浏览阅读8.3k次,点赞5次,收藏12次。原本是ppt上面的,趴了下来,提醒自己。§序章——团队!ACM不是一个人的战斗§上篇——合理分工,演好自己的角色§下篇——队友齐心,其利断金§番外——深呼吸§尾声——信任与成功这个世界上大牛无处不在大牛的形成无非三种: 天赋异禀 勤奋过人 媳妇熬成婆大牛往往神功盖世,知道无数优化算法, coding_acm 竞赛 题目 组队技巧
文章浏览阅读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 离线安装编译
文章浏览阅读320次。RTT和RTORTT(Round-Trip Time)往返时延:发送一个数据包到收到对应的ACK,所花费的时间。简单来说就是我发送一个数据包,然后对端回发一个ACK,当接我收到ACK之后,就能计算出从我发出包到接到回应过了多久,这个时间就是RTT。RTT计算就是一个时间差RTO(Rnsmission time-out)重传间隔:重传时间间隔TCP在发送一个数据包之后,会启动一个重传..._往返时延 rtoa
文章浏览阅读432次。题意:有一个谷仓,它的容量为N。第i天先会增加M(不会超出它的容量),然后减少i, 问第几天后谷仓为空,且第一天谷仓是满的。第i天 增加 减少 1 0 1 2 1
文章浏览阅读2.1k次,点赞2次,收藏25次。VS作为宇宙第一编辑器,对Python开发也有很好的支持。添加安装打开Visual Studio Installer点击修改勾选python以及用于科学分析脚本简单使用新建一个python项目选择Python环境查看Python环境添加Python环境可以选择当前已经有的环境,或者创建新的环境.常用的调试快捷键F5 F9 F10 F11这些vs常用的调试快捷键都是可以用的几个有用的窗口打开python调试交互窗口菜单:调试->窗口->python调试交_vs2019 python调试
文章浏览阅读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论文引用
文章浏览阅读926次。+18投票我是想收集一些作业跟踪中的信息。 对于初学者来说, 我想开始让正在运行的作业信息如作业id或者工作名称等。 但已经跑了, 下面是我有什么( 将打印出当前运行作业的作业id )public static void main(String[] args) throws IOException { Configuration co_jobclient getjob null
文章浏览阅读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协议
文章浏览阅读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
文章浏览阅读8.9k次。sudo apt-get install gnome-shell_ubuntu启动gnome桌面
文章浏览阅读1.4k次。项目中经常遇到一些问题:添加到表中数据一般不会出现什么错误,反而读取数据各种报错像我这种,自以为很简单的读取,也不debug,直接获取数据,然后。。非常浪费时间,有个别报错。查看的时候,原来是某个字段为空 转化 数据类型的出现错误。解决办法:那就是‘设置默认值’我试过在实体里添加默认值 没有效果数据库---找到数据表-修改字段默认值--存入数据的时候还是没有效果..._mysql laravel 给某个字段设置默认值
文章浏览阅读3.8w次,点赞4次,收藏17次。html+css 图片右上角加删除叉,图片删除_css 右上角半圆删除