BowlerStudio assists you in every step of a robotics project from concept to completion. Tools enable users to:
- Interface with motors, sensors, and other electronics hardware.
- Create 3d models for fabrication, and for simulating the motions of your project.
- Give your robot sight with image processing on camera feeds and Kinect data.
- Operate 3d printers and other CNC machines.
- Create custom graphical user interfaces to control yours robots.
- Create and control animations.
BowlerStudio Robotics development IDE is based on
- JCSG A 3d cad engine for Java
- Java-Bowler A robotics command, kinematics and control system
- OpenCV A computer vision and image processing system
- CHDK-PTP-Java A image provider for CHDK Canon DSLR cameras
- Jinput Provides Joysticks and xbox controllers
- motej Provides Wiimotes
- Usb4Java A direct USB access system
- NrJavaSerial A Serial port interface
- BlueCove provides raw Bluetooth access.
- JavaFX 8 3d engine.
- WalnutIQ AI library based on neural modeling
- JALSE and AI library based on node modeling
- FreeTTS an open source Text-to-speech library
- JBullet physics engine
BowlerStudio is a device manager, scripting engine, CAD package, and simulation tool all in one application. A user can develop the kinematic of an robot arm using the D-H parameters-based automatic kinematics engine. With this kinematics model, the user can then generate the CAD for new unique parts to match the kinematic model. The user can then export the model to an STL, and connect a Bowler 3d printer to BowlerStudio. The printer can print out the part (using the newly generated STL) while the user connects a DyIO and begins testing the servos with the kinematics model. When the print is done, the user can assemble the arm with the tested servos and run the model again to control the arm with Cartesian instructions. Once this is complete, the user can then attach a wiimote to train the robot arm through a set of tasks, recording them with the animation framework built into BowlerStudio. To be sure the arm is moving to the right place, the user can attach a webcam to the end and use OpenCV to verify the arm's position, or use the arm (in conjunction with the webcam with OpenCV enabled) to track and grab objects (IE "eye-in-hand" tracking).
Every step of this task can be performed from within BowlerStudio!
Let's go through the main features:About scripts and Git
Scripts are bits of code that BowlerStudio can load and run. BowlerStudio allows you to open a local file and run it, but BowlerStudio is most powerful when the code lives on Github Gist (a code snippet hosting service from Github). Simply give BowlerStudio the URL for a Gist you want to load and execute. Gists can be selected and edited using the built in browser, or inline in another script using the Gist ID.Java and Groovy
BowlerStudio can load and run scripts written in Java, Groovy, and Python. Which parser is used is determined by the file extension. Files that end in .java or .groovy will be run through the Groovy compiler. These Groovy scripts are compiled fully and run directly in the JVM. This means they will execute at full speed, just like a regular application.Python
Python, on the other hand, by virtue of its structure, will generally execute much slower then Java. With the reduction in speed you get lots of flexibility and a clean and easy to understand syntax. The python code can also create and return objects to BowlerStudio (such as CAD CSG objects, or UI Tabs).Return Objects
A script can return a few object types that will be handled by BowlerStudio: Objects of type "CSG" and "MeshView" will be added to the 3d display. If a transform is added to either of these and updated by a script the user can move an object in the 3d view. Objects of type "Tab" will be added to the Tabmanager and displayed in BowlerStudio. This is an easy way to make control panels or state displays and monitors. Objects of type "BowlerAbstractDevice"...Read more »