Я реализовал публикацию / подписку, используя ros java в качестве подписчика и Роспи в качестве издателя. Тем не менее, я не получаю никаких сообщений от Роспи. Я что-то здесь пропустил?
ПОДПИСЧИК В 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)
Экспортированный главный uri как переменная env перед запуском python сценария с использованием сценария оболочки
export ROS_MASTER_URI=http://1.1.1.1:11311