【Rosbridge】ROS 与 Android 通信(调试跑通 apk 文件)

系列博客第一篇: 配置编译 apk 文件
系列博客第二篇: 调试跑通 apk 文件
系列博客第三篇: 通信演示

我的实验环境

  • Windows 10(android虚拟机蓝叠)
  • Ubuntu 18.04 (ROS)
  • 上一篇博客编译出别人的安卓apk
    该apk有待调试,存在问题。

问题1: APK页面跳转黑屏

如果连接不上网页,那么会黑屏+闪退,这需要返回android Studio 找问题

1.1 先看一下AS 的教程再次加深对于AS的认知再继续。
Android studio 教程 这个系列视频最后也有一些常见gradle问题可以参考
1.2 感谢: Android Activity切换(跳转)时出现黑屏的解决方法分享

问题2:使用局域网IP连不上Ubuntu

更改网络端口之后,安卓没有正常连接上Ubuntu 订阅发布消息,连接异常。

思路:只要websocket 能行,那么这个安卓软件就没问题
使用ROS.ORG websocket例程来测试

  • Ubuntu 上使用ifconfig 查看到IP地址为10.122.219.46
    websocket端口9090
    运行,报错如下:
WebSocket connection to 'ws://10.122.219.46:9090/' failed: Error in connection establishment: net::ERR_CONNECTION_TIMED_OUT

2.1 觉得可能是防火墙问题,关了Ubuntu防火墙然而还是没成功。
感谢:打开关闭ubuntu 防火墙

2.2 尝试修改ip地址
使用socket 情况下的windows系统与ubuntu16.04系统通信

2.3 尝试ping另一台电脑,发现ping不通:关安全卫士即可
感谢: 同一局域网windows和linux互ping不通

现在互相ping成功,说明可以进行通信。刷新浏览器,希望斐波那契数列可以出来。
我现在重启电脑,准备再次尝试ROS.ORG websocket例程
这次看起来是有效果的,报了一个新的错误CONNECTION_REFUSED

roslib.js:2224 WebSocket connection to 'ws://192.168.0.2:9090/' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED

以前尝试都是拖了很久没有响应,这次是立马拒绝。看起来离成功进了一步。不知道是哪里的权限没有打开。

这里有说到监听改成0.0.0.0这是另外一个项目,好像和我这个没什么关系

2.4 使用telnet 尝试测试
windows使用telnet ubuntu 9090端口无法接通
在ubuntu中 9090端口是处于listen状态

就是拒绝连接 我能怎么办 /抓狂
暂停一下思考一下 …
吃了顿晚饭再来肝,这时忽然校园网断了一下,百度都上不去。
我拿手机开热点,把ip调整成192.168.0.15和192.168.0.20测试就忽然都成了。
只不过在这个情况下虽然连接上热点,但是并不能够上网。

参考资料

那篇博客Android和ROS的通信 消息的传递

posted @ 2020-10-03 19:37  無数  阅读(64)  评论(0编辑  收藏  举报