ROS 多台计算机联网控制机器人
0. 时间同步
sudo apt-get install chrony
1. ubuntu自带的有openssh-client
可以通过如下指令
ssh username@host
来连接同一局域网内的计算机
可是要想通过ssh被连接,ubuntu系统需要有openssh-server,可以通过
ps -e | grep ssh
来查看,如果没有显示sshd,说明openssh-server还没有安装。
2. 安装openssh-server
sudo apt-get install openssh-server
来安装openssh-server,如果顺利的话会安装成功,如果遇到
sudo apt-get install openssh-server
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助: 下列软件包有未满足的依赖关系:
openssh-server : 依赖: openssh-client (= 1:6.6p1-2ubuntu1)
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
这是因为,openssh-server是依赖于openssh-client的,那ubuntu不是自带了openssh-client吗?原因是自带的openssh-clien与所要安装的openssh-server所依赖的版本不同,这里所依赖的版本是
1:6.6p1-2ubuntu1
所以要安装对应版本的openssh-clien,来覆盖掉ubuntu自带的
sudo apt-get install openssh-client=1:6.6p1-2ubuntu1
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
建议安装的软件包:
libpam-ssh keychain monkeysphere
下列软件包将被【降级】:
openssh-client
升级了 0 个软件包,新安装了 0 个软件包,降级了 1 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
需要下载 566 kB 的软件包。
解压缩后会消耗掉 0 B 的额外空间。
您希望继续执行吗? [Y/n] y
获取:1 http://cn.archive.ubuntu.com/ubuntu/ trusty/main openssh-client amd64 1:6.6p1-2ubuntu1 [566 kB]
下载 566 kB,耗时 2秒 (212 kB/s)
dpkg:警告:downgrading openssh-client from 1:6.6p1-2ubuntu2 to 1:6.6p1-2ubuntu1
(正在读取数据库 ... 系统当前共安装有 200015 个文件和目录。)
Preparing to unpack .../openssh-client_1%3a6.6p1-2ubuntu1_amd64.deb ...
Unpacking openssh-client (1:6.6p1-2ubuntu1) over (1:6.6p1-2ubuntu2) ...
Processing triggers for man-db (2.6.7.1-1) ...
正在设置 openssh-client (1:6.6p1-2ubuntu1) ...
可以看到,提示了系统中openssh-client被降级,这样再安装openssh-server就可以成功了!
3. 配置
可以通过
hostname
命令来查看主机名
如果你想将机器人上的电脑作为主机(运行roscore),假设器主机名为hostname_robot,台式机主机名为hostname_desktop
则在机器人电脑上修改bashrc文件:
sudo gedit .bashrc
在文件最后添加
export ROS_HOSTNAME=hostname_robot.local
然后在台式机电脑上修改bashrc文件,添加如下代码:
export ROS_HOSTNAME=hostname_desktop.local
export ROS_MASTER_URI=http://hostname_robot.local:11311
PS: 上述代码不能有空格
4. 登录
在台式机上登录到机器人电脑上:
ssh username@hostname.local
OK!
5. 客户端显示图形界面
ssh连接成功后,如果想要显示图形界面,需要做一些配置。步骤如下:
5.1 服务器端的ssh必须运行转发X界面,在ssh服务器中:
sudo gedit /etc/ssh/sshd_config
其中有一行X11Forwarding yes,确保这个是yes(注意这个配置文件中的#是注释,确保X11Forwarding前面没有#注释),
然后重启ssh服务
cd /etc/init.d
./ssh restart
5.2 客户端配置,在/etc/ssh/ssh_config配置文件中,找到ForwardAgent yes,ForwardX11 yes,ForwardX11Trusted yes这3个确保是yes(注意这个配置文件中的#是注释,确保你修改的行没有被注释掉)
5.3 配置完成后,进入终端,现在假设我们的ubuntu客户端的ip是192.168.0.19,而ssh服务器的ip是192.168.0.222。下面是执行步骤,注意别弄错了:
首先终端未连接ssh之前,执行xhost +192.168.0.222 这个步骤是允许ssh服务器的X界面连接过来然后执行ssh -X root@192.168.0.222 注意-X这个是大写的X,这个步骤是连接到ssh服务器,接着会要输入密码
这个时候终端已经连接到ssh服务器了,然后执行export DISPLAY=192.168.0.19:0.0这个步骤是把ssh服务器的X显示重新定位到192.168.0.19的0.0显示器中,也就是我们的客户端
然后做个测试,执行xclock,等待。。。如果这个时候在你的ubuntu界面中出现了一个时钟界面,那么恭喜你成功了。
ROS 多台计算机联网控制机器人的更多相关文章
- 通过ros节点发布Twist Messages控制机器人--10
原创博客:转载请表明出处:http://www.cnblogs.com/zxouxuewei/ 1.到目前为止,我们已经从命令行移动机器人,但大多数时间你将依靠一个ros节点发布适当的Twist消息. ...
- ROS 教程之 network:多台计算机之间网络通信(2)
在上一篇文章中我们已经搭建好了两台计算机间通信的条件,但是每次都需要在新的终端里输入一长串export ROS_MASTER_URI之类的.实际弄起来的时候也不方便,因此在本文中,我们更进一步,简化两 ...
- Qbot回归,已感染5.4万台计算机
Qbot回归,已感染5.4万台计算机 近日,BAESystems的安全人员发表了一篇关于Qbot网络感知蠕虫回归的调查报告,指出已经感染了5.4万台计算机. FreeBuf百科 Qbot蠕虫,也叫Qa ...
- 基于WSAAsyncSelect模型的两台计算机之间的通信
任务目标 编写Win32程序模拟实现基于WSAAsyncSelect模型的两台计算机之间的通信,要求编程实现服务器端与客户端之间双向数据传递.客户端向服务器端发送"请输出从1到1000内所有 ...
- [原创]用windows7连接windows2003的终端服务器时,出现"由于这台计算机没有远程桌面客户端访问许可证,远程会话被中断"的问题
用windows7连接windows2003的终端服务器时,出现"由于这台计算机没有远程桌面客户端访问许可证,远程会话被中断"的问题,原因是终端服务器授权方式设置为了"每 ...
- (转)无法打开C盘,提示"本次操作由于这台计算机的限制被取消,请与你的管理员联系”
今天下了一个网吧用的工具一不小心把系统给限制了好多双击打开C的时候就出现本次操作由于这台计算机的限制被取消,请与你的管理员联系下载一个精锐网吧辅助工具解除了一下现在但是还是不能双击 于是就在网上找帮啊 ...
- MySql集群FAQ----mysql主从配置与集群区别、集群中需要多少台计算机呢?为什么? 等
抽取一部分显示在这里,如下, What's the difference in using Clustervs using replication? 在复制系统中,一个MySQL主服务器会更新一个或多 ...
- 集群中配置多台计算机之间ssh无密码登录的一种简便方法
当我们在配置多台计算,使之可以相互使用无密码登录-ssh,之前都是一台一台的配置,现在一台A上添加B,然后在另一台B上再次添加A,这样使得 authorized_keys中的内容相同,但时并不是完全相 ...
- 通过joystick遥感和按键控制机器人--11
原创博客:转载请表明出处:http://www.cnblogs.com/zxouxuewei/ 1.首先安装joystick遥控器驱动: sudo apt-get install ros-indigo ...
随机推荐
- Educational Codeforces Round 3 C. Load Balancing
C. Load Balancing time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...
- day22 collection 模块 (顺便对比queue也学习了一下队列)
collection 定义命名元祖,让元祖的每个元素可以通过类似对象属性的方法用".属性"及其方便的取值. 定义可前后拿取值且可迭代的双端队列 定义有顺序的字典 定义有默认值的字典 ...
- 03 Zabbix4.0添加cisco交换机基本监控步骤
点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 03 Zabbix4.0添加cisco交换机基本监控步骤 主题监控一台cisco网络设备的6项内容 ...
- 自学Linux Shell16.2-函数中使用变量
点击返回 自学Linux命令行与Shell脚本之路 16.2-函数中使用变量 1. 向函数传递参数 函数可以使用标准参数环境变量来表示命令行传递给函数的参数.例如, 函数名在变量$0中定义,函 ...
- 自学Python1.6-Centos内英文语法切换
自学Python之路 自学Python1.6-Centos内中英文语法切换 测试采用是官方Centos7.0系统 1.添加中文输入法 打开设置---区域和语言--->在输入源最下面有一个 + 号 ...
- android 开启闪光灯小应用
该程序需要在AndroidManifest.xml添加权限,属性 android:screenOrientation="portrait" android.permission.C ...
- emwin 之消息 WM_INIT_DIALOG
@2018-08-09 小记 消息 WM_INIT_DIALOG 在创建窗口时首先发送且只在创建窗口时发送即只发送这一次
- 洛谷 P1076 寻宝 解题报告
P1076 寻宝 题目描述 传说很遥远的藏宝楼顶层藏着诱人的宝藏.小明历尽千辛万苦终于找到传说中的这个藏宝楼,藏宝楼的门口竖着一个木板,上面写有几个大字:寻宝说明书.说明书的内容如下: 藏宝楼共有\( ...
- Windows 10更新时出现0x80070422错误
Windows更新 更新状态 安装更新时出现一些问题,但我们稍后会重试.如果你继续看到此错误,并想要搜索Web或联系支持人员以获取相关信息,一下信息可能会对你有帮助:(0x80070422) 分析原因 ...
- STL总结
容器类放入的都是元素的拷贝,而非引用.所以如果需要对元素做出改动,最好是把元素存在data[N]数组中,而仅仅在容器中存放数组下标. 函数传递容器类参数时,需要传引用,否则会超时. vector ve ...