06/21/2019 at 16:50 •
I spent the week doing bigfixes on BowlerStudio!
The big ones fixed:
* Re-docking windows sometimes results in frozen text windows
* Cold-start on windows was buggy
* Slide bars for robot link limits is MUCH improved
* Adding files to empty repos works now
* Git pull, and update repos menu item, now work
* Dropped the OpenCV deps, makes cross platform easier and binaries smaller
* A workspace menu, populated with the 15 most recently used Git repos
* Bundled JVM on windows and Macos, no more separate Java dependency!
* Ubuntu 18.04 PPA
07/21/2017 at 16:03 •
I have made a new release 0.22.0 that finally fixes the issues we were having with the binary release of the Mac stand alone. It turns out that when you run the code using gradle, it has already loaded all files into memory, so accessing the files is fast enough to be done in a UI thread, even though this is discouraged. In the Jar form, the timing overran, and Mac UI managed froze the program. I have now made (further) sure that file access takes place in a normal system thread, and UI access is managed by a tiny Platform.runlater code snippet. This took months to fix because the way Mac breaks is totally opaque to the user and developer. It just hangs, no errors, no exceptions.
I really hate macs...
Anyway, i also added High DPI screen support by making the font of the text window changeable. Ok, in fairness, all the UI text is still tiny, but the editor is nice and readable. This will also help with projecting code on a projector for teaching.
04/15/2017 at 20:40 •
I am proud to show you a brand new introduction video for BowlerStudio!
02/03/2017 at 21:29 •
I have a solid Alpha version that has been released for coming up on 6 months now. The feature list is more or less complete, and the major bugs are mostly worked out. I am looking for feedback from anyone that has been using BowlerStudio. What sort of things annoy you? What things do you expect to happen that don't? What sort of things happen despite you not expecting it? Are there any things you think it should actually do that it doesn't? Let me know in the comments here.
01/13/2017 at 16:10 •
I am hoping to get a bunch of people up to speed with BowlerStudio so I am offering an introduction to BowlerStudio. This will be a set of classes where i will walk you through the process of building robots with BowlerStudio. I will be recording these sessions for anyone that comes later, but if you want to ask questions and get help you will need to attend the final class time. I have posted a when2meet to gather interest, and when a time is selected i will post back here.
As for prerequisites, this is *not* an introduction to programming class, so the ability to read and write object oriented (or functional) code is a must. I will be instructing using Groovy (Java) in most of the classes for the sake of consistency. I will briefly introduce using Python, Clojure and creating a custom Domain Specific Language. We will cover the scripting system, the git-as-filesystem architecture, the kinematics framework, the CAD engine, the physics engine, Arduino code and Bowler Protocol integration, offline headless deployment all while exploring the BowlerStudio Integrated Development Environment for full-stack robotics.
12/31/2016 at 16:49 •
OK! I just pushed a new release with a very important fix. The rotation library i was relying on (mine) was giving errors sometimes and causing a whole bunch of other bugs. Should have done this all along:and while i was in there I made a few Ui navigation updates, namely when you click on stuff the camera smoothly pans to it, rahter than jumping all around. and when the mouse goes idle for 10 seconds, it begins to auto-spin around the object (video game UI trick). you cna disable that with a checkbox, btw. and a small issue i keep running into, when you make a copy of a creature it attempts to maintain the hyperlinked connection to the scripts, now the copy does a deep copy into a single repo with all the scripts. if the script calls a script, that stays as a hyperlink, but things like the walking script, since if i copy a robot i geta hyperlink to my esisting walking script and if i edit it i mess up another robot
12/29/2016 at 16:59 •
I have added 3 components to the CAD engine, Text extrude with fonts, SVG loading and extrusion, and extrusion along a Bezier path.
In version 0.20.0+ you can use all of these new API's. I have also changed the name of the dependent library to JavaCad from JCSG to avoid looping dependency conflicts (long story, trying to work it out with the upstream developer).
I have also discovered exactly WHY the Curiosity rover and any other powered wheel thing doesn't work, there seems to be some issue in Jbullet HingeConstraint that causes angles of -180 or 180 to snap to 0 degrees instead of continuing to roll over. instantaneously, causing control loop governing them to go nuts. I am working on implementing the driving vehicle physics engine example for wheeled devices, but that will make molecularity a problem down the line :/ Passive wheels such as the cart do not seem to suffer from this, which is curious, or maybe they do and it doesn't matter because there is no control loop driving it out of control.
10/10/2016 at 20:55 •
I have decided that the animatronic head is sufficantly awesome that it deservers its own proect, not just an example script for BowlerStudio. https://hackaday.io/project/16193-open-animatronics
I ran a class this summer teaching robotics to a bunch of high school kids. They each built an animatronic head, and programmed it using the arduino. They had a blast and used the robot as a reason to learn to program and engage with engineering.
During the month of october i am hosting a free costume build day every sunday at my makerspace, Technocopia. A group of us are making wearable anamatronic heads and we are doing a "where the wild things are" group costume!
08/13/2016 at 01:03 •
I have finally gone through an made cad generation scripts for all of the hardware defined in:
You can see an example of how to load real dimensioned hardware easily using the Vitamins API demonstrated here:
Coming soon is my first CNC machine designed in BowlerStudio...
08/01/2016 at 14:18 •
BowlerStudio is a neat runtime for bootstrapping files out of git repos and quickly putting them to use. I have used this trick for CAD, for AI, and for kinematics control. Now i have finally added a new domain: Microcontroller code!. You can now push arduino firmwares as *part of your normal code flow* inside any bowler studio language. The trick is treading .ino files as a scripting language like any other, and then pushing it through the normal arduino command line interface.
I also ported over the DyIO firmware to arduino (fair warning it needs a Mega or Curie for the full IO controller code at the moment). I did get the standard bowler communication stack working on a standard arduino Uno, as well as extending it with arbitrary processing on the arduino called from a groovy script, loaded at runtime, and then called by the same script. Pretty trippy when you think about it...
I have added a few examples of this here: http://neuronrobotics.com/BowlerFullStack/C-Server/ These work in BowlerStudio 0.18.11 and up and need Arduino 1.5 or greater installed (all done by the ppa now, linux is the easy one)