UBC Thunderbots

September 2018 -

Overview

Mechanical sub-team lead
Designed kicker and chipper with variable dimensions
Wrote MATLAB script with CAD variable inputs to simulate kicker and chipper physics
Designed componenets to integrate with electrical systems
Thunderbots Robots for Robocup

UBC Thunderbots Robot

UBC Thunderbots is an engineering student design team that designs and creates competitive robots to compete in the Small Size League of the international Robocup Federation. In 2019 we were the champions of the Robocup World Cup Competition in Sidney, Australia. This year we are redesigning the entire robot to add new features and be more optimized. As I lead the mechanical subteam I also helped design the chipper and kicker components of the new fleet of robots.

Chipper and Kicker Design Process

I made this simplified prototype for the kicker and chipper layout for the Thunderbot’s soccer playing robot. The kicker is mounted on a Geneva drive for multiple shooting angles and the chipper is mounted below. This prototype was to generate ideas for saving space.

Chipper Kicker Prototype Model
Chipper Kicker Prototype Model Driven with Variables

This is a more specific prototype I made of a chipper mechanism based off of what was learned from the above prototype. This one was animated to understand the mechanics and relative dimensions of the movement. I also wrote a MATLAB script that takes the inputs of the dimensions of the chipper and the force from the solenoid, and calculated the output force the chipper makes on the ball. The design and script are to be used together to determine a specific design for the chipper.

MATLAB Code

  				
function [forces] = ChipSimpTransfer(density,soltravel,thickness,armwidth,platewidth,Blength,F,H,angle)
	%%Purpose: Input parameters and Force and output Force of Chip
	% Input:    density: density of material
	%           soltravel: horizontal distance of travel through solenoid
	%           thickness: thickness of arms
	%           armwidth: width of arms
	%           platewidth: width of chipper plate
	%           Blength: length of horizontal arm of chipper
	%           F: Input Force from solenoid
	%           H: Height of center of solenoid from pinned point
	%           angle: angle of chip plate from the ground (45° probably)
	%Output:    [forceoutGp forceoutGs; forceoutJp forceoutJs]
	%               forceoutGp: force at point G assuming thin plate approximation for MMOI
	%               forceoutGs: force at point G assuming slender rod approximation for MMOI
	%               forceoutJp: force at point J assuming thin plate approximation for MMOI
	%               forceoutJs: force at point J assuming slender rod approximation for MMOI


	%%Component Variable Setup
	%Unit conversions for ease of input
	theta=angle*pi/180;
	soltravel=soltravel/1000;a
	thickness=thickness/1000;
	armwidth=armwidth/1000;
	platewidth=platewidth/1000;
	Blength=Blength/1000;
	H=H/1000;
	%Constraints for C
	dimA=[(sqrt(soltravel^2+H^2)+armwidth) armwidth thickness];
	dimB=[(Blength) armwidth thickness];
	dimC=[((0.013+armwidth/2)/sin(theta)) (dimB(2)) (platewidth)];
	%Calculate Masses of each section of the chipper
	ma= density*dimA(1)*dimA(2)*dimA(3);
	mb= density*dimB(1)*dimB(2)*dimB(3); 
	mc= density*dimC(1)*dimC(2)*dimC(3);

	%%MMOI Calculations
	%MMOI if Thin Plate Approx
	Iap= 2*(1/12)*ma*(dimA(1)^2+dimA(2)^2)+ma*(dimA(1)^2/4);
	Ibp= 2*(1/12)*mb*((dimB(1)+armwidth)^2+dimB(2)^2)+mb*(dimB(1)^2/4);
	Icp= mc*((1/12)*dimC(1)^2+(dimB(1)+dimC(1)*cos(theta))^2+(dimC(1)*sin(theta))^2); %ThinPlate
	%MMOI if Slender Rod Approx
	Ias= 2*ma*(1/3)*dimA(1)^2;
	Ibs= 2*ma*(1/3)*(dimB(1)+armwidth)^2;
	Ics= mc*((1/12)*dimC(1)^2+(dimB(1)+dimC(1)*cos(theta))^2+(dimC(1)*sin(theta))^2);
	%MMOI about pinned point O
	Iop=Iap+Ibp+Icp; %Thin Plate
	Ios=Ias+Ibs+Ics; %Slender Rod

	%%Angular Acceleration of Chipper
	alphap=(F*H)/(Iop);%Thin Plate
	alphas=(F*H)/(Ios);%Slender Rod

	%%Acceleration of J and G
	%J is point halfway down bar C at 45∫
	%G is point at bottom point of bar C at 45∫
	aGp= alphap*[dimC(1)*sin(theta);dimB(1)+dimC(1)*cos(theta)]; %Thin Plate
	aGs= alphas*[dimC(1)*sin(theta);dimB(1)+dimC(1)*cos(theta)]; %Slender Rod
	aJp= alphap*[dimC(1)/2*sin(theta);dimB(1)+dimC(1)/2*cos(theta)]; %Thin Plate
	aJs= alphas*[dimC(1)/2*sin(theta);dimB(1)+dimC(1)/2*cos(theta)]; %Slender Rod

	%%Force Calculation at chip location
	disp('forces=');
	disp('forceoutGp forceoutGs');
	disp('forceoutJp forceoutJs');
	forces=[norm(aGp)*(ma+mb+mc) norm(aGs)*(ma+mb+mc); norm(aJp)*(ma+mb+mc) norm(aJs)*(ma+mb+mc)];
	% forceoutGp=norm(aGp)*(ma+mb+mc);
	% forceoutGs=norm(aGs)*(ma+mb+mc);
	% forceoutJp=norm(aJp)*(ma+mb+mc);
	% forceoutJs=norm(aJs)*(ma+mb+mc);