Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
DJuego
@DJuego
Thank you, @boonto!!
Bria
@bria72
Hey, I'm working on adding a simulation feature to an arduino-based robot. I’m having trouble figuring out how the simulation logic javascripts access the blockly inputs (such as speed and time/distance). Or how/where is the pose updated? I asked a similar question in the google forum and it was suggested that I link my repository so you can better help. Here's a link: https://github.com/bria72/openroberta-lab.git. The work I'm doing is in the "simulation" branch and the robot is called "dinobot". And if you have any documentation on the simulation that isn't on the wiki, it'd be greatly appreciated. Thanks in advance!
Beate Jost
@bjost2s
Hi @bria72 ,
each robot calculates it's pose on it's own, see https://github.com/bria72/openroberta-lab/blob/5abf354b8f3782d3267092867faf0817db12e96e/OpenRobertaServer/staticResources/js/app/simulation/simulationLogic/robot.dinobot.js#L390 depending on the new values (commands) for the motors. Each frame the robot gets new commands from the stackmachine interpretor in the robotBehaviour object.
Beate Jost
@bjost2s
We generate from the blockly inputs some stackmachine code (json like). When you press the start button, this code will be evaluated by the interpreter https://github.com/bria72/openroberta-lab/blob/simulation/OpenRobertaServer/staticResources/js/app/wedoInterpreter/interpreter.interpreter.js. In your branch all interpreter files are still in the WedoIntepreter folder. This is not a good name, so we have renamed it lately. I would recomment you to rebase soon. Be aware that the interpreter files are typescript files originally and changes should only be made in the WedoInterpreter project https://github.com/bria72/openroberta-lab/tree/simulation/WedoInterpreter. Again this project has been renamed recently to "TypeScriptSources"
Bria
@bria72
@bjost2s Thank you! That was very helpful.
Beate Jost
@bjost2s
@bria72 , ok, don't hesitate to ask more, if needed
Mark Yan
@YanMinge
Test whether the communication is successful.
Mark Yan
@YanMinge
@bjost2s ,I'm Mark Yan from matatalab, I think our device may be the closest to wedo. So it should be a standalone plugin task for me. in wiki https://github.com/OpenRoberta/openroberta-lab/wiki/Adding-a-new-plugin says "For a general overview you can follow the latest commits on the feature/orb branch, a new plugin for a webView based robot", but I don't know which commit id I can follow.
Mark Yan
@YanMinge
I have done
Reinhard Budde
@rbudde
@YanMinge I've added you to the room "matalab". This room is for discussions about the integration of your device. It sounds very interesting to us. Unfortunately this week I'll too busy to work on that issue.
Kushal Kumar
@K-Kumar-01
hello @everyone
My name is Kushal Kumar.
I am new to Gitter.
I am interested to contribute to the community
Beate Jost
@bjost2s
Hello and welcome! Do you have a specific topic you are interested in?
SHOBHIT TIWARI
@shobhu98
Hello Everyone,
I am a final year undergraduate student interested in GSoC'21. I wanted to ask if Open Roberta Lab is participating in this years GSoC?
Reinhard Budde
@rbudde
yes, we will. Hope to see you when GSOC 21 is open.
Anu Sharma
@Anu-MADMAX
Hi everyone, i would love to contribute to the community. Are there any good first issues that I can get started on?
Beate Jost
@bjost2s
@Anu-MADMAX , feel free to check the issues with the "good first issue" label
prateek-1606
@prateek-1606
Hello everyone,
I am a JavaScript developer. Can i start contributing in JavaScript
suraj10k
@suraj10k
Hey @rbudde I was hoping you can help me locate a few files on which I have to work on
kirtirajsinh
@kirtirajsinh
Hello everyone, I'm new to this organization. I would like to contribute to openroberta-lab. I've set up the project in eclipse but it is returning 1 error "plugin execution not covered by lifecycle". Also regarding where can I get started. thankyou
Mark Yan
@YanMinge
set eclipse windows->Preference->Maven->Error/Warnings->Plugin execution not covered by lifecycle configuration to Ignore
kirtirajsinh
@kirtirajsinh
due to uni. exams I was not able to completely focus on this project but now I'm ready to learn and contribute. do I have to add the bin path of JDK or the maven(bin) in the path? while setting up the project.
vxvishal
@vxvishal

Hello everyone,
I, Vishal Kumar Singh, am a 1st year Computer Science and Engineering student at Faculty of Engineering and Technology, Jain University in Bangalore, Karnataka, India.

I have intermediate knowledge of Java and C++. I want to contribute to this community and willing to learn the skills and enhance knowledge required to make this happen.

Would love to know where do I begin with. Thank You !

suraj10k
@suraj10k
Hey I’m Suraj K , I’m a student at DTU , I’m a first year computer science student. I am quite proficient in c++ , JavaScript, html , CSS and react native ,I’m looking forward to contribute to the project
Akash Yadav CIC-2017-21
@akash_yadav2908:matrix.org
[m]
Hello Sir/Ma'am,
Myself Akash Yadav, I am currently pursuing my undergraduate in Bachelor of Technology from Cluster Innovation Centre, University of Delhi. I am keenly interested in contributing to your organization this summer. I find your pre-proposed documentation project "Running a private OpenRoberta server on your laptop or your RaspberryPi" really interesting and would like to work upon it. Can you please guide me in getting started with this project.
Thank you in Advance.
Beate Jost
@bjost2s
To all GSoC Students, please use our GSoC channel https://gitter.im/openroberta-lab/GSoC
Meenakshi Das
@meena1983:matrix.org
[m]
Hello! I am wondering when the Nepo branch will be merged into the develop or master branch. The Nepo branch uses the latest blockly which has Keyboard Navigation etc, hence the question. Thank you!
Beate Jost
@bjost2s
@meena1983:matrix.org , unfortunately there is still a lot of work to do before we can merge it. With the "new" blockly we would like to rename a couple of blocks. This is somehow tricky for backwards compatibility. Also serverside this will cause some big changes.
Meenakshi Das
@meena1983:matrix.org
[m]
Makes sense. Thank you!
Harshrj09
@Harshrj09
Hi, I am Harshraj Shrivastava. Currently, I am pursuing BBA with a concentration in iInformation Technology from Symbiosis, Pune. Could anyone connect/direct me to the concerned person who can tell about the documentation project under GSoC? I would like to discuss.
Harshrj09
@Harshrj09
I am interested in "Describing the REST Endpoint structure and usage through the frontend"
d.waw
@dwaw18
Hello! I’m working on custom plugin in Open Operta Lab for robot which receives commands on a command by command basis. This robot uses USB Dongle which can be connected to PC and communicates with it via Bluetooth and, unlike most robots, does not receive any compiled binary. I know that Lego WeDo or newly added orb robot from feature/orb git branch uses such functionality and Lab provides plugin type webview to send commands using this method. Unfortunately, this requires also an Android app to connect to such robot and I would like to use desktop (with Open Roberta Connector app if necessary). Is it possible to achieve this on desktop?
Stefan Sauer
@ensonic
@dwaw18 this will be tricky. something needs to talk to the USB dongle to send the commands. WebUSB is still to rough to allow an webapp to use the USB dongle. Also the fact that this is a custom USB-dongle instead of a standard Bluetooth connection is concerning. If it is regular Bluetooth and the protocol is documented, using Bluetooth is easier from a mobile app. Again WebBluetooth is not established enough to send the Bluetooth commands from the browser. But this would be the way to go.
d.waw
@dwaw18
I should specify this earlier. This USB Dongle is used as a COM device, which can use serial communication. I studied Open Roberta Connector app code, and it already has jSerialComm dependency. I've managed to successfully connect and talk to this dongle from app in my custom connector class. In that case, what type of connection in plugin in Lab should be used? From my understanding, token type is used to connect to Open Roberta Connector, but the app expects precompiled code from Lab which could be sent to the robot. WebView type is only used in mobile, but it uses command by command technique, which is ideal for my scenario. My goal is to achieve this on desktop. As I said earlier, my robot does not receive any precompiled code and only expects commands as short byte arrays. The robot receives commands from a USB dongle and after completion, sends callback to this dongle. Is it possible then to implement command by command technique in Open Roberta Connector?
Stefan Sauer
@ensonic
@dwaw18 thanks for the clarification. you will basically need to embed an interpreter into the connector-app, the plugin in open roberta will generate the code in whatever form your interpreter can handle, the interpreter will handle the loops and conditionals, the hal-part will send commands to the robot over the bt-serial
AetherDim
@AetherDim

@bjost2s
Hey there,
Mr. Leimbach asked me to talk with you about a new simulation.
I was wondering whether you would be interested to include it in ORL.

We build it from scratch using TypeScript.

See here: https://github.com/AetherDim/openroberta-lab

Features:

  • Matter-js physics engine
  • pixi.js renderer
  • scene management system
  • determinism
  • and more!

We plan to have a test server running in near future (at the moment we don't have a domain name)

Beate Jost
@bjost2s
@AetherDim , thank you very much! Do you have a proposal or some text, where the goal of your work is described (besides rewriting the simulation in TypeScript, which I really like). So what exactly will be different from the user perspective. You can also write a PM
AetherDim
@AetherDim

@bjost2s
Thank you very much for your interest in this topic!

Below we summarized our thoughts and goals:

Due to the current situation, our in-person robot competition got cancelled and we decided to do an online event.

For the first event, we used the current simulation of ORL and implemented some challenges. This was not an easy task, because we were required to learn the project structure from scratch.

The missing determinism made it very hard to score each submission reliably.
Each time we ran the simulation it would produce a different outcome (robot position / score / ...).
Also, the simulation is not very realistic, and we thought it could use some user interface improvements.

Our goals:

  • We wanted a physics engine, so we could add more interesting challenges and make it feel more fun.
  • The whole website should be as performant as ORL.
  • The simulation shall be deterministic
  • We decided that we will support most modern browser (Firefox, Safari and Chromium (Edge, Chrome, Vivaldi, ...)) Currently, Internet Explorer is not supported (It is possible to support IE, but way to time-consuming and simply not worth it, because Microsoft switched to Edge)
  • A modular approach to the code structure of the simulation. It should be easy to add new scenes and features.
  • Make it mostly independent of ORL to support "fullsite/fullscreen" simulations without ORL user interface.
  • Support multiple (any number) of robots and also allow for robots that are not controlled by the player/programmer. (not tested)
  • Add better debug systems (like dat.gui for fast visualization) and tests (in progress)
  • Add Touch/Mouse zoom and scroll support
  • Add the challenges for our competition (mostly done)
  • Write the whole thing in TypeScript
  • Add quality of life improvements like a simulation speedup button or zoom buttons

Future goals:

  • Add a better robot configuration
  • Add sounds
  • Fully support all ORL robots and features

For another list of recent features/improvements/fixes see here:
AetherDim/openroberta-lab#4

Some more in depth information about current development decisions:

  • At the moment we are working on loading/unloading/resetting of scenes. On the one side we want the simulation to be as smooth as possible and not block the main thread of the browser while it loads. On the other side we want an easy implementation of scenes. The problem strikes mostly in form of assets. Assets should be loaded asynchronously and the type of asset can greatly influence this behavior. Currently we load our scenes using our "AsyncChain" class. This is an implementation of a promise based loading queue.
    This means:
    • We define steps that need to be done after another.
    • At the end of each step we call "chain.next()" to invoke the next step. This works fine but is hard to develop for, because one has to always think about the current state of the engine/scene.
      For example:
    • You can not access textures before the loading step finished.
    • It is not possible to access the color of the ground (for the color sensor before the ground is "placed"/loaded.
  • Since we use a physics based approach, we cannot calculate the new position directly. (Inverse kinematic is not easy) We need a calibration value based on friction and other parameters (or a formula) in order to calculate the correct forces to apply to the robot.
Stefan Sauer
@ensonic
FYI: Videos from the Blockly summit are online: https://sites.google.com/view/blockly-summit-2021/videos
Beate Jost
@bjost2s
@AetherDim , thank you for sharing this. Is "http://185.207.105.71:1999/" the actual state of your work?
AetherDim
@AetherDim
@bjost2s This is a development state which is some commits behind. We plan to set up a beta version of the server without development tools in the near future.
AetherDim
@AetherDim
@bjost2s Hello, here is the link to the new beta simulation: https://next.cyberspace.roborave.de/
It would be very nice if you could give us some feedback :)
Meenakshi Das
@meena1983:matrix.org
[m]
Hello, I am trying to add a new file to open roberta blockly's core directory: https://github.com/OpenRoberta/blockly/tree/master/core
It compiles without any error but when I add the compressed file to the staticresources directory in open roberta, i get error on line 90 of js/app/configVisualization/robotBlock.js saying, "cannot read property 'field' of undefined" . This happens even if the new file in blockly core is just one line. are we not allowed to make changes in blockly core?
Beate Jost
@bjost2s
Probably you haven't told blockly that the new file should be part of the generated compressed file. Maybe you just have to require your new class here https://github.com/OpenRoberta/blockly/blob/master/core/blockly.js
Meenakshi Das
@meena1983:matrix.org
[m]
@bjost2s: thank you for your reply. I am actually facing the same issue even if i add a single line to an already existing file. I added a single line Blockly.keyboardAccessibilityMode_ = false;
on line 117 of the blockly.js file(https://github.com/OpenRoberta/blockly/blob/master/core/blockly.js). i compiled using python build.py and then added the compressed file under static resources in open roberta. Then i did mvn install and started the server but still get the same error. I attached a screenshot. I am not sure what is going wrong.
Abhinav Rajput
@AbhinavRajputEXE
Hey, I'm new here, can anyone tell me where to start?(contribution)
RishabhDeep Singh
@rishabhdeepsingh
@AbhinavRajputEXE Hey, have you gone through the README.md?
Abhinav Rajput
@AbhinavRajputEXE
@rishabhdeepsingh Yeah, I read the readme and the windows installation part, but can you please tell me a little bit more about the open Roberta lab, and can I contribute if my main language is java, if not then what do I need to learn along with my contribution?
RishabhDeep Singh
@rishabhdeepsingh
yes you can contribute. check in the issues tab for all the open issues