Robot configuration editor.
Edit on StackBlitz ⚡️
Angular documentation
This project was generated with Angular CLI version 8.3.6.
Project options: routing and SCSS as a style sheet.
These modules should be added on top of the standard angular installation (npm install
should do it for you)
npm install angular-split
Documentation
npm install three
Documentation
npm install angular-resize-event
Documentation
ng add @angular/material
Documentation, accept typography styles, accept browser animations.
npm install file-saver
Documentation
npm install uuid
Documentation
npm install ngx-file-drop
Documentation
Run ng serve
for a dev server. Navigate to http://localhost:4200/
. The app will automatically reload if you change any of the source files.
Run ng generate component component-name
to generate a new component. You can also use ng generate directive|pipe|service|class|guard|interface|enum|module
.
Run ng build
to build the project. The build artifacts will be stored in the dist/
directory. Use the --prod
flag for a production build.
Run ng test
to execute the unit tests via Karma.
Run ng e2e
to execute the end-to-end tests via Protractor.
To get more help on the Angular CLI use ng help
or go check out the Angular CLI README.
Example of the working ThreeJS application can be found at https://www.meercad.com/Robots/robot.html
The ultimate task is to create configurable machine (aka robot) simulation software with fast inverse solution.
Explanation of the controls of the live JavaScript prototype application for the Kuka KR300 robot.
Lighting settings from the ThreeJS example.
KR300 forward solution controls. This is a simple bit. Forward controls are specifying positions of the machine (robot) and the final position of the effector (used to perform useful action). Changing any of the axis coordinate will move machine to the specified location,.. but how we will know, what axes coordinates should be so effector will be in the required position?
This is a difficult part, which is called Inverse kinematics.
The problem is that with arbitrary number of the axes there can be multiple inverse solutions. And there can be a nasty problems like ... Singularities.
Those controls are for the Inverse Kinematics solution for the KR300 robot with the linear axis.
When Enable position checkbox is checked in, the robot effector will follow the coordinates and the vector specified by those controls. Forward solution will be disabled in this case.
This is a Random kinematic chain prototype. JavaScript and ThreeJS based live example to generate multiple random robots and provide Inverse solution for them.
The robots are created using random value generator and they all follow the ball. The controls are:
Those set a position of the end effector, which robots should achieve..., if they can.
Contols to set maximum number of arms and maximum number of joints (actual values are randomly selected):
Shown number of arms is limited to 50 parallel arms and 200 degrees of freedom. JavaScript can't do more. C++ implementation worked with more than 1000 degrees of freedom.
This project is to provide an experimental interface for the C++ application with built-in Chromium browser.
This last example is a bit messy. It is a work in progress. It shows C++ application, which can read machine configuration, has built-in Chromium browser with JavaScript interface, Ogre3D as a graphics system, command line interface (custom and Python) and Angular sample application running.