机器人|ROS—基于树莓派的ROS机器人ssh通信,以及多机分布式通信
1、环境 PC系统:Ubuntu16.04+ROS kinect
树莓派系统:Ubuntu16.04+ROS kinect
前提:PC和树莓派在同一局域网下;也就是都连同一个WIFI(路由器生成的那种,或者手机热点,校园网不行),或者PC连了WIFI、用根网线把树莓派和PC连起来也可以。
注:PC连接的网络要设置为共享模式,即编辑连接,在IPV4设置里把方法(Method)改为与其他计算机共享网络(Shared to other computers)。
文章图片
2、目的、作用 ssh通信:目的是通过电脑端访问树莓派,实现两者之间的文件互传、远程其他操作。
为了方便,在一台电脑可以操作两个终端。
多机分布式通信:当机器人运行后,在PC上控制、监控机器人。
为了分担树莓派的工作压力,而且ROS机器人控制,建图、导航反映在远端PC也更为人性化。
3、SSH通信 ssh程序分为有客户端程序openssh-client和服务端程序openssh-server。3.
3.1 为两台电脑安装ssh服务(树莓派可操作情况):
$ sudo apt-get install openssh-server
查看开启之:
$ sudo ps -e |grep ssh
如下则已经开启:
文章图片
如果没开启,则:
$ sudo service ssh start
3.2 修改配置文件
输入命令
$ sudo gedit /etc/ssh/sshd_config
把配置文件中的"PermitRootLogin without-password"加一个"#"号注释掉,再增加一句"PermitRootLogin yes",保存文件,是为了允许root用户登录。
3.3 查看IP
点击右上角的网络图标,看到最下面的连接信息(Connection Information)或者终端输入:ifconfig 查看当前IP,同样方法查看树莓派IP(树莓派可操作),如若树莓派没东西操作,就在电脑端执行以下操作:
(1)通过电脑端ip地址寻找网线另一端raspberry pi的ip地址,用到nmap软件。
打开terminal,输入如下命令:
$ sudo apt-get install nmap
(2)安装完成后根据你之前获得的电脑端ip地址,以192.168.1.100为例,终端输入如下命令进行搜索;
$nmap 192.168.1.0/24
一般第二个IP地址即为raspberry pi的ip地址:
第二个IP192.168.1.101就是树莓派的
文章图片
3.4 PC终端输入:
$ ssh pibot@192.168.1.101
上面的pibot是树莓派名,@后面就是树莓派的IP地址。
OK
4、分布式多机通信 树莓派为主机;PC为从机;
4.1 修改hosts文件
PC端:
sudo gedit /etc/hosts
加两行:
文章图片
树莓派端一样。
4.2 ping一下
文章图片
4.3 设置ROS-MASTER-URI
编辑.bashrc文件
gedit .bashrc
PC端和树莓派都加1行:
export ROS_MASTER_URI='http://192.168.1.101:11311'
保存退出。source一下
source .bashrc
4.4 测试
树莓派运行rosmaster(在PC上SSH操作即可)
roscore
PC运行小乌龟节点
rosrun turtlesim turtlesim_node
PC另一个终端运行键盘控制节点:
rosrun turtlesim turtlesim_teleop_key
PC端实现了监控与控制
【机器人|ROS—基于树莓派的ROS机器人ssh通信,以及多机分布式通信】
文章图片
推荐阅读
- 急于表达——往往欲速则不达
- 慢慢的美丽
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- 2019-02-13——今天谈梦想()
- 考研英语阅读终极解决方案——阅读理解如何巧拿高分
- Ⅴ爱阅读,亲子互动——打卡第178天
- 低头思故乡——只是因为睡不着
- 取名——兰
- 每日一话(49)——一位清华教授在朋友圈给大学生的9条建议
- 广角叙述|广角叙述 展众生群像——试析鲁迅《示众》的展示艺术