3d ball positioning - tech united
TRANSCRIPT
3D Ball Positioning
Wouter Kuijpers
Eindhoven University of TechnologyUniversidade de Aveiro
Supervision:dr. ir. Rene van de Molengraft (TU/e)
Prof. Antonio Neves (UA)
December 22, 2015
Wouter Kuijpers (TU/e) 3D Ball Positioning December 22, 2015 1 / 19
Part 1: Personal Introduction
Wouter Kuijpers
23 years old, home in Someren(near Eindhoven)
Hobby’s: Running, DJ’ing,Slacklining
EducationBachelor Mechatronics EngineeringMaster Systems & Control, 2nd year
Internship with CAMBADA
Wouter Kuijpers (TU/e) 3D Ball Positioning December 22, 2015 2 / 19
Content
Part 1: 3D Ball Positioning
Part 2: Challenges
Part 3: Triangulation Algorithm
Part 4: Results
Part 5: Conclusions & Recommendations
Wouter Kuijpers (TU/e) 3D Ball Positioning December 22, 2015 3 / 19
3D Ball Positioning
Target: develop 3D position detection for the ball, which can be appliedin the Middle Size League (MSL)
Several solutions/methods to this have been presented, for exampleadding a
perspective camera,kinect camera,
to the robot, or by using the bijection principle applied to projectionmodel.
An interesting solution/method might also be found with cooperativesensing:
Research and Verify whether cooperative sensing can be used for real-time3D ball positioning using triangulation of omni-vision camera data.
Wouter Kuijpers (TU/e) 3D Ball Positioning December 22, 2015 4 / 19
3D Ball Positioning
Target: develop 3D position detection for the ball, which can be appliedin the Middle Size League (MSL)
Several solutions/methods to this have been presented, for exampleadding a
perspective camera,kinect camera,
to the robot, or by using the bijection principle applied to projectionmodel.
An interesting solution/method might also be found with cooperativesensing:
Research and Verify whether cooperative sensing can be used for real-time3D ball positioning using triangulation of omni-vision camera data.
Wouter Kuijpers (TU/e) 3D Ball Positioning December 22, 2015 4 / 19
3D Ball Positioning
Target: develop 3D position detection for the ball, which can be appliedin the Middle Size League (MSL)
Several solutions/methods to this have been presented, for exampleadding a
perspective camera,kinect camera,
to the robot, or by using the bijection principle applied to projectionmodel.
An interesting solution/method might also be found with cooperativesensing:
Research and Verify whether cooperative sensing can be used for real-time3D ball positioning using triangulation of omni-vision camera data.
Wouter Kuijpers (TU/e) 3D Ball Positioning December 22, 2015 4 / 19
Triangulation of Omni-Vision Camera Data
Applications:
reliable ball position projection on field: Pball
height of the ball zball , enables interception strategy (lob pass)
Wouter Kuijpers (TU/e) 3D Ball Positioning December 22, 2015 5 / 19
Challenges
1 Challenge 1: Lines of Sight (LoS) might not cross due to noise inmeasurement.
Possible Solution: do not calculate intersection but minimumdistance between LoS’s. Check!
2 Challenge 2: communication delay in robot-robot communication.
Possible Solution: apply extrapolation to omni-vision data from otherrobots. Communication Delay + Noise → large inaccuracies.
3 Challenge 3: limited amount of data from other robots.
(a) Challenge 1 (b) Challenge 2 (c) Challenge 3
Wouter Kuijpers (TU/e) 3D Ball Positioning December 22, 2015 6 / 19
MATLAB Simulation Environment
15
10
y [m]
5
00
-5
0.5
z [
m]
x [m]
0
1
5-510
15
Additions:
Multiple (> 2) Robots
variable Communication Delay, Clock Offset and Package Loss
Hybrid Automaton ball model
Wouter Kuijpers (TU/e) 3D Ball Positioning December 22, 2015 7 / 19
Triangulation Algorithm
Triangulation Algorithm
Current Time: tn
Solution 2: triangulation willbe performed on past data,which is stored in a databuffer.
Solution 3: combine LoSwith predicted position ofKalman filter.
Algorithm consists of 4 mainmodules.
Ball
Robot 3
Robot 2
Robot 1
Triangulation+
Kalman filter
Wouter Kuijpers (TU/e) 3D Ball Positioning December 22, 2015 8 / 19
Data Buffer
Data buffer: retrieving, storing and selecting triangulation data.
perRobotCounter
perTimeCounter
Data Robot
x valid?
x++
putOmniData
No
Yes
x=0
x >
MaxNrofRobots
MCLK
data
updateMasterClock
No
dataSelection
#0
#1
DB_get
Wouter Kuijpers (TU/e) 3D Ball Positioning December 22, 2015 9 / 19
Kalman filter
Kalman filter: filtering, by combining the (non-chronological)measurements with the Hybrid Automaton ball model.
Kalman Filter Time
Legend
#1
#4
Timestamp
runModel(foward)
runModel(backward)
++ --
#B
updateState
#2
#3No
Yes
Yes No
predictionState
Wouter Kuijpers (TU/e) 3D Ball Positioning December 22, 2015 10 / 19
Minimum-Distance Algorithms & Model Update
Minimum-distance algorithms: combining triangulation data into 3Dpositions.
(d) Minimum-distance between lines(pairwise).
Model update: updating the 3D position to the current time.
Wouter Kuijpers (TU/e) 3D Ball Positioning December 22, 2015 11 / 19
Minimum-Distance Algorithms & Model Update
Minimum-distance algorithms: combining triangulation data into 3Dpositions.
(e) Minimum-distance between line andpoint.
Model update: updating the 3D position to the current time.
Wouter Kuijpers (TU/e) 3D Ball Positioning December 22, 2015 11 / 19
Results
Static Test
Static test is used to:
validate the implementation of the algorithmqualify the performance of the algorithm
The next sheet presents the algorithm applied to:
2 robots with the algorithm running5 different ball positions; (x , y)2 different ball heights; z = 0.11 m ∨ 0.42 m200 measurements (for each robot) are analysed (mean and standarddeviation)
Aside from accuracy of the position itself, asses difference betweenrobots.
Wouter Kuijpers (TU/e) 3D Ball Positioning December 22, 2015 12 / 19
Results
Static Test
Static test is used to:
validate the implementation of the algorithmqualify the performance of the algorithm
The next sheet presents the algorithm applied to:
2 robots with the algorithm running5 different ball positions; (x , y)2 different ball heights; z = 0.11 m ∨ 0.42 m200 measurements (for each robot) are analysed (mean and standarddeviation)
Aside from accuracy of the position itself, asses difference betweenrobots.
Wouter Kuijpers (TU/e) 3D Ball Positioning December 22, 2015 12 / 19
Results
Static Test
Static test is used to:
validate the implementation of the algorithmqualify the performance of the algorithm
The next sheet presents the algorithm applied to:
2 robots with the algorithm running5 different ball positions; (x , y)2 different ball heights; z = 0.11 m ∨ 0.42 m200 measurements (for each robot) are analysed (mean and standarddeviation)
Aside from accuracy of the position itself, asses difference betweenrobots.
Wouter Kuijpers (TU/e) 3D Ball Positioning December 22, 2015 12 / 19
Results - Static Test
-6
-4
-2
0
2
4
6
x[m
]
0 2 4 6 8
y[m]
Height = 0.11[m]
-6
-4
-2
0
2
4
6
x[m
]
0 2 4 6 8
y[m]
Height = 0.42[m]
Overall: µ = 10.6 cm, σ = 0.86 cm.
Wouter Kuijpers (TU/e) 3D Ball Positioning December 22, 2015 13 / 19
Dynamic Test
Dynamic Test
Dynamic test is used to:
quantify the performance of the algorithmqualify whether the algorithm can be used in the MSL
Unfortunately, no ground truth system could be used in the tests.Therefore resort to analytical analysis.
Target: track the ball during a kick from a soccer robot.
Possible to obtain an accurate estimate of ball state before it leavesthe observable space?
What would the robot-robot communication need to be to facilitatethis.Target: 6 samples per peer robot. Requires: RTDB frequency→ 40 Hz .
Wouter Kuijpers (TU/e) 3D Ball Positioning December 22, 2015 14 / 19
Results - Dynamic Test
0.1
0.2
-0.6
0.3
0.4
z [
m]
0.5
-0.8
0.6
2.8
0.7
-1
x [m] y [m]
3-1.2-1.4
3.2-1.6
3 (not calibrated) robots, showing only the 2 without seriousdeviations in calibration.
Wouter Kuijpers (TU/e) 3D Ball Positioning December 22, 2015 15 / 19
Results - Dynamic Test
0.1
0.2
-0.6
0.3
0.4
z [
m]
0.5
-0.8
0.6
2.8
0.7
-1
x [m] y [m]
3-1.2-1.4
3.2-1.6
Ball state is found to be heavily affected by measurement noise,requires Kalman filter tuning.
Wouter Kuijpers (TU/e) 3D Ball Positioning December 22, 2015 15 / 19
Results - Demonstration
Demonstration!
Wouter Kuijpers (TU/e) 3D Ball Positioning December 22, 2015 16 / 19
Conclusion
The Assignment:
Research and Verify whether cooperative sensing can be used for real-time3D ball positioning using triangulation of omni-vision camera data.
A Trajectory Generator has been expanded, this has been used toimprove an existing approach.
The new approach yields good results in simulation.
The Triangulation Algorithm has been implemented on the robots.
The algorithms yields an accuracy of about 10.6 cm.
Tracking a Kick right from the start still requires work (tuning)!
triangulation will probably output a more accurate result than theprojection at that time.
Wouter Kuijpers (TU/e) 3D Ball Positioning December 22, 2015 17 / 19
Conclusion
The Assignment:
Research and Verify whether cooperative sensing can be used for real-time3D ball positioning using triangulation of omni-vision camera data.
A Trajectory Generator has been expanded, this has been used toimprove an existing approach.
The new approach yields good results in simulation.
The Triangulation Algorithm has been implemented on the robots.
The algorithms yields an accuracy of about 10.6 cm.
Tracking a Kick right from the start still requires work (tuning)!
triangulation will probably output a more accurate result than theprojection at that time.
Wouter Kuijpers (TU/e) 3D Ball Positioning December 22, 2015 17 / 19
Conclusion
The Assignment:
Research and Verify whether cooperative sensing can be used for real-time3D ball positioning using triangulation of omni-vision camera data.
A Trajectory Generator has been expanded, this has been used toimprove an existing approach.
The new approach yields good results in simulation.
The Triangulation Algorithm has been implemented on the robots.
The algorithms yields an accuracy of about 10.6 cm.
Tracking a Kick right from the start still requires work (tuning)!
triangulation will probably output a more accurate result than theprojection at that time.
Wouter Kuijpers (TU/e) 3D Ball Positioning December 22, 2015 17 / 19
Recommendation
Kalman
Time
Time ti+5 is selected for triangulation, current implementation:
Kalman
Time
Recommendation: Use the pre-calculated predicted state at ti+5, fortriangulation. Requires buffer of predicted states.
This however discards the updated state estimate at ti+7.
Wouter Kuijpers (TU/e) 3D Ball Positioning December 22, 2015 18 / 19
Recommendation
Kalman
Time
Time ti+5 is selected for triangulation, current implementation:
Kalman
Time
Recommendation: Use the pre-calculated predicted state at ti+5, fortriangulation. Requires buffer of predicted states.
This however discards the updated state estimate at ti+7.
Wouter Kuijpers (TU/e) 3D Ball Positioning December 22, 2015 18 / 19
Recommendation
Kalman
Time
Time ti+5 is selected for triangulation, current implementation:
Kalman
Time
Recommendation: Use the pre-calculated predicted state at ti+5, fortriangulation. Requires buffer of predicted states.
This however discards the updated state estimate at ti+7.
Wouter Kuijpers (TU/e) 3D Ball Positioning December 22, 2015 18 / 19
Recommendation
Kalman
Time
Time ti+5 is selected for triangulation, current implementation:
Kalman
Time
Recommendation: Use the pre-calculated predicted state at ti+5, fortriangulation. Requires buffer of predicted states.
This however discards the updated state estimate at ti+7.
Wouter Kuijpers (TU/e) 3D Ball Positioning December 22, 2015 18 / 19
Thank You!
Any:Questions, Suggestions, Remarks, Answers, Replies, OpinionsExplanations, Words, Comments, Observations, Illustrations
Reflections, Unclarities
Or is there anything I:Neglected, Ignored, Suppressed, Overlooked
Misunderstood, Did not say?
Wouter Kuijpers (TU/e) 3D Ball Positioning December 22, 2015 19 / 19