wiseman / mavelous Goto Github PK
View Code? Open in Web Editor NEWmulti-platform ground station for drones that speak the MAVLink protocol
License: MIT License
multi-platform ground station for drones that speak the MAVLink protocol
License: MIT License
Mavelous is using mavlink message type GPS_RAW_INT rather than GLOBAL_POSITION_INT for data updates.
The mavlink web site has this to saw about GPS_RAW_INT...
"The global position, as returned by the Global Positioning System (GPS).
This is NOT the global position estimate of the sytem, but rather a RAW
sensor value. See message GLOBAL_POSITION for the global position
estimate..."
If I drag the slider, the number on the right will change from 20 to 23 or something close, but won't change afterwards, even though the slider is actually setting a new altitude.
I'm trying to run mavelous completely headless at boot time on a Raspberry Pi (Debian Linux).
I find that it runs fine when run within an ssh session in the foreground, but when run in the background, it bombs out pretty early on - just after presenting the "MAV>" prompt. I don't see any interesting logs being produced, sadly, even with --logging-level=DEBUG.
To repro, simply:
python mavproxy.py --module mavelous --master=/dev/ttyUSB1 --baud=57600 &
It would be helpful if the map panning and drone movement were separated - it isn't always best to have the drone right in the middle of the screen, as the pfd & screen size can occlude useful areas of the map while giving too much space to useless area.
pfdsettings.js
currently stores the PFD settings in a cookie, but that means that the cookie contents get sent to the server on every ajax request, which is a lot of overhead. We should store all settings in HTML5 local storage instead, and we should use Backbone's storage sync mechanism.
The heading of the black aircraft silhouette in mavelous is not updating correctly on a MacBook Pro running OS X 10.8.2.
The nose of the plane is always pointed towards the top of the screen. This was checked on 3 browsers (Firefox, Chrome, and Safari) with the same result.
Checking the following URL show the yaw values correctly updating, going from 0 to +3.14 and then from -3.14 to 0 as the plane yaws around through a full circle. However, the view does not update the plane's heading.
Hi guys,
Would it be possible to enhance mavelous to display multiple aircraft on the map? The need is to show the subject aircraft as well as the other aircraft in the surrounding airspace for situational awareness and collision avoidance.
Does it seem logical that a new mavlink message type -- comprised of a list of GPS_RAW_INT or GLOBAL_POSITION_INT messages -- would be required? Also, since the subject aircraft needs to be uniquely identified, it would likely need to be the first or last record in the list, correct?
I'm sure you are busy, but I'm wondering if you see this as doable and how to possibly move forward.
Thanks,
Phil
We should make verbose GPS info available in a panel (possibly to be above/below PDF):
I have an Parrot AR-Drone 2.0, with the flight recorder attachment. It is Mavlink compatible, but i'm not sure how to connect this via WiFi. I'm on Mac OS X.
I notice that the more clients I connect to the mavelous server, it can be very slow to load HTML/JS resources for new clients.
I suspect this is because the SimpleHTTPServer we're using doesn't deal with concurrent connections well (or at all?). I'm not too hot with python, but maybe you could look into this, John?
It's been pointed out that the screenshots we have show vehicle operation that may not be consistent with best safety practices. As the AMA safety code says, "All pilots shall avoid flying directly over unprotected people, vessels, vehicles or structures and shall avoid endangerment of life and property of others."
So I'd like to create screenshots showing drones over the most interesting terrain & landmarks that are consistent with best safety practices.
I think all the POSTing we do to the server for waypoints, arm/disarm, flight mode selection etc. should be handled by Mavelous.MavlinkAPI.
Hi guys,
I'm wondering how to read the mavelous flight.log file. After a flight today, I was wondering what the log would show as far as lost links, etc. But when I open the log file in a text editor is contained gibberish.
Thanks,
Phil
It would be nice to be able to zoom in further than the max resolution of the map tiles so you can focus on a smaller area. As it is now, on my iPad, at max zoom I can see about two blocks worth of area. A bit more zoom would allow finer placement of waypoints.
It works fine in landscape mode.
Actually I just checked and you can see the same thing in a desktop browser window that's been made narrow.
I posted a screenshot to the mailing list of mavelous running on Safari on iOS 6, the map is mostly not viewable, and some controls are out of reach. The settings popup works great though.
Hi!
I would like to change default altitude from 20m to 100m. I think only I need to make this change in modules/lib/mmap_app/index.html:
input id="guidealt-input" type="range" value="20" min="0" max="200"
to
input id="guidealt-input" type="range" value="100" min="0" max="200"
But I would like to be sure. Is that ok?
Thank you!
It's claimed these settings can make a big difference to compiler runtime: angular/angular.js@3bd95db
It'd be great to be able to tweak parameters in the field via mavelous. This is especially useful for Arducopter's Ch6 tuning feature, so a simplified UI to support that might be a useful first step (after a generalised API to parameter settings within the server, of course).
When zooming, the drone icon seems to rotate to heading 0 degrees, then animate back to where it should be.
Hi guys,
Happy new year and thanks again for creating mavelous.
I have a feature request...
How difficult would it be to add a feature to allow nearby 'targe't aircraft position and heading data to be input to mavelous? It would be great to have the ability to display target aircraft on the aerial map along with the flight vehicle. I'm not sure if the mavlink protocol has an api call to send this data??
Also, it would be useful to have vehicle altitudes displayed on the map next to each vehicle icon. And perhaps color icons could be used to indicate those aircraft above (blue), below (green), or near (red) the altitude of the flight vehicle.
BTW, these features are being requested because they would nicely fill a GCS need for an upcoming nasa uav challenge that includes collision avoidance.
Thanks and best regards,
Phil
The navbar buttons act a little funny--sometimes I have to click on one (in Chrome on a desktop) several times before the existing popover closes and the new one opens.
The drone icon is a transparent png on a separate layer from the map. Clicking on it does not create a click at the map point below - this is a problem for creating guide points close to the current position of the drone.
On Mobile Safari, double tapping on the drone icon can lead to zooming the whole web viewport to the icon.
I will try the following css:
pointer-events: none;
It seems like sometimes double taps get missed.
It would be nice to be able to run a HUD/PFD in one browser while using a map/mission editor in another.
Traceback (most recent call last):
File "mavproxy.py", line 1602, in
import mavutil, mavwp
ImportError: No module named mavutil
Especially on a mobile device, when the vehicle is in motion and pan-lock is on, the map & icon motion is very jumpy. There are a few issues:
We should add support for GUIDE mode waypoints, RTL and LAND to the offline vehicle model.
If I zoom while the app is in map-follows-vehicle mode, the zooming happens with the touch/mouse location as the center, then when zooming is complete the map pans to center the vehicle icon. It should instead zoom with the vehicle icon as the center.
Hi guys,
Question. It appears that mavelous is using mavlink message type GPS_RAW_INT rather than GLOBAL_POSITION_INT for data updates. If so, is there a particular reason for this choice?
The mavlink web site has this to saw about GPS_RAW_INT...
"The global position, as returned by the Global Positioning System (GPS). This is NOT the global position estimate of the sytem, but rather a RAW sensor value. See message GLOBAL_POSITION for the global position estimate..."
Thanks,
Phil
I see that mavelous includes the "apple-mobile-web-app-capable" meta header to remove the browser chrome when running from the iPhone home page.
But in some circumstances it's better to run in the standard browser with a navbar during initial loading, to make it easier to see whether your server is actually contactable and sending data. Have we considered using the technique at http://davidwalsh.name/hide-address-bar to hide the navbar once the page has loaded?
I think this may also be helpful on Android too - but the Android devices I have available are all far too low-powered for me to be able to meaningfully test mavelous on them.
The map should only be a portion of the screen, rather than the whole screen. That way the center of the map won't be so close to the edge of the visible map.
This will make it easier to add more controls below the pfd.
In Chrome 30.0.1556.2 dev:
Uncaught TypeError: Type error kinetic-v4.1.2.min.js:28
Prevents mavelous from working at all (gray screen)
Our kinetic is a few versions behind, 4.5.4 is out currently.
It's a small thing, but I'd like the user to be able to select the lat & long coordinate text in the GPS popover for copy & paste, and right now you can't.
I think the issue is that the entire DOM structure in the popover changes several times per second, and every time it changes the text selection is cleared. I can think of two possible solutions:
So let's try the latter?
Hi Guys,
I just grabbed the latest version of mavelous but the browser isn't launching. I'm starting mavelous on a Mac with the following command.
python mavproxy.py --master=/dev/tty.usbserial-A4008qH4 --baud=57600 --module mavelous --aircraft=UDB
This command works fine with an older version of mavelous but not with the latest version. Is there a different command I should be using?
The console output looks like this when it works with the older version. Firefox then opens and displays the aircraft, map, etc.
bash-3.2$ cd ../../mavelous2/mavelous/
bash-3.2$ python mavproxy.py --master=/dev/cu.usbserial-A4008qH4 --baud=57600 --module mavelous --aircraft=UDB
UDB/logs/2013-01-17/flight2
Logging to UDB/logs/2013-01-17/flight2/flight.log
Loaded module mavelous
GPS lock at 41 meters
height 40
online system 251 component 1
Mode(0x000000d8)> Mode Mode(0x000000d8)
Mode(0x000000d8)> fetching parameters
Here's the console output I see with the latest version. The problem is that Firefox never opens and I see gibberish printed out on the console.
bash-3.2$ python mavproxy.py --master=/dev/tty.usbserial-A4008qH4 --baud=57600 --module mavelous --aircraft=UDB
UDB/logs/2013-01-17/flight3
Logging to UDB/logs/2013-01-17/flight3/flight.log
Loaded module mavelous
GPS lock at 37 meters
height 40
online system 251 component 1
Mode(0x000000d8)> Mode Mode(0x000000d8)
Mode(0x000000d8)> fetching parameters
Received 63 parameters
Saved 62 parameters to UDB/logs/2013-01-17/flight3/mav.parm
3@=<pO&C^&&K oK &^d=4uX]>;b3=UT<K
Thank you in advance for your help with this!
Phil
Hi,
In addition to serial data input, does mavelous support telemetry input over TCP or UDP?
Thanks,
Phil
I'm not sure which parameter the battery status indication is being read from, but for me it always says "-102%" in mavelous.
In QGroundControl and MissionPlanner, I see the correct voltage reading being displayed.
I'm running Arducopter 2.8.1 on APM 2.5.
Probably should be implemented as a tape, right next to the altitude tape.
Need a vertical tape for this
Ordered a kindle fire hd to use with mavelous.. it seems to be plenty fast but when you try and double click on the map it does nothing (no blue marker).
I have tried this in opera and the default "silk" browser.
I went to bing maps to try a double click and it seems to zoom in with no issue.
Any help is appreciated.
Thanks!
I tried http://mavelousdemo.appspot.com/ on a Microsoft Surface running IE10 and noticed it didn't work. Here's what it looks like in IE10 from http://netrenderer.com:
Running mavelous and the Ardupilot Mission Planner in parallel today I noticed that the mavelous ADI shows the aircraft rolling in the opposite direction that the Mission Planner shows.
(Am I crazy, can anyone else confirm that it's wrong?)
Feature Request
Cache maps for offline use.
More info which could be useful on the PFD:
This isn't a bug on Mavelous as much as a reminder to work on fixes with the ArduCopter maintainers.
Canvas rendering on Retina iOS screens is wonky. The PFD looks pixel-doubled while regular HTML text looks ok.
On devices that support it (i.e. most modern phones and tablets that have geolocation), it'd be cool to be able to use the HTML5 location APIs to enable automatic follow-me mode.
At it's simplest, this would mean simply automatically setting the guided-mode waypoint based on current device coordinates, but it's probably more useful to maintain some small distance between current location and target waypoint.
Perhaps that could simply be a timer-based queue of coordinate updates, linked to a configuration on the UAV that tells it to accept a fairly lax radius for the waypoint.
When you load mavelous in a browser it will display the last STATUSTEXT message, however old that message is. We should only display it if it's been sent in the past 30 seconds or something.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.