Xiaoli: A Robotic Arm for Table Tennis Grasping

Published:

Xiaoli has three functions including remote control movement, robotic arm control and autonomous grasping.

fig1

Hardware

ModulesInformation
ControllerSTM32
Sensorov2640
HRI interfacePS2 handle, Wireless transceiver
Power source4S battery, Voltage Control System
ActuatorDC motor, 3-joints robotic arm

The following figure shows the relationship between modules. Yellow represents power module, black represents actuator module, and red represents core circuit.

fig2

Sofeware

ItermsInformation
Debugging toolsPC, Oscilloscope, Function generator
PlatformsWIN10, KEIL, Arduino, Spyder

remote control movement

This function involves data collection and analysis of handle input (digital quantity), calculation of robot angular and linear velocities, and motor output.

ItemsInformation
Handle rocker digital quantity$X=-128-127$, $Y=-128-127$
Output speed$w=X(angular velocity)$, $v=Y(linear velocity)$
Motor output$Motor1 PWM=v-w$, $Motor2 PWM=v+w$

fig3

robotic arm control

Using a robotic arm with 3 joints that are in the same plane, but the pan tilt can rotate. Model the robot as following:

fig4

Three joints are simplified as spherical coordinate system vectors of $R0$, $R1$, and $R2$ in space. The joint points are simplified as $J0$, $J1$, and $J2$, as well. The coordinate origin is the joint point where the base of the robotic arm is located.

fig5

autonomous grasping

The recognized object is a table tennis ball, and the recognition results are the position and size of the table tennis ball in the field of view (considered as distance).

fig6

The key parameters and results are as follows:

ItemsInformation
Image size$160\times 120$
Threshold in H channel$10-60$
Filtering methodconvolution($9\times 9$)
fps$6.6$