pioneers / dawn-v0 Goto Github PK
View Code? Open in Web Editor NEW(archived; now in PiECentral) Dawn is a cross-platform frontend for the Pioneers in Engineering robotics control system.
Home Page: https://pioneers.berkeley.edu
(archived; now in PiECentral) Dawn is a cross-platform frontend for the Pioneers in Engineering robotics control system.
Home Page: https://pioneers.berkeley.edu
If there are too many peripherals connected, the peripherals panel will just grow in height until things are pushed off the page. To prevent this, set a max height and then add scrolling if things overflow.
We should be able to send joystick and receive sensor data in perceptual realtime!
Add a new page to the wiki laying out the Runtime-UI API.
If the user doesn't add the .py extension when saving a new code file, add it for them automatically.
We would like to have an interactive walk-through guide for students the first time they open the app. Should point out/explain the different features of the app.
May want to look at react-joyride.
Want to consolidate the large number of wiki pages devoted to explaining the file structure into a single place, and clean it up.
Add ability for runtime to get sensor data from Hibike (will need to communicate with that team)
Currently, there is functionality in Dawn that allows students to rename peripherals. You can try this by starting both Dawn and fake_runtime (see README for setup instructions) and then double clicking on a peripheral name to change it. Currently, we don't check the new name that students choose, but we should. For example, we should probably make sure the name doesn't have spaces in it. We should discuss with Runtime team what the restrictions should be in full.
The changes you will want to make are in dawn/js/components/NameEdit.js
. There is a dataChange
function that sends updates to the robot when students rename something. We will want to put an if-statement in there to do the verification. We should also show them an alert saying that they entered an invalid name.
There are some functionalities that are not emphasized by the interactive tutorial, in particular:
Currently, peripheral renaming functionality works, but when a user double clicks on a peripheral name to edit it looks almost identical, which can be very confusing.
What I suggest we do is add a border around the textbox in edit mode to make it clear that they can edit. You may also want to look through react-edit-inline documentation to see if there is some way of doing this.
Currently, Dawn's window size is hard-coded in (see main.js). Also, the editor size is hard-coded in (see Editor.js).
Provide students with the ability to:
Add a right click menu to Dawn. One option that should be available in the right click menu is to open the developer console.
Allow collaborative editing in the code editor, so multiple students can work on the code at once.
We want a button in Dawn that opens up the student API documentation. This should be in the editor toolbar.
We should display console output from execution of student code.
Instead of giving students a delete code button (which is not very useful, since they can just delete the file) we want to give them a way to close the current file they are editing (and discard any changes) and start on a new file.
The best way is to
Currently, Dawn is only sending axes data for gamepads, not buttons. We want to include buttons as well.
Currently we have SCALAR_SENSOR, BOOLEAN_SENSOR, and MOTOR_SCALAR peripheralTypes in Dawn. Other peripheral types do not display properly. Make this functional.
Controls right now are blind to whether the robot is already running or not. Also, stop and start commands are being dispatched over ansible directly from the view. Ideally, we would make some sort of Flux architecture for controls, with the ability to know whether the robot is currently running or not.
Multiple people could be using Dawn App at the same time, so whether or not the robot is running must be confirmed with the robot itself.
The editor in Dawn app currently has the ability to save code from the editor to the robot, but no way to load the existing code from the robot into the editor. We need to add the ability to load code.
Also, we would like to add notifications to confirm when a save works.
Update button for uploading updates for the robot.
Create an API endpoint that returns a list of files on the robot.
Two joysticks show up in Windows Dawn, even when there's only one connected.
Currently the peripheral panel displays scalar values with all digits, without any rounding. This can be a lot of digits. Round off the displayed values to two digits after the decimal point.
In the packaged version of Dawn (at least on Mac) copying and pasting does not seem to work. This should be fixed.
Currently things like editor theme, robot IP, etc are stored in localstorage. But this will not carry over if, for example, they reinstall Dawn or update to a new version. We should use something like: https://github.com/jviotti/electron-json-storage to make user settings more permanent.
Make Dawn installer so that students have an actual installation process, not just unzipping a zip. This should make it easier to have auto-updating.
We want this for Windows and Mac at least (Linux installer is lower priority, probably not necessary.).
Provide students with autocompletion in editor, both for Python and the provided API.
Allow students to upload code to robot, without running it. This should be a button added to the editor toolbar, perhaps replacing the delete button (which can be removed).
Sending commands to the runtime like 'start', 'stop,' or 'save_file' don't seem to work every time. Runtime is especially unresponsive when the robot is running.
Add a custom autocompleter to react-ace that displays suggestions based on the student api, not just general python.
The UI lags, even with fake_runtime.py iterating at 2 times per second, sending 5 messages an iteration. Something about re-rendering the UI is slowing it down.
Appears to be exclusive to mac.
Currently all the code is being compiled on startup. This slows down startup a lot on slower machines. We should compile everything beforehand, at least for releases.
Provide an API for students to use when programming the API. Should give them access to sensor values, gamepad data, and motor control.
Want to display somewhere on the dashboard whether or not you are still connected to the robot, whether or not the robot is running code, and what the battery level/status is.
To save space in the peripherals panel, we want to modify the panel so peripherals of the same type are grouped together, IE motors are all grouped together, limit switches, etc.
Then we will hide the individual peripherals by default and only show them if the expand button is clicked.
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.