cyberbotics / robot-designer Goto Github PK
View Code? Open in Web Editor NEWWeb robot designer for Webots robotics simulator
License: Apache License 2.0
Web robot designer for Webots robotics simulator
License: Apache License 2.0
Here is a new iteration on the module and class design:
https://github.com/omichel/robot-designer/wiki/Design
Since the last version and according the Olivier:
Moreover:
This document needs to be validated and improved with the implementation.
After clicking on a translation gizmo and dragging the part the mouse over part highlight continues to change based on the position of the mouse.
Given that in any case the selection cannot be changes during the drag it seems better to disable the highlight changes based on the mouse position.
Currently for some faces of the TInkerbots cubies, like the up face, only one slot is defined even if multiple "holes" are available in the slot.
This could be fine for users but in this case we need to support adding multiple parts per slots which is not the case now.
It would also be possible to specify a maximum number of parts per slot.
I think it would be good to rename view/view3d.js
to view/robot_viewer.js
(and the related class) to be consistent with view/part_browser.js
and view/part_viewer.js
Steps to reproduce:
-> everything seems to work correctly but this error is displayed in the console
Uncaught TypeError: Cannot read property 'traverse' of undefined
at PartMediator.onPartAdded (part_mediator.js:23)
at PartMediator.model.addObserver (part_mediator.js:13)
at observers.forEach (Observable.js:18)
at Array.forEach (<anonymous>)
at Part.notify (Observable.js:17)
at part.js:43
at Part._applyFooRecursively (part.js:92)
at Part.addPart (part.js:42)
at commands.js:95
at UndoStack.undo (UndoStack.js:39)
It could be more user-friendly if a translation/rotation using the handles (from mouse down till mouse up) is considered as a single operation.
Otherwise, undoing this change would need many undo actions.
In the part browser it would be good to show the name of the part when the mouse pointer is over it.
The current version of the robot designer is very close to allow to build all the default models.
But there are a couple of issues with the slots that prevents it:
cubie_box_with_round_slots
cubie_box_with_round_slots
and cubie_box_with_cross_slots
-> it is not possible to move the attached part precisely to the wanted positionAdditionally:
For now the position constraints are hard-coded here:
https://github.com/omichel/robot-designer/blob/master/app/view/handle.js#L109
It would be good to migrate them to asset/assets.json
.
For now, the customizable parameters are TinkerbotsAxle.length
(actually not implemented), TinkerbotsCubiePyramid.color
and TinkerbotsCubieTriangle.color
. In Webots, they are all string enumerations, and affects the Shape (color or shape).
In the contrary of translation
or rotation
where the THREEjs <-> Webots link is direct, this kind of links should be coded somewhere. For now it's hard-coded here: https://github.com/omichel/robot-designer/blob/master/app/view/mediator/part_mediator.js#L78
To solve this, we should either provide a generic way to write these links, or to have several x3d files (e.g. one x3d file per parameter set).
Sometimes it happens that there is a gap between selection in the 3D view and the mouse pointer position on the screen.
This is not systematical but i can reproduce it quite often on Chrome especially after working with other applications and returning the robot designer web page.
I had similar issues with webots.js
that were due to faulty mouse position initialization.
robot-designer is not working on Edge and IE
To reproduce:
It will be user-friendly to enable some keyboard shortcuts, for example:
And to add copy/paste buttons and shortcuts
In https://github.com/omichel/webots/pull/552, the Tinkerbots type name has changed to use the Slot gender mechanism.
Updating https://github.com/omichel/robot-designer/blob/master/assets/assets.json would be good for consistency.
For now, the THREEjs view is refreshed at 60fps systematically. Now that the design become more stable it would be good to have a finer control on the refresh, by refreshing only when some event occurs. These events are certainly the command updates, x3d load, textures load, direct GUI modifications (mouse move?).
As already reported in #11, there are some issues undoing operations with meshes for which the color has been changed.
For example:
undoing a color change (yellow -> blue)
-> the mesh remains blue
undoing a delete of a blue part
-> the mesh appears as yellow, in the part viewer the color is set to yellow, but it seems that internally the blue is stored because changing manually back the color to blue doesn't work the first time. It works if set it to blue, then to yellow (visible color matches internal color?) and then again to blue.
The Tinkerbots root node cannot be deleted using the delete button.
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.