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
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
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/
Config module seems to have ground to a halt - very slow. Is it computed values overloading?
Parameters should update on subscription but they're not..
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'
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.
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.
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.
support mobile devices
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.
If param meta is not available and parameter should have values, parameter edit fails. Should allow direct editing in this case.
Related:
goodrobots/maverick#689
MIT or something else?
Radio selects for parameter values would be a single click rather than two to dropdown select then choose value. Better UX?
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.
Cesium has stopped working through reverse proxy - it used to. It now forces absolute URLs that do not honour relative paths.
If a parameter has defined values, a select is shown to select those values. Interface should also allow a manual override input.
Currently / route goes to blank App module.
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
example of cesium sw / pwa
https://github.com/Developer-Plexscape/cesium-pwa
Vuetify color names eg. 'red' no longer work. Either the color override has broken this, or they are not being included correctly.
Good example of HUD screen:
https://discuss.ardupilot.org/t/new-mp-hud-i-have-been-working-on/26602
One of a few libraries: https://yoannmoinet.github.io/nipplejs/
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.
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.
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.
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.
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
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.
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.
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.
Begin to support pwa requirements
https://developer.chrome.com/extensions/manifest
dev.maverick.one hardcoded, make relative to requesting URL
Parameter screens should have clear dropdown to choose between standard and advanced parameters, with advanced hidden by default
Intel have moved 01org github identity to intel
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.
Dropdown select for boolean parameters is poor UX. Switch would be better.
Web GCS should support multiple APIs, both switchable in views like HUD and Config, and simultaneous in views such as VR and Planner.
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.
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/
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.