SLAM A 04
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Title of Series | ||
Number of Parts | 76 | |
Author | ||
License | CC Attribution - NonCommercial - NoDerivatives 3.0 Germany: You are free to use, copy, distribute and transmit the work or content in unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor. | |
Identifiers | 10.5446/49052 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | |
Genre |
SLAM and path planning5 / 76
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
00:00
Function (mathematics)CodeImplementationAlpha (investment)ThetafunktionMathematicsLoop (music)Clique-widthRobotFilter <Informatik>Well-formed formulaCodeEquations of motionBit rateData conversionComputer fileRoboticsCASE <Informatik>Functional (mathematics)Process (computing)MetreOpen setEndliche ModelltheorieTrailDivisorCurveXML
00:42
ThetafunktionCodeImplementationAlpha (investment)Web pageData conversionRobotClique-widthLoop (music)Filter <Informatik>Process (computing)Functional (mathematics)Computer fileMetreClique-widthOpen setData conversionTrailPosition operatorDivisorElectronic mailing listField (computer science)AdditionLetterpress printingNeuroinformatikPlotterFocus (optics)XMLComputer animation
01:22
CodeImplementationAlpha (investment)ThetafunktionDigital filterWeb pageData conversionRobotClique-widthLoop (music)Filter <Informatik>AdditionComputer programmingOrientation (vector space)Position operatorElectronic mailing listPlotterXMLComputer animation
01:39
InformationPlot (narrative)Alpha (investment)Loop (music)Filter <Informatik>Computer programmingQuicksortFunctional (mathematics)XMLComputer animation
01:46
Plot (narrative)Alpha (investment)Loop (music)Filter <Informatik>Electronic mailing listPRINCE2Computer programmingComputer animation
01:57
Alpha (investment)Loop (music)Filter <Informatik>Direction (geometry)RoboticsFunction (mathematics)Figurate numberMultiplication signBitComputer programmingHydraulic motorDifferent (Kate Ryan album)Right angleExploit (computer security)TrajectoryDreizehnMereologyXMLComputer animation
02:54
Multiplication signTrajectoryRoboticsAreaOcean currentDiagram
03:18
Loop (music)Filter <Informatik>Diagram
Transcript: English(auto-generated)
00:00
So I want you to implement this motion model and for that I have prepared some code for you. So the code consists of a main function and the filter step and you will have to implement this filter step. The filter step gets the old pose which consists of x y and the heading and it gets the motor ticks left and right and it has to implement the motion equations
00:23
for the two cases. The first case is the motor ticks left and right are the same. In that case the robot just drives straight and if not the robot drives along a curved segment and you'll have to implement that case too. And these are the formulas we just discussed.
00:41
And I prepared a main function for you. There's the constant we just discussed, the ticks two millimeter conversion factor. Another constant is the width of the track in millimeters and the main function does all the opening of the file and the processing for the motor ticks. So here it opens the log file, it reads in the motor ticks,
01:03
then it starts at a given pose. So since I do not know the pose I just say it is at x zero y zero and with a heading of zero. And then I start to construct the list of the filtered positions. For all ticks in the motor ticks I just call this filter step function,
01:20
the one up here, which you'll have to implement. The filter step function takes the pose, takes ticks and computes the new pose. And then the new pose is just appended to this list. Then in the end I do two things. I print out all the positions and orientations and I also in addition do a plot. So now let's have a look at what the program does after you
01:43
implemented the filter step function. So I'll just run it and this is what happens. The program prints a long list of x y heading values. So if I scroll back, these are the first values. At the start of the experiment the robot stands still. So it is at zero zero with heading
02:05
zero. And at the beginning the motors are not turning. And for the first one, two, three, four, five, six, seven, eight, nine, ten, eleven, twelve, thirteen. For the first thirteen time steps the robot stands still and then starts to accelerate and it goes straight.
02:24
Since the heading is along the x axis it goes into x direction and it accelerates. And then as you remember with the third value here the left and right ticks are a little bit different. So it starts to turn a little bit that the heading here switches to a value of something like
02:40
two pi. So when you implement this make sure that you have those thirteen zeros here and then the same values as you can see here. But the program does not only output those values it also draws a figure. So here's the figure it draws and you can see the robot starts at zero zero with heading along the x axis the theta equals zero. And then it moves and does a left
03:04
turn. And so you see for the first time you see the trajectory that the robot is moving in the arena. So now try to implement this. Have a look at the graphics and make sure that you get the correct values as they are shown here.