我正在尝试将android_core的android pubsub教程与我服务器中的主核心连接起来。
实际上这个例子运行正常,我能够看到android订阅者在侦听器活动中获取消息,这些消息是从用rosjava编写的talker节点发送的。
当我运行一个额外的监听器节点时,似乎订阅正常:
rostopic info /chatter
Type: std_msgs/String
Publishers:
* /rosjava_tutorial_pubsub/talker (http://10.0.2.15:45508/)
Subscribers:
* /listener_6323_1412952506377 (http://laptop:37300/)
* /android_gingerbread/ros_text_view (http://10.0.2.15:47832/)
图表应如下所示:
| / listener_6323_1412952506377 | -------> | / rosjava_tutorial_pubsub / talker | | / android_gingerbread / ros_text_view | - > | --------------------------------- |
所以,问题在于,即使它被订阅,它也看不到任何东西,说话者在模拟器中发送的消息很好地到达模拟器中的监听器,但不到外部监听器。此外,我尝试从控制台发送消息,并且控制台中的侦听器可以很好地接收消息,但模拟器中的侦听器将看不到它。另外,我注意到当我运行rqt_graph时,它在我启动Android APP后立即停止工作。
我在控制台和模拟器中使用设置为IP的ROS_MASTER_URI,因此命名空间不应该存在不匹配。
这里可能会发生什么?,消息的名称空间问题?,版本不兼容问题? IDK。
此致
答案 0 :(得分:0)
问题是Android模拟器,它隔离了虚拟设备的网络接口。 有两种解决方案: 1)执行端口转发以使节点在外部可见。 2)摆脱鸸and并使用真实设备。