Autonomous Mobility Scooter
Transcript of Autonomous Mobility Scooter
AUTONOMOUS MOBILITY SCOOTERIMPLEMENTING PATH FINDING, IMPLEMENTING VEHICLE CONTROL, AND
RESEARCHING SLAM.
CONTENTS• INTRODUCTION• PROJECT GOAL• PATHFINDING• SIMULTANEOUS LOCALISATION AND MAPPING• VEHICLE CONTROL• FUTURE WORK• SUMMARY• QUESTIONS
INTRODUCTION• COVENTRY UNIVERSITY – DEPARTMENT OF INTELLIGENT TRANSPORT
SYSTEMS• PREVIOUS WORK
• RESEARCH INTO DIJKSTRA'S PATHFINDING ALGORITHM• RESEARCH INTO A* PATHFINDING ALGORITHM• RESEARCH INTO AUTONOMOUS FORK LIFT • NO PRACTICALLY FOCUSSED WORK
PROJECT GOALS• PRACTICAL APPLICATION OF PREVIOUS WORK• START OF CONCENTRATED EFFORT TOWARDS A COMPLETE PRACTICAL
VEHICLE• AUTONOMOUS MOBILITY SCOOTER• APPLIED PATHFINDING• RESEARCH INTO SIMULTANEOUS LOCALISATION AND MAPPING• RESEARCH INTO COLLISION AVOIDANCE• APPLIED VEHICLE CONTROL
PATHFINDING – SOFTWARE • DIJKSTRA USED DUE TO INCLUSION IN MATLAB BIOINFORMATICS TOOLBOX• TWO APPROACHES USED
• ROAD MAP PATHFINDING• LOCAL TEST COURSE PATHFINDING AND CREATION
PATHFINDING – HARDWARE
• PATHFINDING ITSELF REQUIRES NO HARDWARE
• GPS TO FIND CURRENT LOCATION• AHRS TO FIND POSE
ATTITUDE AND HEADING REFERENCE SYSTEM CODEIF PACKET.ADDRESS == 92 && ~EXIST('GOTGYRO','VAR')
DISP('GETTING GYROSCOPE DATA');
DATA.GYRO.X = DOUBLE(SWAPBYTES(TYPECAST((UINT8(PACKET.DATA(1:2))),'INT16')))*0.0610352;
DATA.GYRO.Y = DOUBLE(SWAPBYTES(TYPECAST((UINT8(PACKET.DATA(3:4))),'INT16')))*0.0610352;
DATA.GYRO.Z = DOUBLE(SWAPBYTES(TYPECAST((UINT8(PACKET.DATA(5:6))),'INT16')))*0.0610352;
GOTGYRO = 1;
END
SIMULTANEOUS LOCALISATION AND MAPPING• FILLS IN MISSING AND ALTERED MAP DATA• PROVIDES LOCALISATION WHEN NO GPS LOCATION IS AVAILABLE• CAN BE USED FOR COLLISION AVOIDANCE• USEFUL FOR A MOBILITY SCOOTER
• FREQUENTLY INDOORS WITHOUT MAP DATA• NEEDS TO RECOGNISE FOOTPATH RAMPS
VEHICLE CONTROL• SHOPRIDER WISPA MOBILITY SCOOTER• USE NI DAQ FOR SIGNAL OUTPUT• OP-AMP FOR OUTPUTTING CORRECT SIGNAL LEVELS• BASIC GEARED 2NM 24V DC MOTOR FOR STEERING
VEHICLE MOVEMENT CODES = DAQ.CREATESESSION('NI');
% ADD OUTPUT CHANNELS
ADDANALOGOUTPUTCHANNEL(S,'DEV3',0,'VOLTAGE'); %STEERING
ADDANALOGOUTPUTCHANNEL(S,'DEV3',1,'VOLTAGE'); %LINEAR MOVEMENT
% SET VEHICLE IN MOTION
OUTPUTSINGLESCAN(S,[STEERINGV LINEARV]);
% ALLOW INCREMENTS IN DISTANCE AS LOW AS 0.1M
DISTANCE10 = DISTANCE*10;
FOR I=1:DISTANCE10
PAUSE(0.1); %HOLD FOR 0.1M
END
FUTURE WORK
• IMPLEMENT SLAM• PSEUDO-3D SLAM USING ANGLED 2D LIDAR• IMPLEMENT COLLISION DETECTION• THOROUGHLY TEST VEHICLE CONTROL• IMPROVE EFFICIENCY• IMPROVE INTEGRATION
SUMMARY
• GRADUATION PROJECT AT COVENTRY UNIVERSITY• FIRST STAGE IN OVERARCHING PROJECT OF MAKING AN AUTONOMOUS
MOBILITY SCOOTER• EXTENSIVE PATHFINDING WORK DONE• EXTENSIVE HARDWARE INTEGRATION WORK• RESEARCH INTO SLAM, DESPITE IMPLEMENTATION BEING OUTSIDE THE
PURVIEW OF THIS PROJECT• VEHICLE CONTROL CODED
ANY QUESTIONS?