A Crash Course in Bottango
What’s in this chapter
In this chapter we cover the core concepts and workflow of Bottango. This chapter is not a “how-to” but instead a high level conceptual overview of how robot animations are created in Bottango.
In future chapters we will cover this same information again, but in a much more detailed level with tutorials.
How Bottango works
Bottango works by sending commands over serial to a hardware driver. Think about it kind of like the relationship between a client and a server. Bottango is the server, sending commands. Your hardware driver is the client, receiving those commands and acting on them.
A hardware driver can be anything you want that can create a serial connection to your computer. However, in the most common case, a hardware driver is an Arduino or a similar user programmable microcontroller.
In Bottango, A hardware driver is a user programmable microcontroller running Bottango compatible code.
Hardware drivers respond to serial commands from Bottango running on a computer.
Bottango provides not just the program that runs on your computer, but also a fully functional Arduino-compatible program to upload to your microcontroller. That program is able to open a connection to Bottango running on your computer, and execute the commands Bottango sends to it. In order for Bottango to do anything, you need to upload the provided Arduino compatible code to a microcontroller and connect it via USB to your computer.
You can modify the provided Arduino program, but you don’t have to touch a line of code to get all of the out-of-the-box Bottango functionality.
In the Bottango application itself, you create the animation that will be sent to your robot via serial commands to hardware drivers.
The basic Bottango workflow
Bottango is a tool to help you control a robot, not to help you build that robot. So let’s assume you have a robot that could move if given the right controls. The steps you will take in Bottango are:
1) Model the basic structure and joints of your robot. The accuracy of the model required is up you. Your goal in this step is not to create a picture-perfect representation of your robot. Instead, create just enough detail to represent your robot so you can manipulate its joints. If you’re familiar with the concept of animation rigging in 3D modeling, this is approximately the same idea. You can also import a 3D model instead to use as the structure of your robot.
2) Add and configure motors. Each motor in your robot that you want to control needs an accompanying motor in Bottango to configure and control.
3) Add and configure hardware drivers. Bottango can’t move effectors on its own; it needs a hardware driver to send commands to, to drive motors, etc. Upload the provided code to a microcontroller, and then set up Bottango to communicate with that microcontroller.
4) Configure joints. Joints are links between the structure of your robot and motors. With joints you’ll indicate that by moving your robot in a particular way, your motors should drive to certain positions.
5) Add audio. If you want to synchronize movement or playback audio, add it to Bottango.
6) Animate your robot. Create keyframes on the animation timeline of joint movement. Edit the time, value, and interpolation of those keyframes.
1. Model the basic structures
In order to move and animate your robot, first you need to create a virtual representation of it. Bottango provides very basic modeling tools to create the structure that represents your robot.
The structures you model in Bottango should not be a picture-perfect representation of your robot. Instead, they are just the virtual controls that you will manipulate to move your robot and visualize its movement.
In Bottango, structures are the virtual representation of your robot’s physical form.
This robot has three points of articulation:
It rotates the yellow base extension on the Y axis.
It rotates the green arm up and down on the X axis
It opens and closes the blue gripper.
Obviously, the actual physical robot is far more complicated than this. However, this level of detail is all that’s needed in Bottango to visualize and control movements.
Here is an example of a simple robot structure built in Bottango: