-
0.20.2 Rotations, cameras and deep copy, oh my!
12/31/2016 at 16:49 • 0 commentsOK! 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 -
Big update in CAD engine!
12/29/2016 at 16:59 • 0 commentsI 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.
-
Animatronic head becomes its own project
10/10/2016 at 20:55 • 0 commentsI 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!
-
A full vitamins library
08/13/2016 at 01:03 • 0 commentsI have finally gone through an made cad generation scripts for all of the hardware defined in:
https://github.com/madhephaestus/Hardware-Dimensions
You can see an example of how to load real dimensioned hardware easily using the Vitamins API demonstrated here:
http://neuronrobotics.com/JavaCAD/Vitamins/
Coming soon is my first CNC machine designed in BowlerStudio...
-
Arduino in BowlerStudio: A whole new perspective on 'full stack'
08/01/2016 at 14:18 • 0 commentsBowlerStudio 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)
-
Animatronics! I made a slide-bar parametric animatronics head
07/01/2016 at 16:04 • 0 commentsSo this is a neat way to use BowlerStudio. One of my biggest frustrations with downloading a laser cut design is having a different thickness material then they used, a different servo, different bolt and so on. I started with slide bars to control those so anyone could make this with whatever parts they had laying around. I then noticed that i could parameterize all the aesthetic choices too. You can change the snout length, the head diameter, the eye distance, even the size of the eyes independently. I may need to make a new project just for this.
Oh, and its just 990 lines of code in total to do all that!
https://twitter.com/pjlangloi/status/748692603521163264
and the source for anyone with BowlerStudio that wants to play with it themselves:
https://gist.github.com/e67b5f75f23c134af5d5054106e3ec40.git
-
New video of the 0.18.4 features
06/04/2016 at 02:06 • 0 commentsHere is a quick video i did as a walk through of some of the new features in BowlerStudio.
-
0.18.4 Now with code-to-object highlighting and IMU interface
05/30/2016 at 22:22 • 0 commentsIn this release I focused on highlighting parts from the UI. The user can now figure out what robot and limb and link they are working on just by selecting the menu, and the leg or limb will highlight.
The much cooler feature is the ability for the scripting interface to do the same! As you highlight lines in the scripting interface, any CSG's created by, or modified by, that line will highlight themselves in the 3d window. This means nice reactive back-and-forth between code and the parts they created.
I also added an IMU interface to the Mobile Bases and the Links, The Physics engine pushes virtual IMU data into it, and there is a separate but identical interface for hardware to push data. User code can attach listeners to the mobile base and get streaming IMU data that way. THis will be awesome for the final BigDog-sytle project...
-
Docking! All widgets pop out into windows
05/23/2016 at 02:50 • 0 commentsI added DockFX to the UI core and this now lets the UI bits be poped out into windows, and back in as tabs or side/top/bottom panels. Its a prety neat framework, and im using the Clear Control https://github.com/ClearControl branch wich supports tabs. It is especially useful on computers with screens.
-
0.18.0 and GCODE devices Alpha interface released!
05/20/2016 at 17:12 • 0 commentsGood News Everyone! BowlerStudio 0.18.0 is released and posted at http://neuronrobotics.com and supports GCODE devices (kinda). You can connect a gcode device and use it as a bowler device. This means you can use it in scripts, and it is fully integrated into the LinkFactory, meaning you can make creatures with its links. In fact you can connect any 3d printer, then open the CNC controller creature and use its controls to jog your printer around!
Now the downsides. It assumes your controller is running at 115200 baud as hard-coded for now (when connecting through the UI, you can change this in the script demo). Sometimes my Marlin locks up and i don't know why. It's most likely my fault, but i can't find the bug... And the big one, all motors are limited by the max speed of your slowest stepper, that is your z stepper. This is a GCODE coordinated motion "feature" thats kinda a pain when you want to just use the steppers as a robot.
I have added a tutorial step in the hardware tutorial for the gcode devices: http://neuronrobotics.com/Bowler-Studio-Hardware/GCODEDevices/