Today, we discussed with Alexis and Samuel concerning the architecture of our bot.
First choice to do, is the computing system to use. This leads to the question of the processing power needed by the various algorithms used for the control engineering. We have to search further and test actual code to be sure, but already existing ball bots use low power systems, like Pentium running at 200MHz or microcontrollers, so we are quite confident that a STM32F4 should be enough for our needs, and we need at least a STM32F4 to be able to control 3 motors and receive informations from the rotary encoders.
Another choice is the communication between the Ball-Es, and the communication with other devices, like phones. Our first choices were to use Zigbee to communicate between Ball-Es, and bluetooth to communicate with smartphones. Alexis suggested the use of WiFi, because we will most likely need high bandwidth when setting various parameters of the control. At first sight, I was afraid of the complexity of such a choice, because i thought we would have to implement a TCP/IP/Wifi stack, but there are some smart wifi chips available, which already includes those stacks, and can be talked to with simple protocols like SPI or UART, so we decided to use WiFi instead of Bluetooth for external communication.
Yesterday, Matthieu and me continued to work on the physics of Ball-E. First step we have already partially described is to establish the kinematics of the problem. The part we put here before was wrong, we were working on a case that isn’t general at all: we were asuming the wheel was in the falling plane, which is wrong. Another parameter we forgot was the fact that the angle between the robot and the vertical is not constant… Yes we want our bot to get straight back. So we did again all the maths, with a new parameter, which is the position of the wheel around the axis of the bot. With this new parameter the formulas are getting even more complicated, but we eventually found a relation between the movement of the bot on the ground, the rotation of the wheels, and the change of bot’s pitch.
The second step is to take in account the dynamics of the problem, which is quite similar to a reverse pendulum. Using the theorem of angular momentum, we can find a relation between the velocity of the bot, its acceleration, and the change of angle of the bot. Combining those two relations should give us the commands we need to give to the motors to go the way we want to.
Now is time to get ready for tomorrow’s communication challenge !
Possibly related posts: