CeleryPy.move_absolute((x, y, -115), (0, 0, 0), 100) CeleryPy.wait(500) CeleryPy.move_absolute((xsig, ysig, -115), (0, 0, 0), 100) CeleryPy.move_absolute((xsig, ysig, -278), (0, 0, 0), 100) CeleryPy.write_pin(number=4, value=1, mode=0) CeleryPy.wait(400) CeleryPy.write_pin(number=4, value=0, mode=0) CeleryPy.wait(400) CeleryPy.write_pin(number=4, value=1, mode=0) CeleryPy.wait(400) CeleryPy.write_pin(number=4, value=0, mode=0) CeleryPy.wait(400) CeleryPy.write_pin(number=4, value=1, mode=0) CeleryPy.move_absolute((xsig, ysig, -205), (0, 0, 0), 100) CeleryPy.write_pin(number=4, value=0, mode=0) CeleryPy.wait(200) CeleryPy.write_pin(number=4, value=1, mode=0) CeleryPy.wait(200) CeleryPy.write_pin(number=4, value=0, mode=0) CeleryPy.wait(200) CeleryPy.write_pin(number=4, value=1, mode=0) CeleryPy.wait(500) CeleryPy.move_absolute(weeder, (120, 0, 200), 150) CeleryPy.move_absolute(weeder, (120, 0, 0), 150) CeleryPy.move_absolute(weeder, (0, 0, 0), 150) CeleryPy.move_absolute(weeder, (0, 0, 200), 150) send_message(message='Succesful Sequence', message_type='success', channel='toast') CeleryPy.move_absolute((0, 0, 0), (0, 0, 0), 250) else: send_message(message='Tray number error', message_type='error', channel='toast')
sys.path.insert(1, os.path.join(sys.path[0], '..')) from plant_detection.PlantDetection import PlantDetection from time import gmtime, strftime, time import json import requests import numpy as np import cv2 import csv farmware_name = 'pruebas herramientas_CS' weeder = (20, 553, -402) CeleryPy.move_absolute(weeder, (0, 0, 0), 150) CeleryPy.move_absolute(weeder, (100, 0, 0), 150) CeleryPy.move_absolute(weeder, (100, 0, 100), 150) CeleryPy.move_absolute(weeder, (100, 0, 200), 150) CeleryPy.move_absolute((580, 400, -340), (0, 0, 0), 150) CeleryPy.write_pin(number=4, value=0, mode=0) CeleryPy.wait(2000) CeleryPy.move_absolute((450, 400, -340), (0, 0, 0), 150) CeleryPy.write_pin(number=4, value=1, mode=0) CeleryPy.wait(2000) CeleryPy.move_absolute(weeder, (120, 0, 200), 150) CeleryPy.move_absolute(weeder, (120, 0, 0), 150) CeleryPy.move_absolute(weeder, (0, 0, 0), 150) CeleryPy.move_absolute(weeder, (0, 0, 200), 150) send_message(message='PerFect', message_type='success', channel='toast') CeleryPy.move_absolute((0, 0, 0), (0, 0, 0), 250)
import os import sys from CeleryPy import log from CeleryPy import send_message import numpy as np from farmware_tools import device import CeleryPy device.set_pin_io_mode(1, 4) weeder = (20, 553 + 4, -402) herramienta_2 = (20, 453 + 4, -402) herramienta_3 = (20, 353 + 4, -402) central_position = (500, 440 + 4, -260) send_message(message='Iniciando secuencia de cambio de herramientas', message_type='warn', channel='toast') CeleryPy.move_absolute(weeder, (0, 0, 0), 150) CeleryPy.move_absolute(weeder, (100, 0, 0), 150) CeleryPy.move_absolute(weeder, (100, 0, 100), 150) CeleryPy.move_absolute(weeder, (100, 0, 200), 150) CeleryPy.write_pin(number=4, value=1, mode=0) CeleryPy.wait(300) CeleryPy.write_pin(number=4, value=0, mode=0) CeleryPy.wait(300) CeleryPy.write_pin(number=4, value=1, mode=0) CeleryPy.move_absolute(central_position, (0, 0, 0), 100) CeleryPy.write_pin(number=4, value=0, mode=0) CeleryPy.wait(400) CeleryPy.write_pin(number=4, value=1, mode=0) CeleryPy.wait(400) CeleryPy.write_pin(number=4, value=0, mode=0)
radios_counter = radios_counter + 1 suma_radios = sum(radios) try: if suma_radios / radios_counter >= 15.0: #O=len(PD.plant_db.coordinate_locations) dir_path = os.path.dirname(os.path.realpath(__file__)) matrix = np.load(dir_path + '/' + 'array1.npy') matrix2 = np.load(dir_path + '/' + 'array2.npy') matrix3 = np.load(dir_path + '/' + 'array3.npy') matrix4 = np.load(dir_path + '/' + 'array4.npy') for coordinate_location in PD.plant_db.coordinate_locations: log("Plant detected at X = {:5.0f} mm, Y = {:5.0f} mm with R = {:.1f} mm" .format(coordinate_location[0], coordinate_location[1], coordinate_location[2])) send_message(message='TUDO BEM', message_type='success', channel='toast') CeleryPy.move_absolute(weeder, (0, 0, 0), 150) CeleryPy.move_absolute(weeder, (100, 0, 0), 150) CeleryPy.move_absolute(weeder, (100, 0, 100), 150) CeleryPy.move_absolute(weeder, (100, 0, 200), 150) CeleryPy.write_pin(number=4, value=1, mode=0) CeleryPy.wait(100) CeleryPy.write_pin(number=4, value=0, mode=0) CeleryPy.wait(200) CeleryPy.write_pin(number=4, value=1, mode=0) for i, coordinate_location in enumerate( PD.plant_db.coordinate_locations): if coordinate_location[2] > 15.0 and coordinate_location[2] < 42.0: aux = np.abs(coordinate_location[0] -
iterations=3, from_env_var=True, coordinates=True, array=[{ "size": 5, "kernel": 'ellipse', "type": 'erode', "iters": 1 }], HSV_min=[49, 95, 50], HSV_max=[110, 255, 255]) PD.detect_plants() # detect coordinates and sizes of weeds and plants if len(PD.plant_db.coordinate_locations) >= 1: holes = [] for coordinate_location in PD.plant_db.coordinate_locations: if 19 > coordinate_location[2] > 7 and coordinate_location[ 0] < 950 and coordinate_location[1] < 740: holes.append([coordinate_location[0], coordinate_location[1]]) rows, cols = array_shape(holes) matrix11 = np.zeros((rows, cols, 2)) matrix11 = fill_array(matrix11, holes) matrix11 = matrix11[:, 0:6, :] log(str(matrix11.shape)) matrix = mergearrays(matrix10, matrix11) log(str(matrix.shape)) np.save('/root/farmware/array2', matrix) if len(PD.plant_db.coordinate_locations) == 0: send_message(message='NO HOLES', message_type='error', channel='toast') CeleryPy.move_absolute((0, 0, 0), (0, 0, 0), 200) send_message(message='TUDO BEM', message_type='success', channel='toast')
CeleryPy.write_pin(number=4, value=0, mode=0) CeleryPy.wait(2000) CeleryPy.move_absolute((x, y, -115), (0, 0, 0), 100) CeleryPy.wait(500) CeleryPy.move_absolute((xsig, ysig, -115), (0, 0, 0), 100) CeleryPy.move_absolute((xsig, ysig, -278), (0, 0, 0), 100) CeleryPy.write_pin(number=4, value=1, mode=0) CeleryPy.wait(400) CeleryPy.write_pin(number=4, value=0, mode=0) CeleryPy.wait(400) CeleryPy.write_pin(number=4, value=1, mode=0) CeleryPy.wait(400) CeleryPy.write_pin(number=4, value=0, mode=0) CeleryPy.wait(400) CeleryPy.write_pin(number=4, value=1, mode=0) CeleryPy.move_absolute((xsig, ysig, -205), (0, 0, 0), 100) CeleryPy.write_pin(number=4, value=0, mode=0) CeleryPy.wait(200) CeleryPy.write_pin(number=4, value=1, mode=0) CeleryPy.wait(200) CeleryPy.write_pin(number=4, value=0, mode=0) CeleryPy.wait(200) CeleryPy.write_pin(number=4, value=1, mode=0) CeleryPy.wait(500) CeleryPy.move_absolute(weeder, (120, 0, 200), 150) CeleryPy.move_absolute(weeder, (120, 0, 0), 150) CeleryPy.move_absolute(weeder, (0, 0, 0), 150) CeleryPy.move_absolute(weeder, (0, 0, 200), 150) send_message(message='TUDO BEM', message_type='success', channel='toast') CeleryPy.move_absolute((0, 0, 0), (0, 0, 0), 250)