Difference between revisions of "Holonomic Robotic Platform"
Joelmartin (talk | contribs) |
Joelmartin (talk | contribs) |
||
Line 2: | Line 2: | ||
[[File:Holonomic Frame with Wheels.gif|120px|thumb|right|See Image file for Source]] | [[File:Holonomic Frame with Wheels.gif|120px|thumb|right|See Image file for Source]] | ||
A holonomic system is when the number of controllable degrees of freedom equals the total degrees of freedom. | A holonomic system is when the number of controllable degrees of freedom equals the total degrees of freedom. | ||
− | + | [https://www.youtube.com/watch?v=soudy8fKygk Video of Holonomic Car] | |
{{clear}} | {{clear}} | ||
==Mechanical== | ==Mechanical== |
Revision as of 16:39, 2 January 2020
Engineering Project Data
A holonomic system is when the number of controllable degrees of freedom equals the total degrees of freedom. Video of Holonomic Car
Mechanical
Omni Wheels and Positioning
- Omni-wheels are often used to allow for movement on the horizontal axis on a drivetrain, as well as forward and backward movement.
History
US patent 1305535, J. Grabowiecki, "Vehicle wheel", issued 1919-06-03 A variant of the wheel was patented by Josef F. Blumrich in 1972. US patent 3789947, Josef F. Blumrich, "Omnidirectional wheel", issued 1974-02-05
Drive Motors with Gearboxes
Hardware Case for Raspberry PI 4
Electronic/Electrical
Raspberry PI4 4 Gig Ram
Pi Setup
- Raspbian System Image was downloaded from RaspberryPi.org to development laptop.
- Belana Etcher Disk Flasher was downloaded and installed on laptop.
- 64 Gigabyte Micro SD Card was placed in San Disk adapter and mounted on laptop.
- Micro SD card was flashed with Raspbian OS, then removed from Laptop and inserted in to PI 4.
- HDMI Video 4K Monitor connected to PI via Mini-HDMI adapter, as well as USB Keyboard and Mouse connected to PI 4.
- PI 4 was powered on, and OS Install and Finalization was initiated.
- PI Wi-Fi connection to Router was verified, with static IP address assigned to PI 4.
- PI 4 initiated software updates via internet connect.
- VNC Server was setup on PI 4 to connect to Laptop via Port:5900.
- VSFTPD was installed on PI 4 to handle file transfers between Laptop and PI 4 using FTP client on Port:21.
- PI was Powered Down, and USB and video cable removed from PI,
- PI was powered up as a stand alone device.
- VNC Wi-Fi connection was initiated between Laptop and PI successfully.
- Development now takes place across Network VNC connection, with PI as a Standalone Computing Device.
Raspberry PI Full Function Servo Motor HAT Controller
- Full function Robot Expansion Board (Support Stepper / Motor / Servo) for Raspberry Pi.
- Stepper motors are great for (semi-)precise control, perfect for many robot and CNC projects.
- HAT supports up to 2 stepper motors. The python library works identically for bi-polar and uni-polar motors
- For a complete in-depth explanation of using this HAT see the Raspberry PI Wiki: Robot Expansion Board.
HDMI Video Adapter Cable
Micro SD 64 Gig Memory Card for PI Operating System, and Hard Drive
Software
Raspbian Operating System
Balena Flash Prom Programmer
Windows Python for Laptop Host Development
Spyder Development Environment
Spyder is a powerful scientific environment written in Python, for Python, and designed by and for scientists, engineers and data analysts, featuring the following options:
- Editor
- IPython Console
- Variable Explorer
- Profiler
- Debugger
- Help
Code and Mathematics
Code to Facilitate Development
To help easy development of specific modules in the Holonomic Robot, a communications interface is implemented between the Robot(Raspberry PI 4 Server) and a Laptop Development workstation(HP Client). The protocol is built on TCP Tx-Rx Exchange between the two devices. The code modules are Python running at both ends. The Robot starts out as a purely slaved device taking commands from the laptop. Motor control modules manipulating the GPIO interface run on the Robot but are commanded by the laptop. As the motor control is refined and routinized along with the growth of intrinsic autonomy, the code is transitioned from the Laptop to the Robot. Code is primarily developed in Python 3.7.
Laptop Code for Robot/Laptop Base Communication
import socket
message_from_server = ''
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(('192.168.1.43', 13000))
while True:
message = ''
message = input('Input lowercase sentence:')
client.send(message.encode())
message_from_server = (client.recv(4096)).decode()
print (message_from_server)
if message == "Stop the Server" : break
client.close()
print ("You ended the session")
Robot Code for Robot/Laptop Base Communication
import socket
serv = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serv.bind(('192.168.1.43',13000))
serv.listen(5)
while True:
conn, addr = serv.accept()
message_from_client = ''
while True:
data = conn.recv(4096)
if not data: break
message_from_client = data.decode()
print ("Tx:" + message_from_client)
message = "RxAck:" + message_from_client
conn.send(message.encode())
conn.close()
if message_from_client == "Stop the Server" : break
print ('Communication protocols termintated at Server by Client')