What's next after 0.8.1 beta?

This is where you talk about the EV3 software itself, installation issues, and programming talk.

Moderators: roger, gloomyandy, skoehler

What's next after 0.8.1 beta?

Postby AlanG » Thu Aug 14, 2014 2:32 pm

Can the leJOS development team give us any idea of when the next EV3 leJOS release will come? Will it be another beta? What will be its most significant features?
AlanG
New User
 
Posts: 15
Joined: Wed May 21, 2014 10:02 pm

Re: What's next after 0.8.1 beta?

Postby gloomyandy » Thu Aug 14, 2014 3:23 pm

Yes it will be another beta. Main features as far as I can remember (Lawrie, please feel free to add)...
* Much improved audio playback
* Fast i2c interface (100KHz as well as 10KHz)
* Raw uart access
* Updated automatic device detection (avoid causing i2c data errors)
* Lots of fixes to various sensors
* Various classes renamed
* Added fsck and use use it to fix sdcard errors
* Support for web cams
* Bug fixes
* Java 8 support
Some of the above is already in git master, some is still being worked on.

Are there any features you are particularly looking for?
User avatar
gloomyandy
leJOS Team Member
 
Posts: 4172
Joined: Fri Sep 28, 2007 2:06 pm
Location: UK

Re: What's next after 0.8.1 beta?

Postby AlanG » Thu Aug 14, 2014 4:44 pm

Based on several years' experience designing software for both military and civilian GPS systems, I have a few recommendations for changes to the GPS NMEA message classes. Among these, my main request would be for the conversion and reporting of latitude and longitude as double, rather than float. Currently available GPS receivers are quite capable of reporting NMEA messages containing lats and lons that are accurate to about one meter - the 5th or 6th decimal place of a value in degrees. So, for high latitudes (near the poles) or high longitudes (near the International Date Line), the lat and lon values in degrees are actually accurate to 8 or 9 digits. An IEEE 754 floating point "float" value is not quite that good. A "double" value is.

Also, as part of the documentation in a future release, could the development team provide execution profile data on the high-rate threads that are part of the leJOS code? I am interested right now in the PID thread that runs in the JavaRegulatedMotor. Your code shows that that thread runs every 4 ms, i.e., 250 HZ. At that repetition rate, what percentage of an ARM9's throughput does that require? I'm concerned about the effect of using NXTRegulatedMotors (or any regulated motors) in my multi-threaded real-time robot code.

Thanks!
AlanG
New User
 
Posts: 15
Joined: Wed May 21, 2014 10:02 pm

Re: What's next after 0.8.1 beta?

Postby gloomyandy » Thu Aug 14, 2014 5:53 pm

The default motor regulator is no longer Java based (and so does not have a high priority thread). The PID loop is executed in a kernel module and actually runs at interrupt time. The older Java based regulator is provided as an alternative, but it is not the default and will not normally be used.

If you are concerned about real time issues then you probably need to run your own tests, from my limited testing the jit and gc are bigger issues than high priority threads (unlike on the NXT Java on the EV3 does not use a pure priority based threading model, so even with high priority thread other threads will always run). The EV3 is not as good a real time system as the NXT, though it obviously has other advantages. The jit in particular causes pauses in the running code (this was one of the reasons we moved the PID code out of Java). If you do run such tests we would be interested to see the results.

As to the GPS code, I'm not sure if/when this will be addressed. I suspect it will not be a high priority item as not many of the current dev team have GPS devices and our past experience has been that thy are of little use for robots that operate indoors. Do you plan to operate your robot outside? Do you have access to a GPS system that works indoors? Feel free to update the class to use doubles it should be pretty straight forward to do so, if you do then I'm sure we would be happy to include the updated code in the main release.
User avatar
gloomyandy
leJOS Team Member
 
Posts: 4172
Joined: Fri Sep 28, 2007 2:06 pm
Location: UK

Re: What's next after 0.8.1 beta?

Postby AlanG » Thu Aug 14, 2014 7:26 pm

Thanks for mentioning the movement of the PID algorithm out of the Java VM and into the kernel. That assuages some of my concerns about real-time performance. Previous experience with programming Java to work in real time has taught me to write tight thread loops that just:
1. Do all essential work, then, as soon as possible,
2. Thread.sleep
I'm already using System.currentTimeMillis() quite a bit to tell me how these threads are doing. Except for the first iterations of threads, jit compiling does not seem to be a problem - "the math" runs fast, it's the reading of sensors that takes up the time! I make the threads operate on instance variables and method-local variables, so that the same arrays and Stringbuffers get used over and over. So, I'm trying to keep "new"s and gc to a minimum. I also keep the execution of any "synchronized" methods or critical sections "short and sweet".

As to GPS, I use a consumer Bluetooth GPS called the Dual XGPS150. It's made with a SkyTraq GPS chipset, one of the three top-performing consumer chipsets, along with MTK and SiRF. All such devices are capable of acquiring and tracking satellites indoors routinely, although the accuracy of indoor fixes will generally be lower than the accuracy of outdoor fixes. One can characterize indoor fixes as "accurate to + or - 1 room or office", whereas outdoor fixes from these chipsets are "accurate to + or - 1 square of concrete on a paved sidewalk" (about 1 square meter). Also, either an indoor or an outdoor fix can correct a robot's internal timekeepers to atomic clock accuracy.

I have 6 short text files that I can zip and send you, so that you will have updates that I have made to your GPS NMEA classes. How do I transmit those to you?
AlanG
New User
 
Posts: 15
Joined: Wed May 21, 2014 10:02 pm

Re: What's next after 0.8.1 beta?

Postby lawrie » Mon Aug 18, 2014 7:37 pm

If you send the new NMEA classes to me at lawrie.griffiths@ntlworld.com, I will update leJOS to include them. I wasn't sure if anyone still used those classes. I tested them with my Holux device but have never used them for any project. There seems to be a lot of interest in the Bluetooth serial code, which unfortunately isn't very good at the moment.
lawrie
leJOS Team Member
 
Posts: 929
Joined: Mon Feb 05, 2007 1:27 pm

Re: What's next after 0.8.1 beta?

Postby lawrie » Mon Aug 18, 2014 7:45 pm

On the features on the next release, I think my main contribution is the remote control API that works with Android (which does not support Java RMI).
lawrie
leJOS Team Member
 
Posts: 929
Joined: Mon Feb 05, 2007 1:27 pm

Re: What's next after 0.8.1 beta?

Postby AlanG » Mon Aug 18, 2014 9:30 pm

Lawrie,

Thanks to you and gloomyandy for your prompt responses. I have just emailed you a zip file, per your instructions.

As to the Bluetooth serial code, I'm certain that a full implementation of the Bluetooth Serial Port Protocol ("SPP") is your fastest path to compatibility with all current and future Bluetooth GPS devices. Current plans for the GPS satellites all point toward GPS indoor performance getting better and better over the next several years. (And then, of course, leJOS' Bluetooth serial compatibility will also be needed for Galileo devices in Europe, GLONASS devices in Russia, and Beidou devices in China!)

As to Android functionality, I'm very much looking forward to building up a lot of Java SE robot control code on my laptop, then porting that code over to an Android smart phone. So, please "press on"!
AlanG
New User
 
Posts: 15
Joined: Wed May 21, 2014 10:02 pm

Re: What's next after 0.8.1 beta?

Postby EowynCarter » Sat Nov 01, 2014 11:06 am

lawrie wrote:On the features on the next release, I think my main contribution is the remote control API that works with Android (which does not support Java RMI).


Speaking of android, i've been trying to get the "EV3 control" app working. No dice.

But, if I understand the code, it uses network ? So i need to use wi-fi rather than bluetooth ?

Edit : nevermind, an article on the blog answered the question.
Is Bluetooth control planned ? Unlike with NXT, LEGO don't seam to have gotten specs out :(
EowynCarter
New User
 
Posts: 11
Joined: Sat Nov 02, 2013 10:27 am

Re: What's next after 0.8.1 beta?

Postby gloomyandy » Sat Nov 01, 2014 3:46 pm

We already support Bluetooth via a Bluetooth PAN. The EV3 acts as a PAN access point. Not sure if your phone will allow you to connect to the PAN as a client or not (some will, some won't), have you tried it?
User avatar
gloomyandy
leJOS Team Member
 
Posts: 4172
Joined: Fri Sep 28, 2007 2:06 pm
Location: UK

Re: What's next after 0.8.1 beta?

Postby EowynCarter » Tue Nov 04, 2014 11:12 am

Mmm, so that actually *should* have worked. Maybe I should check the IP, or that i don't have something blocking it. I get a "connection reset".
EowynCarter
New User
 
Posts: 11
Joined: Sat Nov 02, 2013 10:27 am

Re: What's next after 0.8.1 beta?

Postby gloomyandy » Tue Nov 04, 2014 12:58 pm

Well before you even try to run the EV3 control app you need to connect your phone/whatever to the PAN. Have you been able to do this, if so how did you establish the connection, note that this will be an extra step after pairing. If you have the PAN setup and working you should be able to ping the EV3 it will be on address 10.0.1.1. Not sure if you have any network tools on your android system that will let you check this sort of thing.
User avatar
gloomyandy
leJOS Team Member
 
Posts: 4172
Joined: Fri Sep 28, 2007 2:06 pm
Location: UK

Re: What's next after 0.8.1 beta?

Postby EowynCarter » Wed Nov 05, 2014 8:01 pm

Yes, connection to PAN seams to work as far as the phone is concerned.
I received the wi-fi dongle, i'll give it a try.

Edit : same ressult :*
Caused by: libcore.io.ErrnoException: sendto failed: ECONNRESET (Connection reset by peer)
at libcore.io.Posix.sendtoBytes(Native Method)
EowynCarter
New User
 
Posts: 11
Joined: Sat Nov 02, 2013 10:27 am

Re: What's next after 0.8.1 beta?

Postby gloomyandy » Wed Nov 05, 2014 8:57 pm

No idea, obviously Lawrie had some of this working, he may have a better answer, but you would be better off starting a new thread and fully describing what it is you are doing, what versions of things you are using and providing as much detail of the error as you can including a full stack trace. Perhaps whatever is going on is down to some of the android specific issues.
User avatar
gloomyandy
leJOS Team Member
 
Posts: 4172
Joined: Fri Sep 28, 2007 2:06 pm
Location: UK


Return to EV3 Software

Who is online

Users browsing this forum: Yahoo [Bot] and 3 guests

more stuff