def fly(self): if self.buttons: #RTL if self.buttons[0]: self.RTL() # Arm drone(s) if self.buttons[2]: self.arm() # Disarm drone(s) if self.buttons[3]: self.disarm() #set mission if self.buttons[10]: self.waypoints = mission_parser.get_mission(0) #self.continue_mission() #keep drone from landing at end of mission success = self.push_waypoints() #push to drone if self.buttons[11]: self.clear_waypoints() ''' #set new waypoints - in flight, ignore existing waypoints and start new mission if self.buttons[9]: self.waypoints = mission_parser.get_mission(1) #self.continue_mission() self.push_waypoints() self.restart_mission() ''' #save map points to mission if self.buttons[9]: self.set_mission_to_map() ''' #add waypoints if self.buttons[8]: self.add_waypoints([[42.293394, -71.263916],[42.293357, -71.263997]]) ''' if self.buttons[8]: self.save_mission_to_file() #enter guided mode/toggle guided waypoints if self.buttons[1]: self.guided_function() if self.buttons[4]: self.begin_mission() if self.buttons[5]: self.end_mission() if self.buttons[6]: self.set_guided_to_map() if self.buttons[7]: self.launch_map() time.sleep(0.01) #joystick control for manual if self.drones[0].armed and self.mode[0] == 'manual': rc_msg = OverrideRCIn() x = 1500 - self.axes[0] * 300 y = 1500 - self.axes[1] * 300 z = 1000 + (self.axes[3] + 1) * 500 yaw = 1500 - self.axes[2] * 200 (rc_msg.channels[0], rc_msg.channels[1], rc_msg.channels[2], rc_msg.channels[3]) = (x, y, z, yaw) print z self.pub_rc[0].publish(rc_msg)
def fly(self): if self.buttons: #RTL if self.buttons[0]: self.RTL() # Arm drone(s) if self.buttons[2]: self.arm() # Disarm drone(s) if self.buttons[3]: self.disarm() #set mission if self.buttons[10]: self.waypoints = mission_parser.get_mission(0) #self.continue_mission() #keep drone from landing at end of mission success = self.push_waypoints() #push to drone if self.buttons[11]: self.clear_waypoints() ''' #set new waypoints - in flight, ignore existing waypoints and start new mission if self.buttons[9]: self.waypoints = mission_parser.get_mission(1) #self.continue_mission() self.push_waypoints() self.restart_mission() ''' #save map points to mission if self.buttons[9]: self.set_mission_to_map() ''' #add waypoints if self.buttons[8]: self.add_waypoints([[42.293394, -71.263916],[42.293357, -71.263997]]) ''' if self.buttons[8]: self.save_mission_to_file() #enter guided mode/toggle guided waypoints if self.buttons[1]: self.guided_function() if self.buttons[4]: self.begin_mission() if self.buttons[5]: self.end_mission() if self.buttons[6]: self.set_guided_to_map() if self.buttons[7]: self.launch_map() time.sleep(0.01) #joystick control for manual if self.drones[0].armed and self.mode[0] == 'manual': rc_msg = OverrideRCIn() x = 1500 - self.axes[0]*300 y = 1500 - self.axes[1]*300 z = 1000 + (self.axes[3]+1)*500 yaw = 1500 - self.axes[2]*200 (rc_msg.channels[0], rc_msg.channels[1], rc_msg.channels[2], rc_msg.channels[3]) = (x, y, z, yaw) self.pub_rc[0].publish(rc_msg) if self.BOUNDEDFLIGHT and self.drones[0].armed and self.mode[0] != 'RTL': pos = [self.drones[0].latitude, self.drones[0].longitude] if pos != [0, 0]: if not InPoly.isInPoly(self.bounds, pos): self.RTL() def kill_handler(signum, frame): rc_msg = OverrideRCIn() killmessage = 65535 [killmessage for msg in rc_msg.channels] self.pub_rc[0].publish(rc_msg) print 'handing control back' quit() signal.signal(signal.SIGINT, kill_handler)
def fly(self): if self.buttons: # Arm drone(s) if self.buttons[2]: for i in xrange(self.num_drones): self.srv_arm[i](True) print "Arming drones" # Disarm drone(s) if self.buttons[3]: for i in xrange(self.num_drones): self.srv_arm[i](False) print "Disarming drones" # Push waypoints if self.buttons[10]: waypoints = mission_parser.get_mission(0) success = True for i in xrange(self.num_drones): res = self.srv_wp_push[i](waypoints) success &= res.success if success: print "Pushed waypoints" else: print "Failed to push waypoints" # Clear waypoints if self.buttons[11]: success = True for i in xrange(self.num_drones): res = self.srv_wp_clear[i]() success &= res.success if success: print "Cleared waypoints" else: print "Failed to clear waypoints" # Begin mission if self.buttons[4]: self.mode[0] = 'auto' self.srv_mode[0](0, '3') rc_msg = OverrideRCIn() (rc_msg.channels[0], rc_msg.channels[1], rc_msg.channels[2], rc_msg.channels[3], rc_msg.channels[4]) = (1500, 1500, 1250, 1500, 1400) self.pub_rc[0].publish(rc_msg) print "Beginning mission" # End mission if self.buttons[5]: self.mode[0] = 'manual' print "Ending mission" if self.drones[0].armed and self.mode[0] == 'manual': rc_msg = OverrideRCIn() x = 1500 - self.axes[0]*300 y = 1500 - self.axes[1]*300 z = 1000 + (self.axes[3]+1)*500 yaw = 1500 - self.axes[2]*300 (rc_msg.channels[0], rc_msg.channels[1], rc_msg.channels[2], rc_msg.channels[3], rc_msg.channels[4]) = (x, y, z, yaw, 1500) self.srv_mode[0](0, '5') self.pub_rc[0].publish(rc_msg)
def fly(self): if self.buttons: #RTL if self.buttons[0]: self.RTL() # Arm drone(s) if self.buttons[2]: self.arm() # Disarm drone(s) if self.buttons[3]: self.disarm() #set mission if self.buttons[10]: self.waypoints = mission_parser.get_mission(0) #self.continue_mission() #keep drone from landing at end of mission success = self.push_waypoints() #push to drone if self.buttons[11]: self.clear_waypoints() ''' #set new waypoints - in flight, ignore existing waypoints and start new mission if self.buttons[9]: self.waypoints = mission_parser.get_mission(1) #self.continue_mission() self.push_waypoints() self.restart_mission() ''' #save map points to mission if self.buttons[9]: self.set_mission_to_map() ''' #add waypoints if self.buttons[8]: self.add_waypoints([[42.293394, -71.263916],[42.293357, -71.263997]]) ''' if self.buttons[8]: self.save_mission_to_file() #enter guided mode/toggle guided waypoints if self.buttons[1]: self.guided_function() if self.buttons[4]: self.begin_mission() if self.buttons[5]: self.end_mission() if self.buttons[6]: self.set_guided_to_map() if self.buttons[7]: self.launch_map() time.sleep(0.01) #joystick control for manual if self.drones[0].armed and self.mode[0] == 'manual': rc_msg = OverrideRCIn() x = 1500 - self.axes[0]*300 y = 1500 - self.axes[1]*300 z = 1000 + (self.axes[3]+1)*500 yaw = 1500 - self.axes[2]*200 (rc_msg.channels[0], rc_msg.channels[1], rc_msg.channels[2], rc_msg.channels[3]) = (x, y, z, yaw) print z self.pub_rc[0].publish(rc_msg)