Your SlideShare is downloading. ×
Presentation 2
Presentation 2
Presentation 2
Presentation 2
Presentation 2
Presentation 2
Presentation 2
Presentation 2
Presentation 2
Presentation 2
Presentation 2
Presentation 2
Presentation 2
Presentation 2
Presentation 2
Presentation 2
Presentation 2
Presentation 2
Presentation 2
Presentation 2
Presentation 2
Presentation 2
Presentation 2
Presentation 2
Presentation 2
Presentation 2
Presentation 2
Presentation 2
Presentation 2
Presentation 2
Presentation 2
Presentation 2
Presentation 2
Presentation 2
Presentation 2
Presentation 2
Presentation 2
Presentation 2
Presentation 2
Presentation 2
Upcoming SlideShare
Loading in...5
×

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.
Text the download link to your phone
Standard text messaging rates apply

Presentation 2

233

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

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

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
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
    • 9. Readability
    • 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
    • 25. Control Menu
    • 26. Collision Avoidance
      Topics:
    • Telemetry Updates
    • 27. Command Updates Services
    • 28. Plane Creation
    • 29. Load Waypoints
    • 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

×