I finally received the rest of the components for the motherboard ! took me some hours to populate everything (QFN packages take a bit of time to solder when you are not used to 😀 )The smoke test passed for the Power supplies (7.6V, 5V) but I still have to test the battery charger… which gives me a bit of apprehensions because I don’t want to fry my battery
I will definitely have to make an improved version in the next few weeks to fix the following issues:
- Lack of thermal exchange for the PSU controller and MOSFET
- Change from 10DOF IMU board to a 9DOF IMU (LSM9DS1TR)
- Separate I2C bus for the Eyes (they use too much bandwidth forth rest of the sensors)
- Overall Routing & Layout improvements
- More detailled SilkScreen
But first I have to finish testing all the features and components to see if further modifications are required. But for now I’m pretty happy with the result, no big trouble. I did some thermal test and the PSU is around 40°C in idle mode without cooling and 35°C when the fan is active, even so the thermal dissipation of the component in not ideal and the fan is powered at 3V3 instead of 5V.
Motherboard in progress
As mentioned, I still have the rest of the features to test (around 15: Telemeter, Bluetooth, Charger, Raspberry Pi communication, Servos, etc…) so stay tune 🙂
The mechanical design is finished since few weeks, but I have been waiting some sample of the leg to check the tolerances, quality and color. This sample allowed to check the passage of the cable in the Coxa, the Tibia Cap (anti-slippery pad), servo mounting, etc..
I’m glad I ask I did that before the complete manufacturing because I found several issues. The passage for the cable needed to be deeper to protect it, the Pad was too small to hold in place properly and the color did not satisfied me totally… I’m still waiting for some more sample to compare and chose the final color !
Hopefully the samples will arrive soon, so I can order all the parts to assemble Animabot !
It’s been few months now since I started the design and it is approaching the end \o/. The main body and legs are finally done, but I still have to do a final check of tolerances, clearances, cabling , mounting, etc.. before sending the parts for productions. As mentioned earlier, the design is very close to Rev2, however, the internal structure has been improved to be more rigid and more reliable. On Rev2, I had too much flexibility between parts and torsion on the body (due to the 5 parts body assembly) which basically ruined everything… The legs axles have also been redesigned or better performance and the legs will be equipped with a separate End-Cap (ground contact) with a rubber part to increase adherence.
So, hopefully I overcome all these issues with this version 😀
The ear design is also done and I think it gives a pretty nice look to the robot ! It will gives Animabot much more expression capabilities and at the end it doesn’t look to organic and not too mechanic either which I find to be a good compromise. In any case, it is difficult to make a functional machine looking organic when you have to install real motors, joints, PCBs, cables, etc..
I still have the dock to do, So this will be the next task…
So I received the Motherboard and started populating it 🙂 All components are not yet soldered because I want to test the board step by step, starting with the MCU and the I2C bus (where all the sensors are connected).
As of now, the following is working:
- Flashing-Debugging the MCU
- Flexible OLED via SPI
- 10DOF IMU via I2C
- Eyes via I2C
- Gesture Module
I still have some trouble with the RTOS and the IMU, after some time the tasks start to be delayed and the IMU is not responding anymore… but that will be for later, I want to finish the Body design and send it for printing first ! the next step is to mount the PSU and the Charger.
But now that I have the Eyes working I started implementing some expressions 😉 not so bad for a first try !
The past weeks have been dedicated to the Head design which is coming along nicely 🙂 The head is slightly smaller than the actual version but contains more devices:
- Gesture sensor on top
- 2x OLED displays for the eyes
- 5Mpx Micro Camera
- 2x Servos for Ears
- 1x Servo for Head pitch
The head is divided in 2 parts in order to allow me to assemble the devices inside. Both part are screwed together and for the first time I will be using threaded inserts in order to have proper mounting 😉
The ears design will be done later, I want to have the complete robot designed to see how they fit with the rest of the body.
I already order some samples of the head to see the print quality and tolerances, I’m glad I did it because I already found several errors I have to correct for the final version. I could also do a test fit for the parts and it looks pretty fine as you can see:
The color is not the definitive one and I’m not sure about the Display color… but it gives a pretty good idea of the future look 😉
So, while I have been silent on the blog, I have been working hard on the design. Basically, Upper and Lower Bodies are done, only some few tweaks here and there to make all fit together. As you can see in the renderings below, the body shape is mostly the same but I fixed many issues from the previous body. These issues mostly came from the FFM 3D printing process (lack of precision and build volume and my beginner level in 3D printing at that time). The new robot will be printed with SLA process allowing more complex shape and better precision than before.
The Lower body contains the battery, Motherboard and Control Interface. The upper body is composed of 2 parts which allows me much easier assembly and better reliability. The upper body will be constantly screwed to its lower counterparts and the Upper Cover (where most of the devices are placed) will be screwed on the Upper body. As you can imagine, this will allow me to access all the internal part of the robot without removing the legs (which is currently a huge problem on the Rev2), by simply unscrewing the Top Cover. The Head, Rpi, servos are directly mounted on the Top Cover, and connected by only 3 cables to the Motherboard for easy assembly/access.
The Kinematic to lift the Rpi will be a nice feature allowing me to program and access it by the push of a button 😀 The tolerances are quite tight so I hope it will work as expected… This time I also added a small switch on top with RGB led in order to have some feedback/control over the robot (mode selection, battery level, etc..)
Lower Body – topview
Lower Body – bottomview
Upper Cover – Hood opened
Upper Body – Hood closed
As mentioned, now Animabot is only composed of 1 motherboard instead of several which help a lot on 2 points: performance and compactness.
The PCB is divided in 4 main areas:
- Front: Power Supplies (7.4V – 5V – 3.3V)
- Middle: IMU + Cortex M4 + Interface (Bluetooth, buttons)
- Rear: Battery Charger
- Edges: Connectors
The Power supply is based on a LM25119 from Texas Instrument and capable of delivering 2x 10A at 7.4V, that’s over 140W !!!
Of course, to dissipate all this power you need a proper cooling system… this is why the PCB is equipped with a “wind tunnel” cooling directly the PSU and the Charger
The charger evolved as well and is now capable of Telemetry, I will be able to supervise the input and output energy of the Battery. The charger also takes care of the standard protections (over-charge, battery temperature, under-voltage, etc..) and all the monitoring/configuration is done via I2C ! I also over-dimensioned most of the components like the transistors to be sure to be on the safe side.
I also removed the ATX Raspi from the robot and the Raspberry Pi will be controlled by the CortexM4 directly for powering ON & OFF. To avoid the last noise issue on the speakers, I added a small isolated DC-DC converter for the audio amplifier.
As mentioned, all the sensors are now connected together on the same I2C bus, which should improve and simplify the data acquisition (one function to gather all sensors data). The IR telemeter as well, I use a small I2C ADC converter to do the trick.
Board dimensions [LxWxT]: 177mm x 84mm x 1mm
Motherboard – top
Motherboard – bottom
So it’s been a while since I posted something here… I have been really busy on some other projects which made the progress on Anima very difficult… I still continued the development on the current version but the more I worked on it, the more I was thinking that it could be greatly improved !
The version 1 and 2 have already been done, however I’m not completely satisfied with the current version… The body cut in several parts due to print size limitation kind of destroy the overall aesthetic and weaken the body. Then the concept was oriented towards a exploration/security robot and I figured it would be better to design it more like a companion instead !
This will be the third and last version of this robot… I started this project quite some time ago (in 2001) and I think it is time to at least finish one version of it
The concept is still the same and most of the exterior design will remain similar to the Rev2. However, the hardware and mechanical will greatly improve !
The Hardware design is almost finished and the Mechanical design is approximately 60% completed ! so stay tuned for updates !
Improvements from Rev2:
• SLA 3D printed body
• Overall body design improved
• 4 Layers Single Motherboard for better performance and size reduction
• All sensors are I2C and on the same bus
• Improved battery charger
• Improved Power supply
• Efficient active cooling
• Improved communication between STM32 and Rpi
• 2 axis Head (new feature !)
• 2 Oled display for the Eyes (new feature !)
• 2 moving ears (new feature !)
• Gesture sensor on top the the head for better interactions (new feature !)
• Docking station capable (new feature !)
• Flexible Oled display for robot status (new feature !)
• Hidden Raspberry Pi with moving hood (new feature !)
Components & Characteristics:
• Energy: Li-Ion 11.1V 7800mAh
• Power: Custom 140W PSU based on LM25119PSQ
• Charger: Custom, based on LTC4015
• Brains: STM32F415VGT6 + Raspberry Pi 3 B+
• OS: RTOS + Raspian
• Programming Language: C, Python
• Communication: 2x Bluetooth + WiFi
• Vision: 5Mpx Micro Camera
– 2x 0.49″ OLED for the Eyes
– 1x 1.81″ Flexible OLED for robot status
– Legs: 18x Herkulex DRS-0101
– Hood: 1x KST DS215MG
– Head: 2x KST DS215MG
– Ears: 2x Hitec HS-40
• Sound: 2x 1W stereo speakers + buzzer
– Capacitive touch switch with RGB led
– Gesture sensor
• Control: Autonomous and Remote-controlled
– 1x IMU 10-DOF
– 2x LM75B temperature monitor
– 1x IR telemeter(GP2Y0A21)
– 1x Magnetic switch for charging dock
• Target environment: indoor/outdoor
• Size [LxWxH]: 28cm x 36cm x 16cm
• Weight: 2,5kg