Showing posts with label monterey. Show all posts
Showing posts with label monterey. Show all posts

Sunday, July 13, 2014

Monterey 4.0 Feature Preview: ROV Configuration File

Time permitting, I'm planning on posting little blog entries about each of Monterey's new major features.  Since Monterey 4.0 is still in progress, any of these features may change before the final release.

ROV Configuration File
A problem with Monterey 3.0 and earlier is that in order to customize the ROV configuration, you had to re-compile Monterey from source.  Well, that is a ridiculous requirement for such a common operation.  With Monterey 4.0 and on you will be able to use a JSON file to configure your ROV.

rov.json configuration file
The configuration file is located in the same folder as Monterey, although default settings can be loaded if the config file cannot be found.  Because it is a simple JSON file, it is easy for humans to read and edit it, so there is no configuration application.

Relays
With the relay JSON objects, you can specify a name that will be used in the UI.

Servos
With the servo JSON objects, you can specify a name, minimum value, maximum value, and a default (starting) value.

Sensors
With the sensor JSON objects, you can specify the name of the sensor and the units.

Motor layout
This is where you specify if your ROV is a vector or a tank ROV.

Max depth
This is where you specify the max depth of your ROV.  The units for this measurement are the same units for your depth sensor.

The UI is automatically configured to display the right amount of buttons, sliders and sensor displays based on your config file.  Also, the received UDP packet format is based on your config file.  The order that Monterey expects the sensor values to be in is specified in the order of the sensor JSON objects (in this case, Monterey would expect to get depth, voltage, current and heading in that order).  Monterey automatically adds any needed values to the sent packet (motors, relays and then servos, in that order).

Certain UI elements, like the depth and heading tickers, are only updated from their respective sensors.  The look for sensors labeled depth and heading, respectively.  If you don't have those sensors in your ROV config file, the UI will still display the widgets but they won't update with useful information.

Thanks for stopping by!

Chris

Friday, June 20, 2014

First update in a LONG time (Spoiler: ROV-Suite updates)

Hey!  It's been a LONG time since my last post (too long for my taste), but I've been pretty busy.  I finished up my freshman year of college well.  I had a great time!  I've also learned a lot about programming and CS in general since the last time I worked on one of my projects so the quality of my work should be increasing.

For this summer, I'm interning at a large software development company in NYC.  I just moved in recently but I've been having a great time so far!  It's very cool to live in a big city and the company's work seems really interesting.

I've also been planning improvements, features and bug fixes for Monterey for months now.  I didn't have time while in school (and I barely have time now that I'm working from 9-5), but I'm trying to get some updates for Monterey pushed out as soon as possible.  The biggest change that I'm currently working on is allowing people to configure their ROV from a simple JSON file and having Monterey's UI and networking code take care of the rest.  See here for more information.

Another big improvement for Monterey that I have planned for this summer is unit testing.  Yes, one of my big goals is get Monterey set up with a unit testing framework.  More on that later!

Thanks,

Chris

Friday, January 31, 2014

Monterey v3.0 Video Streaming Fix

When I updated the Windows release for Monterey recently I forgot to add the image format plugins required by the web browser to see the video feed from the Raspberry Pi.  I have since updated the release on Github which you can grab here.  I apologize for the error!  Monterey would start up just fine without the plugins but it would display a question mark instead of an image on any web page shown (i.e. the RPi video feed webpage).

Friday, January 24, 2014

Monterey 3.0.0 - Windows Executable Released!

Hey!  It's been a while since I last wrote an article.  I've been kept pretty busy with school work (2 CS classes, a math class, physics and a job on the side).  Anyway, I received some incredibly nice emails and PMs the past few days from some users from the Homebuilt ROV Forums thanking me for working on Monterey and releasing it for free.  They had some feedback for making Monterey easier to use, and I've taken their feedback to heart.  The most pressing issue was that there wasn't a compiled version of Monterey for Windows for new users to download (Windows is by far the largest target audience according to my Sourceforge download stats).  It has been months since I last looked into fixing the deployment issue that Monterey faced with the switch from Qt 4.X to Qt 5.1.  I sat down tonight after finishing up some math homework and tried getting Monterey to work with the help of QuantumCD.  Here's what happened.

(Quick note: Since I did not have access to another Windows machine, I would rename my QTDIR so that any applications trying to reference it would not be able to find it.)

I tried getting some Hello World Qt apps to "deploy on another Windows machine."  I got that working and QuantumCD verified that it worked on his system, too.  Then, I tried Monterey.  Monterey ran just fine before I renamed my QTDIR.  However after renaming it, Monterey would fail to launch and even fail to display any warning or crash dialogs. That meant that Montery was trying to load up something from my QTDIR.  So I went through and copied mingw48_32/bin into Monterey's directory.  Then changed my QTDIR... and crash.  So that's obviously not all that I have to do.  I kept experimenting, but this time, instead of changing my QTDIR's name, I would rename subfolders in it until Monterey would crash, signifying that Monterey needed something in that directory.

After about 10 minutes of this, I figured out the one folder that Monterey needed that I had never copied over to Monterey's directory before (and NO online tutorials or forum posts said to copy this over). I figured out that QTDIR/mingw48_32/qml/QtQuick.2 was needed for Monterey to run.  After copying that directory into Monterey's directory, I figured out that qtquick2plugin.dll and qmldir were both required. Bam, deployment problem solved!

RootDir
-platforms
    -qwindows.dll
    -qminimal.dll
-QtQuick.2
    -qmldir
    -qtquick2plugin.dll
-icudt51.dll
-icuin51.dll
-icuuc51.dll
-libgcc_s_dw2-1.dll
-libstdc++-6.dll
-libwinpthread-1.dll
-Monterey.exe
-Qt5Core.dll
-Qt5Gui.dll
-Qt5Network.dll
-Qt5OpenGL.dll
-Qt5PrintSupport.dll
-Qt5Qml.dll
-Qt5Quick.dll
-Qt5Sensors.dll
-Qt5Sql.dll
-Qt5V8.dll
-Qt5WebKit.dll
-Qt5WebKitWidgets.dll
-Qt5Widgets.dll
-SDL.dll
-sdl-config

I'm happy to have finally fixed that issue!  Now I feel as though work on Monterey can continue this summer.  I won't promise anything before then because I'm kept pretty busy here.  I'm hoping to score a software development internship for this summer, which would be incredibly fun and educational.  The UC system is looking at having us start even later than we already do, which means that I'd have almost a month after my internship to work on Monterey.

When I do work on Monterey this summer I want to focus first on making it more polished, and then adding features.  I want to make it easier to customize (probably using config files) and QuantumCD and I have been talking about making it themeable.  Stay tuned for more information!

You can grab Monterey 3.0.0 here.

Thanks for stopping by!

Chris Konstad

Monday, August 26, 2013

Monterey 3.0 Crash on Windows

Just a quick warning that Monterey 3.0 is crashing on some Windows systems (win7 32bit AND 64bit) with a VC++ runtime error, which is weird because I compiled it with Mingw32 and I get no errors on my system.  I can, however, reproduce the error on another machine in my house.  I'm working with the person who found the bug to fix it and I'll post the fixed release as soon as I can.

Monterey was compiled with MinGW 4.8 32bit with Qt 5.1.0(mingw48_32) from the Qt SDK on Windows 7 64bit.

Sorry about this,

Chris

Tutorial: Adjustable UI with QSplitters


Monterey version 3.0 now has an adjustable UI!  Not only is the window itself able to be scaled, but now you can apportion the UI how you'd like.  If you want, you can make the graphs taller or shorter (even hide them), and you can adjust the widths of both side panels.  Upon closing, Monterey saves your window geometry so when you open it again, the UI is setup the way you like.

Here are the relevant pieces of code:
As you can see, it's all pretty simple and easy to do.  The default values are set using QSplitter::setStretchFactor(int index, int value), which uses the relative weight of each stretch factor to adjust the sizes.

Thanks for stopping by,

Chris Konstad

Monday, August 19, 2013

Monterey 3.0 Status Report

Good news!  Monterey is coming along nicely!  It is due in 13 days and it looks like we'll be able to make the release date.  There are still a few minor bugs left, but those are being worked on and progress is being made quickly.  The last "feature" that we have left to implement is the addition of a few more graphs along the top of the video display.  Then, Monterey should be ready to ship!  The bottomside code might experience some updates/changes to accommodate any changes in hardware , but Monterey itself will be ready.  And keep in mind, there will be periodic updates to Monterey after the 3.0 release that address any additional bugs and add features that were not able to be packaged with this release. 

I am incredibly excited about this release of Monterey as it will be a HUGE improvement over every previous version.  The addition of video capabilities is a key part of that!  

Thanks for stopping by!

Chris

Friday, August 16, 2013

Monterey 3.0 Status Report

This is a screenshot of the most recent version of ROV-Suite's Monterey ROV control application.  There is now a working HUD and a newer, nicer theme thanks to QuantumCD's Dark Fusion palette.  As of right now, there are 12 open issues between Monterey 3.0 beta and Monterey 3.0 stable, but they should all be fairly easy to take care of.  A few of theme are graphical changes (removing those LEDs and replacing them with nicer status indicators) and some of them fix bugs.  Check here for more information.

Now I also have an important announcement to make.  Monterey has been shifted from my personal Github account to an ROV-Suite organization account.  You can find all repos and releases relating to Monterey at http://github.com/rovsuite.  I really do apologize for moving ROV-Suite around so much, but I do think that it's for the better.  I also wanted to make this change before releasing 3.0, which is a huge milestone for Monterey.

Please note that in it's current state, Monterey does not compile on Linux or run on OSX.  Both of those bugs are being looked at (I have already fixed the Linux issue but I still need to push it) and will be addressed soon.  Monterey will NOT be a Windows-exclusive.

Thanks for stopping by and I'll post some more information regarding changes to Monterey soon!

Chris Konstad

Sunday, August 4, 2013

New Download Location for ROV-Suite

Since I began moving ROV-Suite from SourceForge to GitHub this past year, I've been trying to figure out where to host the binaries for easy downloading.  After all, not everybody wants to have to compile an application before they use it.  Thankfully, ContingencyCoder told me about GitHub's "releases" sections of GitHub repos.  From now on, new releases of ROV-Suite, including Monterey, will be hosted on Github.  To find the latest binaries of Monterey, look here.

Thanks for stopping by!

Chris

Monday, July 15, 2013

ROV-Suite: OpenROV Compatible Bottomside

Here's the wiring diagram showing how to wire up the Arduino and Raspberry Pi (powered by a uBEC of your choice).  It's missing ethernet and the webcamera (along with any sensors of your choice), but those are easy to figure out where to plug in.  The webcamera plugs into the Raspberry Pi's second USB port (the Arduino is in the first one).  The ethernet might need to go to a small networking hub, but both the Arduino and the Raspberry Pi should be plugged into the ethernet.  Unlike OpenROV, which uses the BeagleBone as the only attachment point for the network which then forwards the command packets to the Arduino over serial, the Raspberry Pi in this setup doesn't act as a forwarder.  Instead, the Arduino gets the packets directly from Monterey.  The Raspberry Pi is there to forward the webcamera video, allow for remote Arduino firmware flashing, etc.  It is also used to power the Arduino, but that could also be done using the uBEC and the Arduino's VIN pin.

Thanks for stopping by!

Chris Konstad

Sunday, July 14, 2013

Monterey Update

Good news, everybody!  I've successfully gotten video to stream from a webcamera to Monterey through my Raspberry Pi!  Here's a picture of Monterey's GUI, with me sitting at my computer (a custom built desktop with dual 21.5" 1080p monitors, K70 mechanical keyboard, G500 mouse, etc) as an example IP video stream.

I set up my Raspberry Pi following this tutorial.  I used the official OpenROV spec'd webcamera, a WideCam F100.  Everything about it works pretty well!  My only complaint is a slight bit of lag, but it should be useable, especially for observation missions.

I want to add the ability to take high-res still photos with the ROV and send them up to the topside, as requested by Marcus.

Here's the latest commit in the HUD branch.

If you'd like to see features added to Monterey, or if you find any bugs, please open an issue with your request here.

Thanks for stopping by!

Chris Konstad

Thursday, July 11, 2013

Monterey v3.0 BETA in the works!

An early, ugly and pre-alpha build of Monterey v3.0.
Here's a screenshot of the latest version of Monterey, which is very much still a work in progress!  I've shifted hosting the latest version of the code from Sourceforge to Github because Github is a better service, in my opinion.  To keep updated, please look to the Github page (http://github.com/chriskonstad/monterey).  I've finally gotten video to work (kinda) by streaming the video feed from a USB webcamera using a Raspberry Pi and MJPG-Streamer, following this tutorial (the Google hompage is just a QWebView acting as a placeholder for the video feed).  +Eric Stackpole wrote a blog post on OpenROV's blog detailing his thoughts regarding OpenROV's UI and UX, and I'm not going to lie, it really influenced how I think Monterey should look.  Themeing Monterey is less important than getting features working, though, and I have some really cool features in the pipeline!

  • Remote flashing of ROV software using a Raspberry Pi
  • IP video via Raspberry Pi
  • HUD
  • PID algorithm for position holding
  • Exponentially weighted moving averages for smoothing sensor data
  • Vertical speed indicator
  • Tailored for OpenROV electronics and hardware (with the exception of replacing the BeagleBone with a Raspberry Pi)
  • An awesome theme borrowing heavily from Eric's mockup
I've already done some work the past two days on Monterey, bringing much needed improvements to the package.  I've learned more about proper software architecture and UI/UX design since I last worked on Monterey, and I hope it'll show in my new work.  While adding features to Monterey, I'll also be refactoring the older code to made it cleaner and easier to work on.  Also, Monterey 3.0 will link with the Qt5 libraries and use QQuick2 for some of the widgets (see the depth-tape for an example).

Features/bugs already worked on:
  • DiveTimer has been moved to it's own class and now automatically starts and pauses when the ROV enters and leaves the water.
  • Monterey now has a fullscreen mode!
  • The UI is now scalable, meaning Monterey now works on netbooks with 1024x600 displays through laptops with 1080p monitors.  This feature was long needed, and I'm glad I've gotten good enough at layouts to add this functionality.
Thanks for stopping by!

Chris Konstad

Tuesday, March 5, 2013

Important: Fixed Monterey 2.0.3Beta Download for Windows

So I found out over the weekend that my zip archive on SourceForge for Monterey was lacking one DLL that caused Monterey to not function.  I just fixed the issue and uploaded a new zip.  You can find it here.  I feel really embarrassed for letting such a glaring issue slide by for so many months.  Sorry if I caused any problems!

I'm thinking about shifting rov-suite from SourceForge to Github because I like Github's social features and Github is just generally more polished.  If I do that, the executable binaries will be hosted elsewhere, maybe in the public folder of my DropBox, and linked to the Github page.

Thanks for stopping by,

Chris

Wednesday, August 8, 2012

Monterey 2.0.3 Beta Released

I have some good news and some bad news!  First off, I have finally released Monterey 2.0.3 Beta for Windows.  The bad news is that the OSX release is going to lag behind a bit.  I am currently developing on OSX 10.8 Mountain Lion, so I will need to look into testing on Lion and Snow Leopard machines.  One person already alerted me to the crash on OSX Leopard, so I think I was able to change the update alert before too many people downloaded the new version.

Thanks!

Chris

Monday, August 6, 2012

Update: Monterey 2.0.3 Beta

I've been busy for the past several days hunting down bugs in Monterey 2.0.3 before I can release the code.  They've been tricky to find (since they rely on nothing but poor timing and therefore happen randomly when certain conditions are present), but luckily they've been easy to fix.  I plan on releasing Monterey 2.0.3 Beta this week.  It's working great on OSX but I need to test it on Windows before I'll feel comfortable releasing it.  OSX seems better at handling empty QLists than Windows, so that's mainly what I'll be looking for.

Monterey 2.0.3 Beta mainly adds the ability to read joystick buttons and a joystick's POV hat.  From there, you can trigger relays and increment/decrement each servo.  I'll post more information about it when I release it.

Thanks for stopping by!

Chris Konstad

Thursday, July 26, 2012

ROV-Suite, OSX 10.8, Headaches

Yay for smooth(er) circles and OSX 10.8!
I'm not going to go into too many details tonight because of the time, but there's some new code sitting in the repo still warm from my keyboard.  I've started adding the code that reads the joystick's hats and buttons.  It's kind of a pain simply because it's a fair amount of work and then I have to figure out to sync the inputs that Monterey gets from it's GUI and from the joystick (and Tahoe) and make them all spit out a single, correct value to the ROV.  So far, the joystick's first hat can change the servo values and enable or disable a relay while the joystick's buttons can only enable or disable relays.  I'm going to add their servo code within the next few days.  So far, these settings can only be changed in the settings.ini file, but I will break them out to a GUI.  Speaking of the GUI, look at the compass!  I have finally gotten around to touching up the outer ring around the compass!  I think it looks much better (albeit maybe not perfect).  Please be aware that this code, Monterey 2.0.3 Beta, is not in the downloads page yet and is not yet ready for public consumption.  I just put it in the public for those of you who always want the latest, most cutting edge code.

Speaking of the cutting edge, I finally upgraded my MacBook Pro from 10.6.8 to 10.8!  I can finally enjoy all of the features of Lion and Mountain Lion!  I never thought I'd like the fullscreen apps part, but I'm finding that I enjoy using the fullscreen apps (and the four-fingered swipe between them) much more than I ever loved Spaces.  My only complaints so far are that 1) Apple doesn't ship any version of Make with 10.8 (first install Xcode 4.4 and then install the command line tools in the downloads section of Xcode's preferences) and 2) most of my programming tools are yet to be upgraded to be fully compatible with Mountain Lion.  I tried to install Valgrind tonight, but I couldn't even build it because compilation would stop with a "Your version of OSX is not supported" message.  Luckily, even though Qt 4.8.1 spits out about 25 warning messages (all with the "your version of OSX is not supported" text), it stil compiles my applications.  Although I have seem to have run into an issue... When running the debug build of Monterey on OSX 10.8 I get many crashes during startup and seemingly arbitrarily afterwards.  Most are sigsegv and sigabrt messages, although most seem to be related to QList.  The weird part is, when I switch the the release build of the same source code, everything runs along perfectly fine.  My guess is that maybe there's a compatibility issue with the debug libraries of Qt 4.8.1 and OSX 10.8.... or perhaps I'm just a crappy programmer (a much more likely alternative, except for the fact that these issues only plague the debug build).  ;)  My advice is to hold off on Mountain Lion until your programming environment has fully been carried over.  If you don't wait, you might run into the headaches that I've been running into.  But, let me tell you, OSX 10.8 is one amazing OS and I have almost no regrets upgrading so early.  The rest of the user experience has been perfect!

Anyways, I'll be uploading the latest version of Monterey when I get it all worked out.  Hopefully these crashing issues with the debug build are related more to Mountain Lion and less to any errors I've created.

Thanks for stopping by!

Chris Konstad

Wednesday, July 18, 2012

Raspberry Pi

I'm pretty excited!  I finally got my Raspberry Pi in the mail today!  I played with one at a friend's house, and so I'm pretty excited to get started with this one!  I have a few interesting projects in mind....


  • Turn my TV into a weather, news, information, etc display
  • Raspberry Pi based ROV...
I will admit, I'm most excited about the second option.  It'll be interesting working with Nick to make some custom circuit boards that can expand on the Raspberry Pi's GPIO (and buffer it AND bring it up to 5v from 3.3V).  It'd be nice to be able to write both the topside and the bottomside in Qt as well.  As much as I love the Arduino, Qt's language is much nicer and the whole Qt environment is much easier to program in (once you've gotten used to a full-fledged IDE, that is).  One cool idea that I've had as far as Raspberry Pi based ROVs go is a debug GUI.  Think about it.  You can have your ROV and give it a composite video link in a easily accessed spot.  When you need to check on statuses of different systems of your ROV, check on it's configuration or change it's configuration, you can just fire up the GUI and change it from the ROV.  I personally think that'd be a pretty awesome feature.  I'm just going to have to learn more about Linux now than I ever have before...

In other news, I'm finally going to get around exposing the joystick buttons and hats in Monterey.  I want you to be able to map them to the different relays and to the servos.  Sometime while I'm doing that I want to continue trying to port Monterey over to Android.  I think it would be totally awesome to be able to drive your ROV from an Android tablet.  After I get that done, I need to talk to Nick about getting an IP camera set up so that I can start writing and testing a more pilot-oriented GUI with a nice overlay (or something like that).  

Thanks!

Chris Konstad

Thursday, June 28, 2012

Monterey 2.0.2Beta

Great news!  Monterey 2.0.2 Beta has just been released on OSX and Windows!  You can find the binaries here.  The update is fairly minor.  The biggest and most important change is the auto updating (well, mostly auto).  Now, when there is an updated version of Monterey, you will alerted by Monterey and it will provide you with a download link.

Thanks to the Fervor library for making this possible!

Thanks for stopping by and don't forget to update!

Chris Konstad

Monterey: Updater

(images from the author of the Fervor updater library)

I love adding new features to ROV-Suite to make it the best application for driving ROVs that you can find. I really do.  Since most of the base functionality is down (I still need to work on IP camera support and more debugging options), I'm starting to play around with new libraries to add useful features.  For instance, I'll be adding a library soon (shown above) that will alert the user when a newer version of Monterey is available and it will show the user a download URL.  I've been looking at the download numbers at ROV-Suite's SourceForge page, and it looks like most people aren't updating their older versions of Monterey to the latest version.  Maybe it's because they grabbed it early and used the Dropbox link that I put out, or maybe they just haven't checked back in with the project yet.  Either way, by adding this updater (which can be disabled from the preference pane), the user will be alerted to any newer versions, which often include bug fixes and awesome new features!

In other news, ROV-Suite has been well past the 100 downloads mark (56ish due to NetworkingTest alone) for quite a while now.  Monterey is pulling close to that threshold with 80 downloads so far (as of today)!  I'm looking forward to posting about the 100th download of Monterey which I have a feeling will be pretty soon!

Also, I'm not sure if I mentioned this already or not, but the early version of the bottomside software is already on the SourceForge page!  You can view it in the repo here.  Since it's a fairly simple setup, I'm not going to put it in the downloads page.  I'll start doing that later when I have a bunch of 3rd party libraries included with it.

If you have used Monterey to drive an ROV already or if you have any feedback, please let me know!  I'd love to post a quick blog entry with photos and a story or two. And, as always, feedback is very welcomed!

Thanks!

Chris K

Edit:  Apparently there have been 92(!) downloads of Monterey at Softpedia!

Monday, June 25, 2012

Update: Monterey v2.0.1Beta (Windows)

Just an update to let you know that the Monterey v2.0.1Beta for Windows is up in the Sourceforge downloads page.  You can find that here.

Thanks for checking it out!

Chris K