ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

LawrieGriffiths's profile - activity

2013-12-29 13:03:00 -0500 received badge  Famous Question (source)
2013-12-29 13:03:00 -0500 received badge  Popular Question (source)
2013-12-29 13:03:00 -0500 received badge  Notable Question (source)
2012-11-19 13:49:34 -0500 received badge  Necromancer (source)
2012-11-02 02:33:14 -0500 received badge  Famous Question (source)
2012-08-27 07:24:38 -0500 received badge  Famous Question (source)
2012-08-27 07:24:38 -0500 received badge  Popular Question (source)
2012-08-27 07:24:38 -0500 received badge  Notable Question (source)
2012-08-20 01:42:07 -0500 received badge  Notable Question (source)
2012-08-15 10:35:30 -0500 received badge  Popular Question (source)
2012-07-27 02:50:45 -0500 commented answer Run ROS on an Android Smartphone?

How do you want to use leJOS with Android? How does that overcome problems with USB and Bluetooth? I have recently added new Android projects to leJOS that improve Android connectivity to leJOS,I have not yet tried rosjava on Android with leJOS.

2012-07-27 02:32:27 -0500 answered a question Tetrix Support?

The version of leJOS in SVN has the lejos.nxt.addon.tetrix package. Have a look to see if that meets your requirements. It is quite easy to build and use the latest SVN version of leJOS.

leJOS supports both the Mindsensors and HiTechnic acceleration sensors. The tutorial for nxt_lejos_proxy has just been updated.

2012-07-27 02:23:53 -0500 answered a question nxt_lejos Tutorial vs. rosjava

The tutorial has been fixed. Please try it now.

2012-07-27 01:58:57 -0500 answered a question problem with nxt_lejos_lcp_proxy

It is best to use nxt_lejos_proxy (with ROSResponder on the NXT brick), as nxt_lejos_lcp_proxy is not currently being developed and nxt_lejos_proxy is much faster. If you do use nxt_lejos_lcp_proxy, it should work with the standard Lego firmware, but this has not tested, so there could be a problem.

It looks as if there is a problem with your USB connection to the NXT. I always use Bluetooth, so USB has not been tested much. The error you are getting sometimes occurs when there is already an active connection to the NXT. Have you successfully used the USB connection to the NXT? Did you try rebooting the NXT?

I suggest that you use nxt_lejos_proxy and ROSResponder if you can. The tutorial for this has now been updated, and works for me.

If you can use Bluetooth rather than USB it is better as you do not need a USB cable attached to the robot. It works fast enough with nxt_lejos_proxy. It is very easy to use. All you should need to do is plug in a USB Bluetooth dongle (if your PC does not have Bluetooth), and pair the NXT with the default 1234 pin.

2012-07-27 01:31:32 -0500 answered a question missing run.py from rosjava_bootstrap

leJOS had been updated to use the latest version of rosjava, but the tutorial had not been. The tutorial has now been updated.

2012-07-27 00:16:19 -0500 asked a question rosjava ChannelBuffer parameter

I updated rosjava today (July 27th) and am now getting a compilation error in a node that creates an OccupancyGrid message.

The method setData in the OccupancyGrid class used to have a byte[] parameter, but the parameter is now a ChannelBuffer.

How do I create a ChannelBuffer with my occupancy grid data?

ChannelBuffer looks like an internal class and not one that should be a parameter to a public method.

2012-06-14 02:04:48 -0500 received badge  Editor (source)
2012-06-14 02:00:43 -0500 answered a question Building nxt_lejos fails finding rosjava.mk

You can get a snapshot build from the SVN snapshot directory which will have getTurnRate in it. However, nxt_lejos_lcp_proxy does not work very well, and I may remove it. getTurnRate was a mistake and I will get rid of it some time. You are better off running nxt_lejos_proxy, which should work with lejos 0.9.1. This requires that you run the ROSResponder sample on the NXT. It works quite well for me. You will need to get ROSResponder from SVN. I need to find a solution to the hard-coded dependencies in the gradle build file. I am currently waiting for a response of my "rosjava message serialization problems" query before I do further work on nxt_lejos as it is stopping odometry and imu messages working properly, which means that parts of the navigation stack do not work.

2012-05-26 09:27:44 -0500 asked a question rosjava message serialization problems

I am having problems creating nav_msgs/Odometry messages with the latest version of rosjava (updated today).

The problem is that parts of the message, when viewed by rostopic echo, are corrupted. For example, the covariance fields have a spurious value in the first element, and setting the Twist.Twist.angular.Z field sets the wrong value and corrupts the previous Y value.

The following output from rostopic echo odom_test:

header: 
  seq: 1
  stamp: 
    secs: 0
    nsecs: 0
  frame_id: ''
child_frame_id: ''
pose: 
  pose: 
    position: 
      x: 0.0
      y: 0.0
      z: 0.0
    orientation: 
      x: 0.0
      y: 0.0
      z: 0.0
      w: 0.0
  covariance: [1.8e-322, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
twist: 
  twist: 
    linear: 
      x: 0.0
      y: 0.0
      z: 0.0
    angular: 
      x: 0.0
      y: 1.91251260352e-180
      z: 5.3357055732e-315
  covariance: [7.63918484747e-313, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
---

was produced by:

private Odometry odom;
private Publisher<Odometry> odomTopic;
private String odomMessageType = "nav_msgs/Odometry";

@Override
public void onStart(ConnectedNode node) {

    odom = node.getTopicMessageFactory().newFromType(Odometry._TYPE);
    odomTopic = node.newPublisher("odom_test", odomMessageType);

    // Leave message all blank, except ...

    odom.getTwist().getTwist().getAngular().setY(123.456);

    try {
        Thread.sleep(1000);
    } catch (InterruptedException e) {
    }

    odomTopic.publish(odom);

}

You can see the corrupted covariance and Y and Z values. Similar things happen with other messages such as Imu.

Is this a bug or am I doing something wrong?

2012-05-17 23:53:15 -0500 answered a question Building nxt_lejos fails finding rosjava.mk

The version of nxt_lejos in SVN now supports the latest version of rosjava including gradle builds.

2012-03-17 17:14:29 -0500 received badge  Teacher (source)
2012-03-17 14:09:57 -0500 answered a question Problem running lcp_proxy in nxt-lejos-pkg

nxt_lejos is at any early stage of development, and has not yet been used by anyone other than the developers.

Your problem is probably that pccomm.jar does not exist in the expected directory. You may need to edit the export section of manifest.xml and build.xml to change the paths to those used on your system, and then run rosmake. You will probably also need to build leJOS or install a Linux version of leJOS 0.9.1 on your system. To build from source, you can run the ant build.xml file in the snapshot directory.

There is a better replacement for lcp_proxy now - nxt_lejos_proxy, but that will probably have the same problems. There are installation instructions and a tutorial for nxt_lejos_proxy, but they have not yet been tested and will need improvement. nxt_lejos_proxy uses the parameter server and does not need the properties file.

2012-03-17 13:51:33 -0500 asked a question ConcurrentModificationException in rosjava

I am occasionally getting a ConcurrentModificationException exception when running rosjava. It happens when serializing the tfMessage. I am publishing tf messages at 10hz.

The stack trace is:

Exception in thread "pool-1-thread-14" java.util.ConcurrentModificationException
    at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:782)
    at java.util.ArrayList$Itr.next(ArrayList.java:754)
    at org.ros.message.tf.tfMessage.serialize(Unknown Source)
    at org.ros.message.Message.serialize(Unknown Source)
    at org.ros.internal.message.old_style.MessageSerializer.serialize(MessageSerializer.java:39)
    at org.ros.internal.transport.OutgoingMessageQueue.writeMessageToChannel(OutgoingMessageQueue.java:79)
    at org.ros.internal.transport.OutgoingMessageQueue.access$100(OutgoingMessageQueue.java:38)
    at org.ros.internal.transport.OutgoingMessageQueue$Writer.loop(OutgoingMessageQueue.java:56)
    at org.ros.concurrent.CancellableLoop.run(CancellableLoop.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:679)

Is this a known problem, and is there any way to circumvent it?

I also sometimes getting buffer overflow exceptions in the same code.

This only seems to affect tf messages. I have not seen the problem with any other messages that I am publishing.

I checked out rosjava on March 2nd. I am on Ubuntu 11.10 using ROS electric.

I notice that the stack trace indicates that I am using the old style message serializer. Is there a way to use the new style message serializer?