Compilation Issues

This page describes some common problems with compiling the tool.

Cannot install wstool

ImportError: No module named pkg_resources (Ubuntu 12.04)

curl -O https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py
sudo python ez_setup.py

For more information, see this link.

Gradle will not download dependencies

Rosjava_core compilation will throw probably this error:


:rosjava_tutorial_services:clean UP-TO-DATE
:apache_xmlrpc_common:compileJava

FAILURE: Build failed with an exception.

* What went wrong:
Could not resolve all dependencies for configuration ':apache_xmlrpc_common:compile'.
> Could not resolve org.apache.commons:com.springsource.org.apache.commons.httpclient:3.1.0.
 Required by:
 ros.rosjava_core:apache_xmlrpc_common:0.0.0-SNAPSHOT
 > Could not HEAD 'http://robotbrains.hideho.org/nexus/content/groups/ros-public/org/apache/commons/com.springsource.org.apache.commons.httpclient/3.1.0/com.springsource.org.apache.commons.httpclient-3.1.0.pom'. Received status code 503 from server: Service Unavailable

This is caused probably due to proxy server, try setting up proxy in rosjava_core/gradle.settings file.

If this does not work, you have to change maven repository address in rosjava_core/build.gradle, it should look like this:


repositories {
  mavenLocal()
  maven {
   // url 'http://robotbrains.hideho.org/nexus/content/groups/ros-public'
   url 'https://maven-us.nuxeo.org/nexus/content/repositories/public'
  }
}

Errors caused by test_ros

43 errors similar to these:


:rosjava:compileTestJava
warning: [options] bootstrap class path not set in conjunction with -source 1.6
/home/j/workspace/nengo-ros/rosjava_core/rosjava/src/test/java/org/ros/node/topic/TopicIntegrationTest.java:178: error: package test_ros does not exist
 private final class Listener implements MessageListener<test_ros.TestHeader> {
                                                                 ^
/home/j/workspace/nengo-ros/rosjava_core/rosjava/src/test/java/org/ros/node/topic/TopicIntegrationTest.java:181: error: package test_ros does not exist
 private test_ros.TestHeader lastMessage;
                 ^

Either you do not have ROS installed, or you have installed “insufficiently big” version and rosjava_core is missing some dependencies. In this case, the ROS_PACKAGE_PATH should point also to the nengoros directory, so:

</pre>
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/workspace/nengoros
<pre>

Rosjava_core one test fails

It is probably this one:


org.ros.internal.node.DefaultNodeTest > testCreatePublic FAILED

This test fails on OS X without ROS or with barebones installation of ROS, while on Ubuntu with desktop-installation all tests are fine.

Errors during launching (demo) script in Nengo

E.g. similar errors:

org.ros.exception.RosRuntimeException:
org.ros.exception.RosRuntimeException: Unable to locate node:
org.hanns.logic.fuzzy.membership.impl.Triangular
Means that given class could not be found by the Nengo,  and the classLoader cannot launch the ROSjava node. This can be solved the most often by recompiling the source of the corresponding project and re-compiling entire multiproject:
./gradlew clean install
./tool -unf

In case of custom nodes, the problem can be also:

  • Corresponding jar file not included in the path in nengo (nengo-cl) scripts? 
  • Project hierarchy defined incorrectly? Check build.gradle and settings.gradle files in:
    • your project
    • nengoros/ and nengoros/nengo/simulator-ui/ folders

For more information about linking custom project into the Nengoros, see: demonodes project readme.

Problems running Nengo application

There are two possibilities how to run the Nengo application:

  1. Run from class files:
    • This requires that after running ./tool -unrf the user imports all projects into Eclipse.
    • Eclipse compiles projects (mainly nengo/simulator and nengo/simulator-ui and creates class files)
    • These class files are used by nengo/simulator-ui/nengo and nengo-cl scripts
  2. Install App by Gradle and run from jar files:
    • Go to nengo/simulator-ui and run: ./gradlew installApp
    • Now, the nengo can be ran by launching script: nengo/simulator-ui/build/install……../simulator-ui
    • It turned out that Gradle on Linux is unable to follow symlinks, if there is problem with copying some symlink (probably some *.py file), just copy symlinked scripts from other projects into the place (see where these files are copied by demonodes/linkData script.
Advertisements