07/09/2019 at 03:47 •
Quick update on the most recent version of the cat. We took a look at our previous designs and have started making some improvements.
- Longer legs and a slightly larger body
- Easier assembly - many of the parts will be the same and reversible so its harder to mess up
- Easier manufacturing down the line. Similar parts allow for easier mass production
- More customization
- Optional encoders for additional feedback
- Improved motherboard with room for 20 servos
- Improved calibration
The current design still needs a revision or two. Currently its very blocky and hastily made so that electronics can be tested. Further revisions will have nicer aesthetics. Additionally we are re-evaluating our choice of hardware so that we can better supply parts. We also need to stress test the system with the larger body size and additional weight
06/21/2019 at 16:52 •
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
04/25/2019 at 18:38 •
Here is an update to the dynamics stack. In the background you can see the control software BowlerStudio with the live 3d model and its motion trajectory.
04/24/2019 at 21:49 •
Iterations are inevitable. Since we have taken to developing this cat full force we decided the easiest way to go about the foot sensors is to revise them from using their SPI protocol to making them as simple as possible by returning an analog voltage between 0 and 3.3 volts. So as can be seen here, the new DPS310 barometric pressure sensor resides in the middle of the board and to its right exists an stm32l011f4 micro controller(programmed through pads for pogo pins on the back for easy mass programming) that returns the equivalent value from the 24bit sensor as an analog voltage through the PWM port. This PWM signal is then filtered through an RC filter and comes out of the connector on the back of the board as an equivalent voltage. The pressure sensor data is therefore down resed from its original 24bit to 16 bit, however this is shill more than good enough for our application.
04/17/2019 at 13:28 •
Here is a video demonstrating the dynamics loop. The IMU produces a gravity vector that is then used to compute if the SmallKat is tipping over. To the degree that it is tipped off its axis, the dynamics controller applies a counter Coriolis force by spinning the head and tail counter to the tipping direction.
04/15/2019 at 16:25 •
I added a zip of printable files for the whole SmallKat. They are in a zip folder in the files section of this project page, and also here:
I also added detailed instructions for cloning, printing, wiring and calibrating a new SmallKat. See the instructions section.
04/12/2019 at 03:05 •
The second revision of the motherboard took everything we learned from the previous revision and fixed all the issues. The number of IMUs was reduced to 1 in the center of the motherboard , The Teensy 3.5/3.6 was replaced with a nucleo-l432kb nucleo-64 development board, A PCA9685BS to drive all 16 servos, off board power regulation for the servos using 4, 4A BECs and fused power plugs for each bank of 4 Servos. The switch mode circuit was improved to as previously inductive spikes from the motors being released from stall would cause damage to the IC, once resulting in it releasing its magic smoke. The correct connections were added to allow for the connection of the foot sensors.
The new board is being produces now and this will be updated as testing insures.
04/12/2019 at 02:46 •
While brain storming sources of feedback that could be put onto the robot, We came up with a barometric pressure sensor encapsulated in a form of rubber. After researching a number of pressure sensors a highly sensitive, 24bit MS5611 pressure sensor was chosen with a resolution of down to 0,0024 mbar communicating through SPI. A board to mount to the end of the ankle joint of the robot was made so it could be encapsulated in the rubber.
This board was mounted to the ankle join and cast in a variety of rubbers to test the sensitivity and resolution of the data. Two durometers of Smooth-on silicone rubber (Durometer 10 & 20) and Smooth-on Vytaflex 20, a Durometer 20a poly-urethane. These materials were cast into a 3 printed mold and placed into a vacuum chamber and a vacuum was pulled to remove any air from the system that may result in any inconsistencies in the density of the material.
The silicone rubber was tested and the results were very promising of the Durometer 20 rubber, however the Durometer 10 rubber was too soft to provide reliable and repeatable data. However the attempt to use silicone rubber stopped here, it was eliminated due to the inability to have silicone bond strongly to any material other than itself.
The poly urethane casts despite having a number of failed attempts at the beginning gave excellent results in both casting quality and pressure transmission to the sensor. For this reason as well as its durability we continued with this material.
04/12/2019 at 02:06 •
The intention of the first revision of the motherboard was to allow for the most feed back to the controller as possible. It Incorporated 4 i2c current sensors in order to extrapolate the force being applied to each motor, 2 BNO055 9DOf IMUs, a high current switch mode power supply to regulate the battery power to the rated 6V of the servos being used, a low current switch mode power supply to power the Raspberry pi annd Teensy, breakouts to 16 Servos and connections to allow for power and communication between a Teensy 3.5/3.6 and a Raspberry pi 3B+.
Communications between the raspberry pi and the Teensy is done through USB HID at ~500Hz. This allows for the kinematics to be calculates near real time on the Raspberry Pi and sent down stream to the Teensy, The Teensy was used to drive all 16 servos using individual hardware PWM channels, as well as collect IMU and current data from the sensors and reply to the raspberry pi with this information. This information is then used to update the walking gait and kinematics engine.
Despite the validity of the motherboard, a few small issues arose and a revision 2 was done, eliminating a number of sensors and replacing the Teensy. These will be spoken about in motherboard Rev 2.