INHOUDSOPGAWE:

HexaWalker: 5 stappe
HexaWalker: 5 stappe

Video: HexaWalker: 5 stappe

Video: HexaWalker: 5 stappe
Video: ПОЛТЕРГЕЙСТ 5 УРОВНЯ СНОВА НЕ ДАЕТ ПОКОЯ, ЖУТКАЯ АКТИВНОСТЬ / LEVEL 5 POLTERGEIST, CREEPY ACTIVITY 2024, Julie
Anonim
Image
Image
HexaWalker
HexaWalker

Ons kan 'n groot deel van die studie van die UAB en die robot se selfstandige kamera met 'n webkamera met 'n mikrogolfoond met behulp van 'n interaktiewe interaksie met 'n elektroniese kamera sien. Die idee van 'n era kan 'n robot in 'n rekonstruksie vorm en 'n aantal mededingende funksies vir ons kan help. U kan ook 'n "mascota" rebotica gebruik.

Ons kan die struktuur wat ons gebruik, vir die nuutste hexapodo van die oopbron van Hexy de ArcBotics gebruik.

Volledige skakel:

Voorrade

- lipo baterry 7.4V 2700mmAh

- x2 adafruit servo bestuurder

- x18 mikroservo's SG90s

- webcam playstation oog

-framboos pi -LM2596 afskakel -x2 skakelaars -RGB LED

- kabels varios

Stap 1: Stap 1: Imprimir Todas Las Piezas De La Estructura

Stap 1: Imprimir Todas Las Piezas De La Estructura
Stap 1: Imprimir Todas Las Piezas De La Estructura

Es necesario imprimir todas las piezas.

Aqui podreis encontrar todos los archivos.stl:

Ons kan dit met die volgende inligting weergee:

materiaal: PLA

invulling: 25%

laaghoogte: 0,12

spoed: 55 mm/s

Stap 2: Montaje De La Estructura

Montaje De La Estructura
Montaje De La Estructura

Para el montaje de la estructura recomendamos seguir la guía del author for las piezas 3D:

guía:

Daar is geen noodsaaklike instruksies vir die funksionering van 'n robot wat u nou kan gebruik nie, maar u kan dit ook gebruik.

Nota: geen fijéis los tornillos de los servos antes de calibrarlos en el apartado de código.

Stap 3: Montaje De La Electronica

Montaje De La Electronica
Montaje De La Electronica
Montaje De La Electronica
Montaje De La Electronica
Montaje De La Electronica
Montaje De La Electronica

Daar is 'n lys van komponente wat gebruik kan word vir al die installasies. - Lipo -baterry 7.4V 2700mmAh - x2 servo bestuurder

- x18 mikroservo's SG90s

- webcam playstation oog

-framboos pi

-LM2596 tree af

-x2 skakelaars

- RGB LED

- kabels varios

Dit is belangrik om 2 bedieners te bestuur, wat die brug A0 de la segunda plaas. En este link esta detallado: https://learn.adafruit.com/16-channel-pwm-servo-d… Respecto a los servos el orden en el que conectes los pines es indiferente ya que tendrás que configurar los mas adelante en el código. Explicado en el apartado de código.

Stap 4: Sagteware: Calibraje De Servos

Antes de nada se tiene que configurar los pulsos máximos y minimo de vuestros servos así como los pines donde estén conectados and el archivo hexapod_core.py.

cada servo esta identificado según la leyenda de abajo, por cada servo se tiene que indicar, el pin de conexión al servo driver, pulso minimo, pulso máximo y el ultimo parámetro es por si el servo esta funcionando al revés de como debería, solo tenies que cambiarlo de signo.

"" "joint_key convention: R - regs, L - links F - voor, M - middel, B - agter H - heup, K - knie, A - Enkelsleutel: (kanaal, minimum_puls_lengte, maksimum_puls_lengte)" "" GPIO.setwarnings (Onwaar) GPIO.setmode (GPIO. BOARD)

gesamentlike_eienskappe = {

'LFH': (0, 248, 398, -1), 'LFK': (1, 195, 492, -1), 'LFA': (2, 161, 580, -1), 'RFH': (31, 275, 405, 1), 'RFK': (30, 260, 493, -1), 'RFA': (29, 197, 480, -1), 'LMH': (3, 312, 451, -1), 'LMK': (4, 250, 520, -1), 'LMA': (5, 158, 565, -1), 'RMH': (28, 240, 390, 1), 'RMK': (27, 230, 514, -1), 'RMA': (26, 150, 620, -1), 'LBH': (6, 315, 465, 1), 'LBK': (8, 206, 498, -1), 'LBA': (7, 150, 657, -1), 'RBH': (25, 320, 480, 1), 'RBK': (24, 185, 490, -1), 'RBA': (23, 210, 645, -1), 'N': (18, 150, 650, 1)}

Stap 5: Sagteware: modules

Sagteware: modules
Sagteware: modules

Rekonstruksie van voz:

Para la la implementación de éste módulo hemos hecho úso de la API van Google 'Spraak-na-teks'. Ons kan ook streaming met die wolk van Google stuur, vir antwoorde en teks, en as 'n proses vir die verskaffing van solo's en interaksies.

Vir die poder kan ons die API vir die registrasie van 'n Google Cloud -stelsel gebruik, en dit kan die kredietwaardigheid van die outomatiese outomatiese robot aflaai.

Para guardar las credenciales en una a variable the entorno tenemos que ejecutar el siguiente comando (Raspbian):

uitvoer GOOGLE_APPLICATION_CREDENTIALS = "/tu/ruta/hacia/las/credenciales.json"

U kan ook die spraak-na-teks-API gebruik.

Ons kan dit registreer vir die verspreiding van Google op 'n amptelike bladsy:

Die hoofstroom vir streaming is 'luister_afdruk_loop', 'n besluit om die antwoord op 'n maksimum inskrywing in te voer, en ons kan ook die funksies van die kommando vir 'n robot oproepe of 'n aanwysing vir ons die voz no es reconocido, para que el robot realise un movimiento que simula no haber entendido al usuario.

Die aanpassing van die heksawalker kan opgeberg word

github.com/RLP2019/HEXAWALKER/blob/master/…

PASO 1: INSTALLER OPENCVHome kan 'n professionele installasie van Adrian Rosebrock installeer op die web:

PASO 2: PROBAR LA CAMARA Dit is 'n primêre manier om 'n opencv te installeer, en ons kan ook 'n skripsie en 'n python vir 'n kamera gebruik. Para ello haremos que se abran dos ventanas, una con la imagen original y otra con la imagen en blanco y negro.

invoer numpy as np

voer cv2 in

pet = cv2. VideoCapture (0)

terwyl (Waar): ret, frame = cap.read () grys = cv2.cvtColor (raam, cv2. COLOR_BGR2GRAY) cv2.imshow ('frame', raam) cv2.imshow ('grys', grys) as cv2.waitKey (1) & 0xFF == ord ('q'): breek

cap.release ()

cv2.destroyAllWindows ()

PASO 3: DETECCIÓN DEL COLOR CON OPENCV Para el siguiente paso lo que vamos a realizar es una detección of color. Para ello, primero de todo vamos a realizar un script que nos permita convertir un color en orden BGR a HSV (formato en el que opencv es capaz de interpretar).

invoer sys

invoer numpy as np invoer cv2 blou = sys.argv [1] groen = sys.argv [2] rooi = sys.argv [3] kleur = np.uint8 (

U kan ook die nuutste kleur van die teks gebruik, maar die skrif kan ook gedruk word deur 'n konsole van 'n woord of 'n ander woord, maar ook 'n ander funksie om 'n spesifieke kleur te kies cual dificultaría la detección por problemas de luz o contraste.

Die volgende pas kan met 'n vorige prentjie gekenmerk word, sowel as 'n ander skripsie vir die voorkant. Ons kan nie die resultate in die prentjie sien nie, maar dit kan ook verander word in 'n spesifieke kleur.

voer cv2 in

invoer numpy as np

# Lees die prentjie - Die 1 beteken dat ons die beeld in BGR wil hê

img = cv2.imread ('yellow_object.jpg', 1)

# verander die grootte van die beeld tot 20% in elke as

img = cv2.resize (img, (0, 0), fx = 0.2, fy = 0.2) # skakel BGR -beeld om na 'n HSV -beeld hsv = cv2.cvtColor (img, cv2. COLOR_BGR2HSV)

# NumPy om skikkings te skep om laer en boonste bereik te hou

# Die 'dtype = np.uint8' beteken dat die datatipe 'n 8 bis -heelgetal is

lower_range = np.array ([24, 100, 100], dtype = np.uint8)

upper_range = np.array ([44, 255, 255], dtype = np.uint8)

# skep 'n masker vir die beeld

masker = cv2.inRange (hsv, lower_range, upper_range)

# vertoon beide die masker en die beeld langs mekaar

cv2.imshow ('masker', masker) cv2.imshow ('beeld', img)

# wag totdat die gebruiker op [ESC] druk

terwyl (1): k = cv2.waitKey (0) as (k == 27): breek cv2.destroyAllWindows ()

PASO 4: POSICIONAMIENTO DEL OBJETO En este paso probaremos que una vez la camara se encuentre en funcionamiento y hayamos configurado nuestro rango minimo y máximo de color hsv, que este sea capaz de encontrar las coordenadas x e y del centro de nuest. En este caso lo que crearemos será un script para que cuando el radio de nuestro objeto sea burgemeester 'n 10, dibuje un circulo sobre el objeto y nos vaya mostrando por pantalla la posición en tiempo real sus coordenadas x e y.

# gaan slegs voort as die radius aan 'n minimum grootte voldoen

as radius> 10: # teken die sirkel en sentroïde op die raam, # werk dan die lys van opgespoorde punte op cv2.circle (raam, (int (x), int (y)), int (radius), (0, 255, 255), 2) cv2.circle (raam, middel, 5, (0, 0, 255), -1) # druk middelpunt van sirkel koördinate mapObjectPosition (int (x), int (y)) # as die led is nog nie aan nie, skakel die LED aan as dit nie ledOn: GPIO.output (redLed, GPIO. HIGH) ledOn = True def mapObjectPosition (x, y): print ("[INFO] Object Center coordenates at X0 = {0} and Y0 = {1} ". Formaat (x, y))

Dit is 'n goeie manier om 'n gebruiker te sien, maar ons kan nie 'n werklike rol speel nie, maar ons kan ook nie 'n werklike rol speel nie.

PASO 5: OBJECT TRACKING Llegamos al paso final. Una realzados los anteriores point, estaremos listos for poder configurar un par de metmetros and poner a funcionar nuestra detección. Para ello utilizaremos como anteriormente hemos dicho, los parámetros del color hsv máximo y mínimo para poder crear la máscara y dtectar el objeto.

colorLower = (-2, 100, 100)

colorUpper = (18, 255, 255)

También necesitaremos las coordenadas x e y para el límite derecho y el límite izquierdo elegidos en el paso anterior.

as (x 280):

print ("[ACTION] GIRAR DERECHA") self.hexa.rotate (offset = -15, herhalings = 1)

Dit is 'n realisasie van die voorwaardes wat ons nou kan ontvang, en dit is 220 maaltye. En el caso de que sea más grande, gire a la derecha.

Para el caso en el que se quiera avanzar hacia adelante lo que se realizará es utilizar la variable dónde calculamos el radio para marcar otro límite en caso de proximidad de la pelota. Cuanto mas cerca este la pelota de nuestro robot ¡, más grande será su radio y por tanto más cerca estará nuestro robot en conseguir su objetivo.

as radius <105: self.hexa.walk (swaai = 40, herhalings = 1, verhoog = -30, vloer = 50, t = 0,3)

'N Deel van ons program kan u 'n werklike weergawe van veranderings en kleurveranderings gee.

Aanbeveel: