コード例 #1
0
            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')
コード例 #2
0
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)
コード例 #3
0
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)
コード例 #4
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] -
コード例 #5
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')
コード例 #6
0
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)