- 96Boards RB3 CE Board by Qualcomm
- 5v 10A Power Supply
- LewanSoul 6DOF Robotic Arm Kit
- PCA9685 Based Servo Driver
- An I2C voltage Level shifter is required, either on of the following can be used:
- Decent USB Webcam
- Recommended: Logitech C922x Pro Stream Webcam
- Double Sided Tape to attach the Webcam:
- Recommended: 3M Acrylic Foam Tape
- HID Peripherals connected to the RB3
- HDMI Monitor
- USB Keyboard and Mouse
- Active Internet connection over Ethernet LAN Cable
- Follow the official Debian installation guide for the RB3
- After this step all the development will be done on the RB3 itself, there is no requirement for a PC.
- Once booted into debian clone this repository:
git clone https://github.com/96boards-projects/RB3-RoboticArm
- Run the installation kit that install all dependencies:
cd RB3-RoboticArm
bash install.sh
Although the assembly process highly depends on you particular model of robotic arm, but if you are using the LewanSoul 6DOF Robotic Arm Kit, here is their official tutorial that you can follow:
Once you have everything assembled, temporarily disassemble the Robotic Arm from all the visible servo's axel. Your arm should now be in 6 pieces. We will put these pieces back together once we have all the servos set to their correct angles.
Note: align the Black wire to the ground pin on the PCA board
Servo Number | PCA9685 PWM Channel |
---|---|
Servo 1 (Base) | Channel 0 |
Servo 2 (Shoulder) | Channel 1 |
Servo 3 (Elbow) | Channel 2 |
Servo 4 (Wrist Up-Down) | Channel 3 |
Servo 5 (Wrist Sideways) | Channel 4 |
Servo 6 (Gripper) | Channel 5 |
- Connect the 5v 10A Power Supply to the external power input on the PCA9685 Board
PCA9685 | Level Shifter | RB3 |
---|---|---|
VCC | 5v 'VCC' 1v8 | 1v8 |
GND | GND | GND |
SDA | 5v 'SDA' 1v8 | I2C0_SDA / Physical Pin 17 |
SCL | 5v 'SCL' 1v8 | I2C0_SCL / Physical Pin 15 |
The webcam needs to be attached to the gripper servo using a double sided tape with the camera lense facing down. Use these images as visual aid to proceed:
- Run the code, this will cause the Servos to set in the correct orientation:
sudo bash launch.sh gui
- Wait for the servos to twitch and set to required position.
- Now Re-Assemble the arm with the correct angles as follows, also make sure to keep the code running and the servos powered on throughout the process:
- Base at 90º
- Shoulder at 90º
- Elbow at 90º
- Wrist Up-Down at 30º
- Wrist sideways at 30º
- Gripper at 0º or closed
- At the end you arm should look like this:
- Run the code:
sudo bash launch voice
- Make sure the object(s) are in the opencv view window.
- Wait for the text console say:
Say Something
- Follow by replying "Hey July"
- If your voice is replied correctly, you should see
What do you want?
appear on the text console - Follow up by saying: "Pick up the [color] [shape]"
- example: Pickup the Yellow Rectangle
- The Robotic Arm should proceed to center itself and pickup the object, wait for a bit, and drop it.
- Run the code:
sudo bash launch gui
- Make sure the object(s) are in the opencv view window.
- Wait for the GUI text box to come up.
- Follow up by typing: "Pick up the [color] [shape]"
- example: Pickup the Yellow Rectangle
- Click submit button.
- The Robotic Arm should proceed to center itself and pickup the object, wait for a bit, and drop it.