Рет қаралды 1,506
GitHub Repository: github.com/Nin...
This project, developed over the summer of 2024 for my university's Electrical Engineering department, features a 3D-printed robot designed and created by me for use in an Applied Robotics class. The robot's mechanical design was crafted using Autodesk Fusion, and it is programmed in Python on a Raspberry Pi 5 running Armbian OS (Ubuntu 22.04 LTS) and ROS 2 Humble Hawksbill.
** Update: Ramp logic is now implemented for link 1 and link 2 (buttons A, B, X and Y) **
Control System:
- Joystick: 8BitDo Ultimate C
- Mapped Controls:
Analog Stick (Axis 0, 1): Controls base rotation. Values from -32767 to 32767 are converted to degrees, then the angle difference is calculated to determine clockwise or counterclockwise movement.
Analog Stick (Axis 2, 3): Controls wrist rotation using the same conversion method as the base rotation.
Button LB: Closes the gripper. The position of the gripper is incremented by 480 units per press.
Button RB: Opens the gripper. The position of the gripper is decremented y 480 units per press.
Button A: Moves link 1 forward. The ramp logic gradually and quadratically increases the position of link 1.
Button B: Moves link 1 backward. The ramp logic gradually and quadratically decreases the position of link 1.
Button X: Moves link 2 forward. Gradually and quadratically increases the position of link 2 using ramp logic.
Button Y: Moves link 2 backward. Gradually and quadratically decreases the position of link 2 using ramp logic.
Mechanical Design:
- End Effector: Gripper secured with two racks and a pinion gear connected to the last servo (servo 4).
Wiring Schematics:
The Raspberry Pi 5 connects to a level shifter via TTL serial (Tx and Rx). The level shifter safely interfaces with the Raspberry Pi 5 with the Pololu Micro Maestro 6-channel servo controller by adjusting voltage levels. The system operates five servos (servo 0 to servo 4) powered by a 6V power supply.