Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

using java-actionlib on android doesn't work

Hello ROS community!

I have following set-up:

  • an Ubuntu in a Virtual Box (running in Windows 7)
  • an Android Device

I want to run the Fibonacci tutorial from the actionlib tutorials (click). When both, the client and the server, run on Ubuntu, everything works.

As soon as the client runs on android, it doesn't work anymore. The client says "Waiting for action server to start". This is the client code:

 /*
 * Copyright (C) 2011 Google Inc.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */

package org.ros.android.tutorial.pubsub;

import java.net.InetSocketAddress;
import java.net.URI;
import java.net.URISyntaxException;

import org.ros.actionlib.example.RunFibonacciSimpleActionClient;
import org.ros.address.BindAddress;
import org.ros.node.DefaultNodeRunner;
import org.ros.node.NodeConfiguration;
import org.ros.node.NodeRunner;
import org.ros.tutorials.pubsub.R;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

    /**
     * @author damonkohler@google.com (Damon Kohler)
     */
    public class MainActivity extends Activity {

      @SuppressWarnings("static-access")
        public MainActivity() {
            System.setProperty("java.net.preferIPv6Addresses", "false");
        }

      @Override
      public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
      }

        @Override
        protected void onResume() {
            super.onResume();

            String masterUri = "http://192.168.0.72:11311";
            String host = "192.168.0.68";
            URI uri = null;
            try {
                uri = new URI(masterUri);
            } catch (URISyntaxException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            NodeConfiguration configuration = NodeConfiguration.newPublic(host, uri);

            //NodeConfiguration configuration = NodeConfiguration.newPrivate();
            configuration.setNodeName("fibClientNode");
            configuration.setMasterUri(uri);
            NodeRunner runner = DefaultNodeRunner.newDefault();

            RunFibonacciSimpleActionClient fibClient = new RunFibonacciSimpleActionClient();
            Log.v("topics", configuration.getMasterUri().toString());
            fibClient.run(runner, configuration);
        }

      @Override
      protected void onPause() {
        super.onPause();
      }

    }

This is the important server code:

    public static void main() {
    try {
      // user code implementing the SimpleActionServerCallbacks interface
      FibonacciSimpleActionServerCallbacks impl = new FibonacciSimpleActionServerCallbacks();

      FibonacciActionSpec spec = new FibonacciActionSpec();
      final FibonacciSimpleActionServer sas =
          spec.buildSimpleActionServer("fibonacci_server", impl, true);

    String masterUri = "http://192.168.0.72:11311";
    String host = "192.168.0.72";
    URI uri = null;
    try {
        uri = new URI(masterUri);
    } catch (URISyntaxException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

      NodeConfiguration configuration = NodeConfiguration.newPublic(host, uri);
      configuration.setNodeName("fibServerNode");

      NodeRunner runner = DefaultNodeRunner.newDefault();

      runner.run(new NodeMain() {

        @Override
        public void onStart(Node node) {
          sas.addClientPubSub(node);
        }

        @Override
        public void onShutdown(Node node) {
        }

        @Override
        public void onShutdownComplete(Node node) {
        }

      }, configuration);
    } catch (Exception e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }

Additional information:

ubuntu@ubuntu-VirtualBox:~$ rosnode list -a http://192.168.0.68:33448 /fibClientNode http://192.168.0.72:45874 /fibServerNode http://192.168.0.72:58875/ /rosout

ubuntu@ubuntu-VirtualBox:~$ roswtf Loaded plugin tf.tfwtf No package or stack in context ================================================================================ Static checks summary:

No errors or warnings ================================================================================ Beginning tests of your ROS graph. These may take awhile... analyzing graph... ... done analyzing graph running graph rules... ... done running graph rules

Online checks summary:

Found 3 warning(s). Warnings are things that may be just fine, but are sometimes at fault

WARNING Node [/fibServerNode] is not connected to anything WARNING Node [/fibClientNode] is not connected to anything WARNING The following nodes are unexpectedly connected: * unknown (http://192.168.0.72:45874/)->/rosout (/rosout) * unknown (http://192.168.0.68:33448/)->/rosout (/rosout)

Found 1 error(s).

ERROR The following nodes should be connected but aren't: * /fibServerNode->/fibClientNode (/result) * /fibServerNode->/fibClientNode (/feedback) * /fibClientNode->/fibServerNode (/cancel) * /fibClientNode->/fibServerNode (/goal) * /fibServerNode->/fibClientNode (/status)

on Ubuntu: ROS_IP is 192.168.0.72, ROS_MASTER_URI = http://192.168.0.72:11311

I was hoping, someone could tell me, why the client and server don't communicate. rosnode finds all nodes, IP addresses seem to be correct, but for some reason they are not really connected.

using java-actionlib on android doesn't work

Hello ROS community!

I have following set-up:

  • an Ubuntu in a Virtual Box (running in Windows 7)7) (192.168.0.72)
  • an Android DeviceDevice (192.168.0.68)

I want to run the Fibonacci tutorial from the actionlib tutorials (click). When both, the client and the server, run on Ubuntu, everything works.

As soon as the client runs on android, it doesn't work anymore. The client says "Waiting for action server to start". This is the client code:

 /*
 * Copyright (C) 2011 Google Inc.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */

package org.ros.android.tutorial.pubsub;

import java.net.InetSocketAddress;
import java.net.URI;
import java.net.URISyntaxException;

import org.ros.actionlib.example.RunFibonacciSimpleActionClient;
import org.ros.address.BindAddress;
import org.ros.node.DefaultNodeRunner;
import org.ros.node.NodeConfiguration;
import org.ros.node.NodeRunner;
import org.ros.tutorials.pubsub.R;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

    /**
     * @author damonkohler@google.com (Damon Kohler)
     */
    public class MainActivity extends Activity {

      @SuppressWarnings("static-access")
        public MainActivity() {
            System.setProperty("java.net.preferIPv6Addresses", "false");
        }

      @Override
      public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
      }

        @Override
        protected void onResume() {
            super.onResume();

            String masterUri = "http://192.168.0.72:11311";
            String host = "192.168.0.68";
            URI uri = null;
            try {
                uri = new URI(masterUri);
            } catch (URISyntaxException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            NodeConfiguration configuration = NodeConfiguration.newPublic(host, uri);

            //NodeConfiguration configuration = NodeConfiguration.newPrivate();
            configuration.setNodeName("fibClientNode");
            configuration.setMasterUri(uri);
            NodeRunner runner = DefaultNodeRunner.newDefault();

            RunFibonacciSimpleActionClient fibClient = new RunFibonacciSimpleActionClient();
            Log.v("topics", configuration.getMasterUri().toString());
            fibClient.run(runner, configuration);
        }

      @Override
      protected void onPause() {
        super.onPause();
      }

    }

This is the important server code:

    public static void main() {
    try {
      // user code implementing the SimpleActionServerCallbacks interface
      FibonacciSimpleActionServerCallbacks impl = new FibonacciSimpleActionServerCallbacks();

      FibonacciActionSpec spec = new FibonacciActionSpec();
      final FibonacciSimpleActionServer sas =
          spec.buildSimpleActionServer("fibonacci_server", impl, true);

    String masterUri = "http://192.168.0.72:11311";
    String host = "192.168.0.72";
    URI uri = null;
    try {
        uri = new URI(masterUri);
    } catch (URISyntaxException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

      NodeConfiguration configuration = NodeConfiguration.newPublic(host, uri);
      configuration.setNodeName("fibServerNode");

      NodeRunner runner = DefaultNodeRunner.newDefault();

      runner.run(new NodeMain() {

        @Override
        public void onStart(Node node) {
          sas.addClientPubSub(node);
        }

        @Override
        public void onShutdown(Node node) {
        }

        @Override
        public void onShutdownComplete(Node node) {
        }

      }, configuration);
    } catch (Exception e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }

Additional information:

ubuntu@ubuntu-VirtualBox:~$ rosnode list -a http://192.168.0.68:33448 /fibClientNode http://192.168.0.72:45874 /fibServerNode http://192.168.0.72:58875/ /rosout

ubuntu@ubuntu-VirtualBox:~$ roswtf Loaded plugin tf.tfwtf No package or stack in context ================================================================================ Static checks summary:

No errors or warnings ================================================================================ Beginning tests of your ROS graph. These may take awhile... analyzing graph... ... done analyzing graph running graph rules... ... done running graph rules

Online checks summary:

Found 3 warning(s). Warnings are things that may be just fine, but are sometimes at fault

WARNING Node [/fibServerNode] is not connected to anything WARNING Node [/fibClientNode] is not connected to anything WARNING The following nodes are unexpectedly connected: * unknown (http://192.168.0.72:45874/)->/rosout (/rosout) * unknown (http://192.168.0.68:33448/)->/rosout (/rosout)

Found 1 error(s).

ERROR The following nodes should be connected but aren't: * /fibServerNode->/fibClientNode (/result) * /fibServerNode->/fibClientNode (/feedback) * /fibClientNode->/fibServerNode (/cancel) * /fibClientNode->/fibServerNode (/goal) * /fibServerNode->/fibClientNode (/status)

on Ubuntu: ROS_IP is 192.168.0.72, ROS_MASTER_URI = http://192.168.0.72:11311

I was hoping, someone could tell me, why the client and server don't communicate. rosnode finds all nodes, IP addresses seem to be correct, but for some reason they are not really connected.

using java-actionlib on android doesn't work

Hello ROS community!

I have following set-up:

  • an Ubuntu in a Virtual Box (running in Windows 7) (192.168.0.72)
  • an Android Device (192.168.0.68)

I want to run the Fibonacci tutorial from the actionlib tutorials (click). When both, the client and the server, run on Ubuntu, everything works.

As soon as the client runs on android, it doesn't work anymore. The client says "Waiting for action server to start". This is the client code:

 /*
 * Copyright (C) 2011 Google Inc.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */

package org.ros.android.tutorial.pubsub;

import java.net.InetSocketAddress;
import java.net.URI;
import java.net.URISyntaxException;

import org.ros.actionlib.example.RunFibonacciSimpleActionClient;
import org.ros.address.BindAddress;
import org.ros.node.DefaultNodeRunner;
import org.ros.node.NodeConfiguration;
import org.ros.node.NodeRunner;
import org.ros.tutorials.pubsub.R;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

    /**
     * @author damonkohler@google.com (Damon Kohler)
     */
    public class MainActivity extends Activity {

      @SuppressWarnings("static-access")
        public MainActivity() {
            System.setProperty("java.net.preferIPv6Addresses", "false");
        }

      @Override
      public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
      }

        @Override
        protected void onResume() {
            super.onResume();

            String masterUri = "http://192.168.0.72:11311";
            String host = "192.168.0.68";
            URI uri = null;
            try {
                uri = new URI(masterUri);
            } catch (URISyntaxException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            NodeConfiguration configuration = NodeConfiguration.newPublic(host, uri);

            //NodeConfiguration configuration = NodeConfiguration.newPrivate();
            configuration.setNodeName("fibClientNode");
            configuration.setMasterUri(uri);
            NodeRunner runner = DefaultNodeRunner.newDefault();

            RunFibonacciSimpleActionClient fibClient = new RunFibonacciSimpleActionClient();
            Log.v("topics", configuration.getMasterUri().toString());
            fibClient.run(runner, configuration);
        }

      @Override
      protected void onPause() {
        super.onPause();
      }

    }

This is the important server code:

    public static void main() {
    try {
      // user code implementing the SimpleActionServerCallbacks interface
      FibonacciSimpleActionServerCallbacks impl = new FibonacciSimpleActionServerCallbacks();

      FibonacciActionSpec spec = new FibonacciActionSpec();
      final FibonacciSimpleActionServer sas =
          spec.buildSimpleActionServer("fibonacci_server", impl, true);

    String masterUri = "http://192.168.0.72:11311";
    String host = "192.168.0.72";
    URI uri = null;
    try {
        uri = new URI(masterUri);
    } catch (URISyntaxException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

      NodeConfiguration configuration = NodeConfiguration.newPublic(host, uri);
      configuration.setNodeName("fibServerNode");

      NodeRunner runner = DefaultNodeRunner.newDefault();

      runner.run(new NodeMain() {

        @Override
        public void onStart(Node node) {
          sas.addClientPubSub(node);
        }

        @Override
        public void onShutdown(Node node) {
        }

        @Override
        public void onShutdownComplete(Node node) {
        }

      }, configuration);
    } catch (Exception e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }

Additional information:

ubuntu@ubuntu-VirtualBox:~$ rosnode list -a http://192.168.0.68:33448 /fibClientNode http://192.168.0.72:45874 /fibServerNode http://192.168.0.72:58875/ /rosout

ubuntu@ubuntu-VirtualBox:~$ roswtf Loaded plugin tf.tfwtf No package or stack in context ================================================================================ Static checks summary:

No errors or warnings ================================================================================ Beginning tests of your ROS graph. These may take awhile... analyzing graph... ... done analyzing graph running graph rules... ... done running graph rules

Online checks summary:

Found 3 warning(s). Warnings are things that may be just fine, but are sometimes at fault

WARNING Node [/fibServerNode] is not connected to anything WARNING Node [/fibClientNode] is not connected to anything WARNING The following nodes are unexpectedly connected: * unknown (http://192.168.0.72:45874/)->/rosout (/rosout) * unknown (http://192.168.0.68:33448/)->/rosout (/rosout)

Found 1 error(s).

ERROR The following nodes should be connected but aren't: * /fibServerNode->/fibClientNode (/result) * /fibServerNode->/fibClientNode (/feedback) * /fibClientNode->/fibServerNode (/cancel) * /fibClientNode->/fibServerNode (/goal) * /fibServerNode->/fibClientNode (/status)

on Ubuntu: ROS_IP is 192.168.0.72, ROS_MASTER_URI = http://192.168.0.72:11311

I was hoping, someone could tell me, why the client and server don't communicate. rosnode finds all nodes, IP addresses seem to be correct, but for some reason they are not really connected.

using java-actionlib on android doesn't work

Hello ROS community!

I have following set-up:

  • an Ubuntu in a Virtual Box (running in Windows 7) (192.168.0.72)
  • an Android Device (192.168.0.68)

I want to run the Fibonacci tutorial from the actionlib tutorials (click). When both, the client and the server, run on Ubuntu, everything works.

As soon as the client runs on android, it doesn't work anymore. The client says "Waiting for action server to start". This is the client code:

 /*
 * Copyright (C) 2011 Google Inc.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */

package org.ros.android.tutorial.pubsub;

import java.net.InetSocketAddress;
import java.net.URI;
import java.net.URISyntaxException;

import org.ros.actionlib.example.RunFibonacciSimpleActionClient;
import org.ros.address.BindAddress;
import org.ros.node.DefaultNodeRunner;
import org.ros.node.NodeConfiguration;
import org.ros.node.NodeRunner;
import org.ros.tutorials.pubsub.R;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

    /**
     * @author damonkohler@google.com (Damon Kohler)
     */
    public class MainActivity extends Activity {

      @SuppressWarnings("static-access")
        public MainActivity() {
            System.setProperty("java.net.preferIPv6Addresses", "false");
        }

      @Override
      public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
      }

        @Override
        protected void onResume() {
            super.onResume();

            String masterUri = "http://192.168.0.72:11311";
            String host = "192.168.0.68";
            URI uri = null;
            try {
                uri = new URI(masterUri);
            } catch (URISyntaxException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            NodeConfiguration configuration = NodeConfiguration.newPublic(host, uri);

            //NodeConfiguration configuration = NodeConfiguration.newPrivate();
            configuration.setNodeName("fibClientNode");
            configuration.setMasterUri(uri);
            NodeRunner runner = DefaultNodeRunner.newDefault();

            RunFibonacciSimpleActionClient fibClient = new RunFibonacciSimpleActionClient();
            Log.v("topics", configuration.getMasterUri().toString());
            fibClient.run(runner, configuration);
        }

      @Override
      protected void onPause() {
        super.onPause();
      }

    }

This is the important server code:

    public static void main() {
    try {
      // user code implementing the SimpleActionServerCallbacks interface
      FibonacciSimpleActionServerCallbacks impl = new FibonacciSimpleActionServerCallbacks();

      FibonacciActionSpec spec = new FibonacciActionSpec();
      final FibonacciSimpleActionServer sas =
          spec.buildSimpleActionServer("fibonacci_server", impl, true);

    String masterUri = "http://192.168.0.72:11311";
    String host = "192.168.0.72";
    URI uri = null;
    try {
        uri = new URI(masterUri);
    } catch (URISyntaxException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

      NodeConfiguration configuration = NodeConfiguration.newPublic(host, uri);
      configuration.setNodeName("fibServerNode");

      NodeRunner runner = DefaultNodeRunner.newDefault();

      runner.run(new NodeMain() {

        @Override
        public void onStart(Node node) {
          sas.addClientPubSub(node);
        }

        @Override
        public void onShutdown(Node node) {
        }

        @Override
        public void onShutdownComplete(Node node) {
        }

      }, configuration);
    } catch (Exception e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }

Additional information:

ubuntu@ubuntu-VirtualBox:~$ rosnode list -a http://192.168.0.68:33448 /fibClientNode http://192.168.0.72:45874 /fibServerNode http://192.168.0.72:58875/ /rosout

ubuntu@ubuntu-VirtualBox:~$ roswtf Loaded plugin tf.tfwtf No package or stack in context ================================================================================ Static checks summary:

No errors or warnings ================================================================================ Beginning tests of your ROS graph. These may take awhile... analyzing graph... ... done analyzing graph running graph rules... ... done running graph rules

Online checks summary:

Found 3 warning(s). Warnings are things that may be just fine, but are sometimes at fault

WARNING Node [/fibServerNode] is not connected to anything WARNING Node [/fibClientNode] is not connected to anything WARNING The following nodes are unexpectedly connected: * unknown (http://192.168.0.72:45874/)->/rosout (/rosout) * unknown (http://192.168.0.68:33448/)->/rosout (/rosout)

Found 1 error(s).

ERROR The following nodes should be connected but aren't: * /fibServerNode->/fibClientNode (/result) * /fibServerNode->/fibClientNode (/feedback) * /fibClientNode->/fibServerNode (/cancel) * /fibClientNode->/fibServerNode (/goal) * /fibServerNode->/fibClientNode (/status)

on Ubuntu: ROS_IP is 192.168.0.72, ROS_MASTER_URI = http://192.168.0.72:11311

I was hoping, someone could tell me, why the client and server don't communicate. rosnode finds all nodes, IP addresses seem to be correct, but for some reason they are not really connected.

using java-actionlib on android doesn't work

Hello ROS community!

I have following set-up:

  • an Ubuntu in a Virtual Box (running in Windows 7) (192.168.0.72)
  • an Android Device (192.168.0.68)

Network setup:

  • Host Operating System (Windows 7, IP=192.168.0.59 via DHCP) is connected via LAN to the company network.
  • Virtual Box Network settings: Bridged Adapter
  • Ubuntu in Virtual Box has 192.168.0.72 (DHCP)
  • Android Device is connected via WLAN (DHCP) to the company network
  • I can ping all devices from Windows 7 and Ubuntu

I want to run the Fibonacci tutorial from the actionlib tutorials (click). When both, the client and the server, run on Ubuntu, everything works.

As soon as the client runs on android, it doesn't work anymore. The client says "Waiting for action server to start". This is the client code:

package org.ros.android.tutorial.pubsub;

import java.net.InetSocketAddress;
import java.net.URI;
import java.net.URISyntaxException;

import org.ros.actionlib.example.RunFibonacciSimpleActionClient;
import org.ros.address.BindAddress;
import org.ros.node.DefaultNodeRunner;
import org.ros.node.NodeConfiguration;
import org.ros.node.NodeRunner;
import org.ros.tutorials.pubsub.R;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

    /**
     * @author damonkohler@google.com (Damon Kohler)
     */
    public class MainActivity extends Activity {

      @SuppressWarnings("static-access")
        public MainActivity() {
            System.setProperty("java.net.preferIPv6Addresses", "false");
        }

      @Override
      public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
      }

        @Override
        protected void onResume() {
            super.onResume();

            String masterUri = "http://192.168.0.72:11311";
            String host = "192.168.0.68";
            URI uri = null;
            try {
                uri = new URI(masterUri);
            } catch (URISyntaxException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            NodeConfiguration configuration = NodeConfiguration.newPublic(host, uri);

            //NodeConfiguration configuration = NodeConfiguration.newPrivate();
            configuration.setNodeName("fibClientNode");
            configuration.setMasterUri(uri);
            NodeRunner runner = DefaultNodeRunner.newDefault();

            RunFibonacciSimpleActionClient fibClient = new RunFibonacciSimpleActionClient();
            Log.v("topics", configuration.getMasterUri().toString());
            fibClient.run(runner, configuration);
        }

      @Override
      protected void onPause() {
        super.onPause();
      }

    }

This is the important server code:

    public static void main() {
    try {
      // user code implementing the SimpleActionServerCallbacks interface
      FibonacciSimpleActionServerCallbacks impl = new FibonacciSimpleActionServerCallbacks();

      FibonacciActionSpec spec = new FibonacciActionSpec();
      final FibonacciSimpleActionServer sas =
          spec.buildSimpleActionServer("fibonacci_server", impl, true);

    String masterUri = "http://192.168.0.72:11311";
    String host = "192.168.0.72";
    URI uri = null;
    try {
        uri = new URI(masterUri);
    } catch (URISyntaxException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

      NodeConfiguration configuration = NodeConfiguration.newPublic(host, uri);
      configuration.setNodeName("fibServerNode");

      NodeRunner runner = DefaultNodeRunner.newDefault();

      runner.run(new NodeMain() {

        @Override
        public void onStart(Node node) {
          sas.addClientPubSub(node);
        }

        @Override
        public void onShutdown(Node node) {
        }

        @Override
        public void onShutdownComplete(Node node) {
        }

      }, configuration);
    } catch (Exception e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }

Additional information:

ubuntu@ubuntu-VirtualBox:~$ rosnode list -a http://192.168.0.68:33448 /fibClientNode http://192.168.0.72:45874 /fibServerNode http://192.168.0.72:58875/ /rosout

ubuntu@ubuntu-VirtualBox:~$ roswtf Loaded plugin tf.tfwtf No package or stack in context ================================================================================ Static checks summary:

No errors or warnings ================================================================================ Beginning tests of your ROS graph. These may take awhile... analyzing graph... ... done analyzing graph running graph rules... ... done running graph rules

Online checks summary:

Found 3 warning(s). Warnings are things that may be just fine, but are sometimes at fault

WARNING Node [/fibServerNode] is not connected to anything WARNING Node [/fibClientNode] is not connected to anything WARNING The following nodes are unexpectedly connected: * unknown (http://192.168.0.72:45874/)->/rosout (/rosout) * unknown (http://192.168.0.68:33448/)->/rosout (/rosout)

Found 1 error(s).

ERROR The following nodes should be connected but aren't: * /fibServerNode->/fibClientNode (/result) * /fibServerNode->/fibClientNode (/feedback) * /fibClientNode->/fibServerNode (/cancel) * /fibClientNode->/fibServerNode (/goal) * /fibServerNode->/fibClientNode (/status)

on Ubuntu: ROS_IP is 192.168.0.72, ROS_MASTER_URI = http://192.168.0.72:11311

I was hoping, someone could tell me, why the client and server don't communicate. rosnode finds all nodes, IP addresses seem to be correct, but for some reason they are not really connected.