Orodha ya maudhui:

HexaWalker: Hatua 5
HexaWalker: Hatua 5

Video: HexaWalker: Hatua 5

Video: HexaWalker: Hatua 5
Video: МЕЛОДРАМА О ЛЮБВИ И МОДЕ! Нити любви ВСЕ СЕРИИ подряд. Русские сериалы 2024, Julai
Anonim
Image
Image
HexaWalker
HexaWalker

Hemos inahusu mafunzo ya UAB unayotumia hewani ya roboti inayoweza kutumiwa kwa kutumia kamera ya wavuti ikiwa ni pamoja na vifaa vya habari vinavyotumiwa na watu wengi. Enzi ya wazo hacer un robot amistoso que reconociera ordenes de voz y pueda seguir mediante la cámara una pelota. Algo así como una "mascota" rebotica.

Cabe comentar que la estructura que hemos utilizado para nuestro hexapodo la hemos sacado del robot open source Hexy de ArcBotics.

Kiungo cha kiungo cha codigo:

Vifaa

- lipo bateri 7.4V 2700mmAh

- x2 dafruit servo dereva

- x18 servos ndogo SG90s

- jicho la kituo cha kucheza cha webcam

-raspberry pi -LM2596 anguka -x2 swichi - RGB LED

- anuwai za nyaya

Hatua ya 1: Hatua ya 1: Imprimir Todas Las Piezas De La Estructura

Hatua ya 1: Imprimir Todas Las Piezas De La Estructura
Hatua ya 1: Imprimir Todas Las Piezas De La Estructura

Es necesario imprimir todas las piezas.

Aqui podreis encontrar todos los archivos.stl:

Cabe destacar que las hemos impreso con las siguientes propiedades:

nyenzo: PLA

ujazo: 25%

urefu wa safu: 0.12

kasi: 55 mm / s

Hatua ya 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 autor de las piezas 3D:

guía:

No es necesario seguir las instrucciones estrictamente for the buen funcionamiento del robot, ya kila mtu kwa njia hiyo, solo las hemos utilizado como ayuda.

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

Hatua ya 3: Montaje De La Electronica

Montaje De La Elektroniki
Montaje De La Elektroniki
Montaje De La Elektroniki
Montaje De La Elektroniki
Montaje De La Elektroniki
Montaje De La Elektroniki

Orodha ya orodha ya vifaa vya utumiaji vya matumizi ya algunos consejos para el montaje.- lipo baterry 7.4V 2700mmAh - x2 adafruit servo driver

- x18 ndogo servos SG90s

- jicho la uwanja wa kucheza wa webcam

-pilipili ya pi

-LM2596 ondoka

-x2 swichi

- RGB LED

- anuwai za nyaya

Hii ni muhimu kwa dereva 2 wa matunda ya servo, seelde el daraja A0 de la segunda placa. Kiunga hiki kinaweza kutengwa: https://learn.adafruit.com/16-channel-pwm-servo-d… Kuheshimu huduma ya watu kwa njia inayofaa kutaja mihimili ya watu tofauti kwa sababu ya usanidi wa siku hizi. código. Explicado en el apartado de código.

Hatua ya 4: Programu: Calibraje De Servos

Antes de nada se tiene que configurar los pulsos máximos y mínimo de vuestros servos as the como los pines donde estén conectados en 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 mínimo, 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.

Mkutano wa pamoja wa ufunguo: R - kulia, L - kushoto F - mbele, M - katikati, B - nyuma H - kiboko, K - goti, ufunguo wa Ankle: (kituo, kiwango cha chini_pulse_length, maximum_pulse_length) "" "GPIO.setning onyo (Uongo) GPIO.setmode (GPIO. BOARD)

mali_ya pamoja = {

'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)}

Hatua ya 5: Programu: Moduli

Programu: Moduli
Programu: Moduli

Módulo de reconocimiento de voz:

Tumia programu ya Google 'Hotuba-kwa-Nakala' ya Google. Utangazaji unaotiririka kupitia wingu kutoka Google, kwa sababu ya kupata habari zaidi kupitia maandishi, na kwa hivyo unaweza kupata habari kwa njia ya solo peke yako.

Para poder hacer úso de esta API necesitamos tener un proyecto registrado en Google Cloud, and this este descargar las credenciales for poder autenticar el robot.

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

kuuza nje GOOGLE_APPLICATION_CREDENTIALS = "/ tu / ruta / hacia / las / credenciales.json"

Je! Unapenda kujua ukweli wa hali hii ni njia gani ya kuunda maandishi ya API ya hotuba-kwa-maandishi.

El código para realizar el Streaming está proporcionado por google en su pagina oficial, muy bien documentado:

La función mkuu wa utiririshaji wa 'listen_print_loop', ikiwa ni pamoja na kuamua juu ya njia ya upekuzi wa maombi ya kuingiliana kwa maoni, inahusu udhibiti wa hali ya juu kwa njia ya kutumia vifaa vya roboti kwa sababu ya kutokujua, kwa sababu ya kufanya hivyo de voz no es reconocido, para que el robot realice un movimiento que simula no haber entendido al usuario.

El código adaptado se encuentra en el repositorio de git Hexawalker

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

PASO 1: Sakinisha kufunguliwa kwa Wahusika

PASO 2: PROBAR LA CAMARA Primero de todo una vez instalado opencv, tazama wale wanaosema hacer es un pequeño script en chatu kwa probar la camara. Para ello haremos que se abran dos ventanas, una con la imagen original y otra con la imagen en blanco y negro.

kuagiza numpy kama np

kuagiza cv2

cap = cv2. Ukamataji wa Video (0)

wakati (Ukweli) (1) & 0xFF == ord ('q'): kuvunja

cap. tafadhali ()

cv2.destroyAll Windows ()

PASO 3: DETECCIÓN DEL DEL RANG CON OPENCV Para el siguiente paso lo que vamos a realizar es una detección de color. Kwa sababu hiyo, maelezo ya kwanza yanaweza kutekelezwa kwa hati na hati zinazoruhusu kubadilisha rangi kwa BGR na HSV (fomu ya utaftaji kazi ya utafsiri).

kuagiza sys

kuagiza numpy kama np kuagiza cv2 bluu = sys.argv [1] kijani = sys.argv [2] nyekundu = sys.argv [3] rangi = np.uint8 (

Una vez hayamos hecho la conversión de nuestro color deseado, el script nos printará por consola el límite por debajo y el límite por arriba, el cual nos servirá para que la detección tenga una gama de colores entre dos colores hsv y no únicamente uno, tazama cual dificultaría la detección por problemas de luz o tofauti.

El siguiente paso es con una picha ya previamente realizada, crear otro script el cual nos servirá para probar el paso anterior. Je! Ni nini maana zaidi ya matokeo yanayotokana na picha na alama za picha (kwa rangi moja unaona kigunduzi) inabadilishwa na kutafutwa, historia itafanywa na watu wote ambao hawajapata sababu nyingine.

kuagiza cv2

kuagiza numpy kama np

# Soma picha - 1 inamaanisha tunataka picha katika BGR

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

# saizi imag hadi 20% katika kila mhimili

img = cv2.resize (img, (0, 0), fx = 0.2, fy = 0.2) # kubadilisha picha ya BGR kuwa picha ya HSV hsv = cv2.cvtColor (img, cv2. COLOR_BGR2HSV)

# NumPy kuunda safu za kushikilia safu ya chini na ya juu

# "Dtype = np.uint8" inamaanisha kuwa aina ya data ni nambari 8 kidogo

chini_range = np.raray ([24, 100, 100], dtype = np.uint8)

juu_range = np.raray ([44, 255, 255], dtype = np.uint8)

# tengeneza kinyago cha picha

mask = cv2.in Masafa (hsv, chini_range, juu_range)

# onyesha kinyago na picha kando kando

cv2.imshow ('mask', mask) cv2.imshow ('picha', img)

# subiri kwa mtumiaji kubonyeza [ESC]

wakati (1): k = cv2.waitKey (0) ikiwa (k == 27): kuvunja cv2.destroyAllWindows ()

PASO 4: POSICIONAMIENTO DEL OBJETO Hii ndio njia inayofaa ya kufanya kazi kwa njia ya kujifurahisha na hayamos configurado nuestro rango mínimo na mousximo ya rangi ya hsv, na hii ni sehemu ya bahari ambayo inaweza kutekelezwa. Kwa kweli hii ni kazi ya maandishi ya maandishi kwa njia ya redio ya nuestro objeto meya wa baharini kwa miaka 10, na kufanya hivyo kwa njia ya redio kwa watu wengi na kwa wale wanaohusika sana kwa sababu ya ukweli wa kweli.

# endelea tu ikiwa radius inakidhi ukubwa wa chini

ikiwa radius> 10: # chora mduara na sentimita kwenye fremu, # kisha sasisha orodha ya alama zilizofuatiliwa cv2.circle (fremu, (int (x), int (y)), int (radius), (0, 255, 255), 2) cv2. mduara (fremu, kituo, 5, (0, 0, 255), -1) # kituo cha kuchapisha cha duara kinaratibu ramaniObjectPosition (int (x), int (y)) # ikiwa iliyoongozwa ni haijawashwa tayari, washa LED ikiwa haikuongozwaOn: GPIO.output (redLed, GPIO. HIGH) ledOn = True def mapObjectPosition (x, y): chapa ("[INFO] Object Center inalingana saa X0 = {0} na Y0 Fomati = {1} "(x, y))

Kwa sababu hiyo watu watafahamika kuwa watafsiriwa kuwa ni watu wanaotumiwa na watu wengi, kwa sababu watafanya hivyo kwa sababu ya vifaa vyao vya kufanya roboti, na kufanya hivyo ni kwamba hawatatambui kwa sababu hawawezi kufanya hivyo.

PASO 5: KUFUATILIA MALENGO Llegamos al paso fainali. Unaweza kupata habari zaidi juu ya malengo yako, orodha za orodha kwa mfumo wa usanidi kwa njia ya parasmetros na kutoa maoni ya utaftaji wa habari. 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.

rangiLower = (-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.

ikiwa (x 280):

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

Kwa kweli, sheria hizi zinaweza kutekelezwa kwa sababu ya hali ya juu na zaidi ya miaka 25, na utafute huduma hiyo. 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 ¡, the most great será su radio y por tanto más cerca estará nuestro robot en conseguir su objetivo.

ikiwa radius <105: self.hexa.walk (swing = 40, marudio = 1, iliyoinuliwa = -30, sakafu = 50, t = 0.3)

Sehemu moja ya mpango huu wa mipango ya bure itatekelezwa kwa njia ya msingi na itafikia wakati huo huo.

Ilipendekeza: