2014-10-10 1 views
0

Я пытаюсь подключить учебник android pubsub android_core с основным ядром на моем сервере.rosjava (android_core) pub sub example nodes isolated

На самом деле пример работает нормально, и я могу видеть, как абонент андроида получает сообщения в активности слушателя, которые отправляются с узла говорящего, написанного в rosjava.

И когда я запускаю дополнительный узел слушателя, по-видимому, чтобы подписаться штраф:

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, он перестает работать сразу после запуска андроида APP.

Я использую ROS_MASTER_URI для моего IP-адреса, как на консоли, так и на эмуляторе, поэтому в пространстве имен не должно быть несоответствий.

Что может быть здесь ?, Проблема с пространством имен сообщений ?, проблема несовместимости версий ?. IDK.

Привет

ответ

0

Проблема была в Android эмулятор, который изолирует сетевой интерфейс виртуального устройства. Существует 2 решения: 1) Переадресация порта, чтобы узлы были видны снаружи. 2) Избавьтесь от эму и используйте реальное устройство.