Upcoming SlideShare
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Standard text messaging rates apply

# Presentation 2

233

Published on

0 Likes
Statistics
Notes
• Full Name
Comment goes here.

Are you sure you want to Yes No
• Be the first to comment

• Be the first to like this

Views
Total Views
233
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
1
0
Likes
0
Embeds 0
No embeds

No notes for slide

### Transcript

• 1. Ben Gardiner, Travis Cooper, Matthew Haveard, Waseem Ahmad Snakes and Turtles ROS, Python, and MILP
• 2. Outline
• Introduction
• 3. Snakes: Python's Usefulness
• 4. Turtles: Adventures in ROS
• 5. MILP: The Algorithm that ties it together
• 6. Results
• 7. Conclusion
• 8. Python Intro
• Object Oriented and Functional
• 10. Function and variable use
• 11. List Comprehension
• 12. English – Do ya speak it?
• The syntax is simple
• x = “snakes!” is a string y=3 is an integer
• 13. print (x*y) is snakes!snakes!snakes!
• Whitespace used for code blocks
• Block 1 Start
• nested block two start
• 14. nested block two end
• Block 1 End
• Simplicity speeds up coding time
• 15. Top 3 reasons to love Python's lists
1) They are dynamic
• No need to declare or update their length
• 16. Lists are mutable
• 17. Lists can contain other lists
• 18.
2) List Comprehension can be nested
>>> mat = [
... [1, 2, 3], ... [4, 5, 6], ... [7, 8, 9], ... ] print([[row[i] for row in mat] for i in [0, 1, 2]]) [[1, 4, 7], [2, 5, 8], [3, 6, 9]] Top 3 reasons to love Python's lists
• 19.
3) Matrices are really easy
>>> words = 'The quick brown fox jumps over the lazy dog'.split() >>> print words ['The', 'quick', 'brown', 'fox', 'jumps', 'over', 'the', 'lazy', 'dog'] >>> >>> stuff = [[w.upper(), w.lower(), len(w)] for w in words] >>> for i in stuff: ... print i ... ['THE', 'the', 3] ['QUICK', 'quick', 5] ['BROWN', 'brown', 5] ['FOX', 'fox', 3] ['JUMPS', 'jumps', 5] ['OVER', 'over', 4] ['THE', 'the', 3] ['LAZY', 'lazy', 4] ['DOG', 'dog', 3] Top 3 reasons to love Python's lists
• 20. Functions and Variables
• Declare variables without having to state type
• 21. Assign a function to a variable
• 22. Ability to pass functions as arguments
• 23. Turtles, the ROS framework
Nodes:
• X-Bee/Simulator
• 24. Coordinator
• 26. Collision Avoidance
Topics:
• 28. Plane Creation
• 30. Collision Avoidance
• 31. Collision Avoidance Node
• From telemetry update topic:
• Plane ID, location, destination, bearing and speed
• Request GoToWaypoint service from coordinator
• Provide: Plane ID, new waypoint, priority of new waypoint
• 32. The Main Event Mixed Integer Linear Programming
• 33. The Elusive A and B
• 34. What A and B do UAV State Vector Force Vector
• 35. How A Works Position and Velocity
• 36. How B Works Acceleration and Time
• 37. Minimum Speed
• 38. Time Trajectory
• 39. Time Minimize
• 40. Time Minimize
• 41. Vehicle Avoidance
• 42. Maximum Speed/Force
• 43. Visiting Waypoints in Order
• 44. Results Without Minimum Speed
• 45. Results With Minimum Speed
• 46. Results Unordered Waypoints
• 47. Results Ordered Waypoints
• 48. Results Scenario 1, Setup
• 49. Results Scenario 1, Path dt = 4, Nt = 20
• 50. Results Scenario 2, Setup
• 51. Results Scenario 2, Path dt = 4, Nt = 13, Comptime = 2.19s
• 52. Results Scenario 3, Setup
• 53. Results Scenario 3, Path dt = 4, Nt = 22, Comptime = 20.0s (limit)
• 54. Results Scenario 3, Path dt = 4, Nt = 22, Comptime = 10.0s (limit)
• 55. Results Scenario 3, Path dt = 8, Nt = 15, Comptime = 3.02s (limit)
• 56. Results Scenario 4, Setup
• 57. Results Scenario 4, Path dt = 4, Nt = 22, Comptime = 3.88s
• 58. Results Restricted Waypoints
• 59. Results Unrestricted Waypoints
• 60. Results Obstacle Avoidance
• 61. Conclusions Scenario 1, Path dt = 4, Nt = 20, Comptime = 0.13s