goodrobots / maverick-web Goto Github PK
View Code? Open in Web Editor NEWweb based frontend for maverick
License: MIT License
web based frontend for maverick
License: MIT License
Will need to do some research on 3D airspace data sources. Can be hard to come by for some countries.
Also has implications if the data is wrong and someone does something stupid using maverick.
Parameters that have a bitmask are currently displayed as dropdown, which is broken UX (eg arming mask). Instead display a set of checkboxes to allow bitmask to be built.
interface should do a full refresh of params if they change in the backend. need to determine how to detect this - param count would be a simple, if crude way.
Possibly with a radar overlay.
This is a slick little weather app that gets the point across:
https://play.google.com/store/apps/details?id=com.enzuredigital.weatherbomb&hl=en
Web GCS should support multiple APIs, both switchable in views like HUD and Config, and simultaneous in views such as VR and Planner.
MIT or something else?
On touch based devices e.g. phone text selection / highlighting gets in the way of effective navigation
Github question + answer: https://stackoverflow.com/questions/826782/how-to-disable-text-selection-highlighting#comment40500081_16317405
Mixed Content: The page at 'https://dev.maverick.one/web/maverick/' was loaded over HTTPS, but attempted to connect to the insecure WebSocket endpoint 'ws://dev.maverick.one/maverick-api/subscriptions'. This request has been blocked; this endpoint must be available over WSS.
Parameters should update on subscription but they're not..
Survey mission assumes you can plug in your sensor/camera params, altitude, speed, ground sampling density etc and have the path planning done by GCS.
Intel have moved 01org github identity to intel
Related:
goodrobots/maverick#689
A-frame: wrapper around webvr
https://aframe.io/
https://github.com/networked-aframe/networked-aframe
https://haydenlee.io/networked-aframe/
A-frame with Vue:
https://github.com/frederic-schwarz/aframe-vuejs-3dio
https://github.com/naidraikzir/vue-a-frame
http://blog.diepartments.de/webvr-webgl-vue-js-2-0-and-aframe-js-a-sweet-couple/
Radio selects for parameter values would be a single click rather than two to dropdown select then choose value. Better UX?
related: webpack/webpack.js.org#147
docs: https://webpack.js.org/configuration/stats/
Looks like we can set warningsFilter
to suppress the warnings
[HMR] bundle has 3 warnings
webpack-internal:///896:184 ./node_modules/cesium/Source/Core/TaskProcessor.js
146:80-87 Critical dependency: require function is used in a way in which dependencies cannot be statically extracted
@ ./node_modules/cesium/Source/Core/TaskProcessor.js
@ ./node_modules/cesium/Source/Core/QuantizedMeshTerrainData.js
@ ./node_modules/cesium/Source/Core/CesiumTerrainProvider.js
@ ./node_modules/cesium/Source/Cesium.js
@ ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./src/components/modules/planner/PlannerCesium.vue
@ ./src/components/modules/planner/PlannerCesium.vue
@ ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./src/components/modules/planner/PlannerModule.vue
@ ./src/components/modules/planner/PlannerModule.vue
@ ./src/router/index.js
@ ./src/main.js
@ multi ./build/dev-client ./src/main.js
./node_modules/cesium/Source/Core/buildModuleUrl.js
57:15-22 Critical dependency: require function is used in a way in which dependencies cannot be statically extracted
@ ./node_modules/cesium/Source/Core/buildModuleUrl.js
@ ./node_modules/cesium/Source/Cesium.js
@ ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./src/components/modules/planner/PlannerCesium.vue
@ ./src/components/modules/planner/PlannerCesium.vue
@ ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./src/components/modules/planner/PlannerModule.vue
@ ./src/components/modules/planner/PlannerModule.vue
@ ./src/router/index.js
@ ./src/main.js
@ multi ./build/dev-client ./src/main.js
./node_modules/cesium/Source/Core/buildModuleUrl.js
80:77-84 Critical dependency: require function is used in a way in which dependencies cannot be statically extracted
@ ./node_modules/cesium/Source/Core/buildModuleUrl.js
@ ./node_modules/cesium/Source/Cesium.js
@ ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./src/components/modules/planner/PlannerCesium.vue
@ ./src/components/modules/planner/PlannerCesium.vue
@ ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./src/components/modules/planner/PlannerModule.vue
@ ./src/components/modules/planner/PlannerModule.vue
@ ./src/router/index.js
@ ./src/main.js
@ multi ./build/dev-client ./src/main.js
Begin to support pwa requirements
https://developer.chrome.com/extensions/manifest
oneTimeWarning.js?545d:44 The STK World Terrain tileset is deprecated and will be available until September 1, 2018 Check out the new high-resolution Cesium World Terrain https://cesium.com/blog/2018/03/01/introducing-cesium-world-terrain/
If param meta is not available and parameter should have values, parameter edit fails. Should allow direct editing in this case.
Requires #26
Visual Line of Site Analysis should allow the user to check if planned or current flight path will go beyond line of sight.
Using a similar tool we could also add basic physics checks for radio LOS to check quality of signals for planned flight paths. Stick with basic assumptions such as free space path loss and fresnel zone and allow others to add more complex modules if/as required.
Each component that defines it's own message query/subscription opens a separate websocket connection. This is inefficient and currently causes threading/buffer errors within the api (although that should be fixed).
It's probably better to define the query/subscription at the App level rather than Component level and have a single graphql connection.
One of a few libraries: https://yoannmoinet.github.io/nipplejs/
When a parameter is updated it mutates the data through the api and receives the update through subscription. The interface should notify to the user somehow of the updated data.
Config module seems to have ground to a halt - very slow. Is it computed values overloading?
The problem is that the path of the direct port is / and the path of the reverse proxy is /dev/maverick or /web/maverick for direct served static files.
Mar 11 08:37:35 www.maverick.one npm[32188]: warning in ./node_modules/apollo-upload-client/lib/index.mjs
Mar 11 08:37:35 www.maverick.one npm[32188]: 5:17-34 "export 'default' (imported as 'apolloLinkDefault') was not found in 'apollo-link'
Mar 11 08:37:35 www.maverick.one npm[32188]: warning in ./node_modules/apollo-upload-client/lib/index.mjs
Mar 11 08:37:35 www.maverick.one npm[32188]: 7:2-29 "export 'default' (imported as 'apolloLinkHttpCommonDefault') was not found in 'apollo-link-http-common'
Dropdown select for boolean parameters is poor UX. Switch would be better.
hot module reloading seems to be broken. chrome console gives a warning:
The resource http://www.maverick.one/maverick-web/0.8c7e87be114aef909ead.hot-update.js was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it wasn't preloaded for nothing.
Cesium has stopped working through reverse proxy - it used to. It now forces absolute URLs that do not honour relative paths.
To make this a 4D experience - 3D Space and Time - then we need to support 3D data.
DTED, Digital Terrain Elevation Data. May go by other names in other places.
It appears NASA ASTER Missions now have DTED at 1 arc second (30m) for much of the globe.
dev.maverick.one hardcoded, make relative to requesting URL
example of cesium sw / pwa
https://github.com/Developer-Plexscape/cesium-pwa
Depends on #28
Provide near real time feedback of camera capture during a mission.
Not looking for fully stitched ortho as that takes hours at this point.
Just thumbnails georectified so operator can ensure coverage during mission.
This will be payload and mission dependent so also a good chance to talk about how these might become GCS modules or some such.
Also demands wifi or digital data link that can support streaming image data.
If a parameter has defined values, a select is shown to select those values. Interface should also allow a manual override input.
Vuetify color names eg. 'red' no longer work. Either the color override has broken this, or they are not being included correctly.
Currently / route goes to blank App module.
Parameter screens should have clear dropdown to choose between standard and advanced parameters, with advanced hidden by default
Good example of HUD screen:
https://discuss.ardupilot.org/t/new-mp-hud-i-have-been-working-on/26602
support mobile devices
Service worker installs and works over https. Site can load even when offline, however need to have feedback on screen to notify user that offline.
This will be related to AR/VR, digital terrain data, elevation data or any other feature that can use 3D tiles for visualization, situational awareness and planning.
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.