订阅远程rospy发布者

时间:2020-03-16 06:13:49

标签: java ros rospy

我使用rosjava作为订阅者,并使用rospy作为发布者来实现发布/订阅。但是,我没有收到rospy的任何消息。我在这里想念任何东西吗?

JAVA中的订阅者(例如ip为:1.1.1.1)

public void start_on_init() {
   nodeConfiguration = NodeConfiguration.newPublic("1.1.1.1");
   nodeConfiguration.setMasterUri(new URI("http://localhost:11311/"));
   NodeMain listener = new SampleProcessor();
   NodeMainExecutor nodeMainExecutor = DefaultNodeMainExecutor.newDefault();
   nodeMainExecutor.execute(listener, nodeConfiguration);
}

class SampleProcessor extends AbstractNodeMain {
   ...
   public void onStart(ConnectedNode connectedNode) {
      Subscriber<std_msgs.String> subscriber = connectedNode.newSubscriber("sample_topic", std_msgs.String._TYPE);
      subscriber.addMessageListener(new MessageListener<std_msgs.String>() {
         @Override
         public void onNewMessage(std_msgs.String message) {
            logger.info(message.getData());
   ...

PYTHON中的发布者(例如ip为:1.1.1.2)

sample_publisher = rospy.Publisher("sample_topic", String , queue_size=10)
sample_publisher.publish(some_json_data)

在使用shell脚本运行python脚本之前,将master uri导出为env变量

export ROS_MASTER_URI=http://1.1.1.1:11311

1 个答案:

答案 0 :(得分:0)

我认为节点很可能不在同一空间中。 roscore在哪里运行?主机IP是否在从机上导出为ROS_MASTER_URI?我认为您几乎不应该在ROS here

中研究网络设置