Sha256: 08599f4a715353d9e8ad8f688636cb7d259ae15930f1be770967855652ed8a34
Contents?: true
Size: 1.51 KB
Versions: 1
Compression:
Stored size: 1.51 KB
Contents
require 'artoo' connection :capture, :adaptor => :opencv_capture, :source => "tcp://192.168.1.1:5555" device :capture, :driver => :opencv_capture, :connection => :capture, :interval => 0.025 connection :video, :adaptor => :opencv_window device :video, :driver => :opencv_window, :connection => :video, :title => "Video", :interval => 0.025 connection :ardrone, :adaptor => :ardrone, :port => '192.168.1.1:5556' device :drone, :driver => :ardrone, :connection => :ardrone work do on capture, :frame => proc { |*value| begin opencv = value[1] biggest_circle = 0 ball = nil opencv.detect_circles({:r =>170, :g =>50, :b =>0}, {:r => 256, :g => 180, :b => 10}).each{|circle| if circle.radius > biggest_circle biggest_circle = circle.radius ball = circle end } if !ball.nil? opencv.draw_circles!([ball]) centerX = opencv.image.width * 0.5 turnAmount = -( ball.center.x - centerX ) / centerX turnAmount = [1.0, turnAmount].min turnAmount = [-1.0, turnAmount].max heightAmount = 0 puts turnAmount if( turnAmount.abs > heightAmount.abs ) puts "turning " + turnAmount.to_s if turnAmount < 0 drone.turn_right(turnAmount.abs) else drone.turn_left(turnAmount) end sleep 0.1 drone.hover end end video.image = opencv.image if video.alive? rescue Exception => e puts e.message end } drone.start drone.take_off after(5.seconds) { drone.hover } end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
artoo-opencv-0.1.0 | examples/ardrone_tracking.rb |