Full Stack
A stack of Goats, Electronics, Software? How about all three
Full Stack refers to a web developer who codes both client side and server side software. Add many more genre's of programming as well as in depth Electrical and mechanical engineering and you've got the ingredients for a Roboticist. OshRobot aims to make understanding all of the intricacies of modern robotics available and attainable via open-source software and hardware design. Robotics are the future, lets democratize the industry with open-source! Check out the
oshRobot Wiki for code, schematics, and CAD.
Controlling your robot
It all starts at the Pi (or Odroid if you can't buy a Pi, because of the global supply chain issues).
This month in software, we're refactoring the communication protocols between the Pi & Teensy Arduino's. Keeping latency minimal is a little tricky on the Pi, but itw worth it for the price, size, and power usage. By running two kinematics engines on different cores, we're able to generate new location data for the robot each milisecond. Subsequent path planning is run on a third core, and then sent out to the Teensies by a program running on a 4th. It's all coded in Python to make it easy to maintain and use.
To make for a robust system, the Communications Teensy polls the Pi once a second if it doesn't have any current location data in its buffers. When the Pi hears the request for location data, it sends out location data once every half a milisecond. This fills the Communications Teensy's buffer of 20 locations, at which point the Teensy indicates to the Pi its buffer is full, resulting in the pi sending location data once ever 0.999ms. This method keeps the Teensy's buffers full, while minimizing any latency.
Connecting the dots
The Pi & Teensies talk via board-to-board serial communication headers. Blue ended cables then carry 30khz step data down to the stepper drivers. These 6 dedicated boxes each control one stepper motor, positioning it to within 1/6400'th of a rotation. 16awg double insulated wires carry 24 power down to the stepper drivers, and 5v power up to the Pi & Teensie Boards.
As this stack of electronics is lowered into the Apollo frame, Limit Switch cables are connected to the Communications Teensy Board, Stepper Motor Cables are connected to the stepper drivers, Ethernet and USB break outs are connected to the Pi, Fan, E-Stop, and main 24v DC in cables are connected to the 24v Power Supply Board. Once the motion control electronics are inside Apollo, it is ready to go to work.
The Circuit Boards
Stacked Up
Even Higher
This time in Jungle Mechanicry
Replacing a Head Gasket
This 1.3 Liter Mitsubishi Lancer has been through a lot. We found the head bolts to have come miss-torqued after a loud Bang and subsequent decline in the engines interest in running.