java - 订阅远程 rospy 发布者

标签 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 脚本之前将主 uri 导出为环境变量

export ROS_MASTER_URI=http://1.1.1.1:11311

最佳答案

我认为节点可能不在同一空间中。 roscore在哪里运行?主机IP是否在从机上导出为ROS_MASTER_URI?我认为你几乎不应该研究ROS中的网络设置here

关于java - 订阅远程 rospy 发布者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60701136/

相关文章:

java - Spring Boot 单元测试 - 测试失败提示没有定义 "entityManagerFactory"bean

java - 生成 2 位整数

python - 如何高效地将ROS PointCloud2转换为pcl点云并在python中可视化

python - "ROS"如何通过SSH远程控制Python脚本

python - 当rospy.is_shutdown时停止serve_forever

python - ROS 中是否可以对同一消息类型的两个主题进行时间同步?

java - PrimeFaces v3.5 : Dialog is not shown using RequestContext on non-Ajax calls

使用 Bazel 构建 ROS 节点

ubuntu - 虚拟机ubuntu上的凉亭,没有反应

java - 当我调用优化导入时,如何防止 IntelliJ 导入 JavaDocs 中使用的类?