FloatingFace
PublicLoading 3D model… large boards can take a moment.
FloatingFace is a roboter, mounted by 3mm paracord ropes at three points arranged in a triangle which achieves movement withing and under these 3 mounting points by tensioning or loosening each these ropes.
Key features
- 3-points mount
- cheeseplate with additional servo for mechanization
- automatic calibration
- custom driver PCB with three TMC2209 slots
- redundant visual and magnetic travel distance encoder
- AS5600 magnetic encoders
- MPU5060
- possibility for rope pulley if higher loads applied
I built this project as proof-of-concept system for a 3-point-mounted, portable cable roboter with an universal extensions interface.
PCB
Floaty has a custom-designed driver developer board for three TMC2209 drivers. Look at the design!
Thats all the layers overlapped...
...and thats the front design. There is nothing on the back
Schematic
The overview schematic implementing a TCA9548 for the I2C controll of the three AS5600 sensors looks like this:
and that is the schematic for the delta_drive v1.1: https://github.com/mrk-fox/FloatingFace/blob/main/pictures/delta_drive_v1.1_schematic.png
Math
The basics were worked out with simple linear algebra, which are explained in this video together with the calibration process:
The math behind "Floaty", the cable roboter
Further, to make the implementation easier, all the calculation were modelled in Simulink:
The movement algorithm itself works on command through these steps:
- Validate coordinates
- Calculate $\Delta(g_n)$ (individual motor run vectors)
- Calculate time-based movement coefficients $c(\Delta(g_n))$
- Move in accordance to coefficitens slowly until all motor sensors register rising edge on light sensor
- Re-calculate path
- Move fast using PCNT counters
- Slow down 2 guide sensor revolutions before movement finish
- Proceed until finish on magnetic encoders feedback
- Calibrate angles on finish
For angle calibration, Floaty uses the MP5060 sensor which gives an angle relative to gravity and the direction of the orthogonal of the angled face of the sensor. With that data an iterative funciton is started ajusting one motor step at a time until an angle less than 10 degrees is reached.
Assembly
The assembly is currently a prediciton of the possible steps. I doubt, that anyone will build this before me, but here we go:
- Begin with the level one baseplate assemble the motors with the line drums and place them onto the baseplate
- Mount the Servo and the MCU to the motor mount and baseplate
- Assemble the 20x20 frame hexagon and mount the baseplate to the hexagon together with the line guides/sensing units
- Assemble the secon level (electronics) and connect all electronics! (see below)
- Fix everything together with the threaded rods and the spacers
- Add the cheeseplate
- Flash the firmware
Cables
As the size of the robot is constrainted to certain limits, cable routing is crutial to ensure a safe and reliable operation. The following rules apply:
- Zip-ties packaging the cable strands shoukd be placed every 2cm (0.787in)
- Every cable leading to the line measurment units/motos should be placed in the through-leading holes of the appropriate third of the robot
- A safe-zone of 1cm (0.393in) around the perimeter of the cutout of the basement plate for the line rolls should be cable-free to ensure a tangle-free operation The mounting is done through running zip ties around the vertical spacers for the levels and the cable holes on the baseplates themselves.
Zine Page
Credit
I thank this project to...
... KiCad
... HackClub Fallout
... Autodesk Inventor
... BenjaminW and Serj Minin for the models
License
This hardware project is licensed under the CERN Open Hardware Licence v2 - Strongly Reciprocal (CERN-OHL-S).
See the LICENSE file for details, or visit https://ohwr.org/cern_ohl_s_v2.
No comments yet. Be the first to ask about this board.