0% encontró este documento útil (0 votos)
8 vistas7 páginas

Robot de desmalezado con Raspberry Pi

El documento describe la construcción de un robot agrícola utilizando una Raspberry Pi y componentes como servomotores, una cámara y una estructura ligera. Se detallan aspectos de diseño mecánico, visión artificial para detectar maleza, control del brazo robótico mediante cinemática inversa, y programación en Python. Además, se sugieren mejoras como navegación autónoma y comunicación remota, junto con recursos útiles para el desarrollo del proyecto.

Cargado por

Cristian David
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
8 vistas7 páginas

Robot de desmalezado con Raspberry Pi

El documento describe la construcción de un robot agrícola utilizando una Raspberry Pi y componentes como servomotores, una cámara y una estructura ligera. Se detallan aspectos de diseño mecánico, visión artificial para detectar maleza, control del brazo robótico mediante cinemática inversa, y programación en Python. Además, se sugieren mejoras como navegación autónoma y comunicación remota, junto con recursos útiles para el desarrollo del proyecto.

Cargado por

Cristian David
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

1.

Componentes principales
Asegúrate de tener estos elementos:
 Cámara: Una cámara compatible con Raspberry Pi (como la
Raspberry Pi Camera Module).
 Servomotores: 3 servomotores para los 3 grados de libertad
(rotación del brazo, movimiento vertical y movimiento de arrastre).
 Estructura: Diseñada en Inventor, con materiales ligeros pero
resistentes (como aluminio o plástico reforzado).
 Placa de control: Raspberry Pi (recomiendo la Raspberry Pi 4 por su
potencia).
 Fuente de alimentación: Panel solar y baterías (por ejemplo, una
batería LiPo).
 Herramienta: Una cabeza de azada pequeña o una herramienta
similar para arrancar maleza.
 Ruedas y motorización: Para mover el robot alrededor de la planta.

2. Diseño mecánico
 Brazo robótico: Diseña el brazo en Inventor con 3 grados de
libertad:
1. Rotación del brazo: Para mover la herramienta alrededor de
la planta.
2. Movimiento vertical: Para bajar y subir la herramienta.
3. Movimiento de arrastre: Para rascar la tierra y arrancar la
maleza.
 Base móvil: Asegúrate de que el robot pueda moverse suavemente
alrededor de la planta. Usa ruedas motorizadas y un chasis estable.
 Herramienta: Diseña una cabeza de azada ligera pero efectiva para
arrancar maleza.

3. Visión artificial
 Detección de maleza:
o Usa una cámara y un modelo de visión artificial entrenado para
detectar maleza.
o Puedes usar OpenCV y TensorFlow o YOLO (You Only Look
Once) para entrenar un modelo de detección de objetos.
o Recopila imágenes de maleza y entrena el modelo para que
distinga entre maleza y plantas cultivadas.
 Coordenadas de la maleza:
o Una vez detectada la maleza, calcula sus coordenadas en el
espacio (usando la cámara y la posición del brazo).

4. Control del brazo


 Cinemática inversa:
o Implementa un algoritmo de cinemática inversa para calcular
los ángulos de los servomotores necesarios para mover la
herramienta a la posición de la maleza.
o Puedes usar bibliotecas como numpy en Python para hacer
estos cálculos.
 Movimiento de arrastre:
o Programa el brazo para que baje la herramienta, realice un
movimiento recto (arrastre) y luego suba.

5. Programación
Aquí tienes un esquema básico en Python para el control del brazo y la
detección de maleza:
python
Copy
import cv2
import numpy as np
from picamera import PiCamera
from time import sleep
import [Link] as GPIO

# Configuración de la cámara
camera = PiCamera()
[Link] = (640, 480)

# Configuración de los servomotores


[Link]([Link])
servo_pins = [11, 13, 15] # Pines para los 3 servomotores
for pin in servo_pins:
[Link](pin, [Link])

# Función para mover un servomotor


def move_servo(pin, angle):
pwm = [Link](pin, 50) # 50 Hz (frecuencia del servo)
[Link](2.5) # Iniciar en 0 grados
duty = angle / 18 + 2.5
[Link](duty)
sleep(1)
[Link]()

# Función para detectar maleza


def detect_weed():
[Link]('[Link]')
image = [Link]('[Link]')
# Aquí implementa tu modelo de detección de maleza
# Retorna las coordenadas (x, y) de la maleza
return (100, 200) # Ejemplo de coordenadas

# Función para mover el brazo a una posición


def move_arm_to(x, y):
# Implementa la cinemática inversa aquí
angle1 = x # Ejemplo de cálculo de ángulos
angle2 = y
angle3 = 90 # Ángulo fijo para el arrastre
move_servo(servo_pins[0], angle1)
move_servo(servo_pins[1], angle2)
move_servo(servo_pins[2], angle3)

# Bucle principal
while True:
x, y = detect_weed()
move_arm_to(x, y)
sleep(2) # Esperar antes de la siguiente detección

6. Alimentación y energía
 Panel solar: Usa un panel solar de al menos 10W para cargar la
batería.
 Batería: Una batería LiPo de 12V y suficiente capacidad (por ejemplo,
5000mAh) para alimentar el Raspberry Pi y los servomotores.
 Regulador de voltaje: Asegúrate de usar un regulador de voltaje
para proteger el Raspberry Pi y los servomotores.

7. Mejoras adicionales
 Navegación autónoma: Usa sensores ultrasónicos o LiDAR para que
el robot se mueva alrededor de la planta sin chocar.
 Comunicación: Implementa Wi-Fi o Bluetooth para monitorear y
controlar el robot desde una aplicación móvil.
 Simulación: Usa software como Gazebo o CoppeliaSim para simular
el robot antes de construirlo.

8. Recursos útiles
 OpenCV: Para procesamiento de imágenes y visión artificial.
 TensorFlow/YOLO: Para entrenar el modelo de detección de maleza.
 Raspberry Pi GPIO: Para controlar los servomotores.
 Inventor: Para diseñar la estructura del robot.
¡Claro! Vamos a hacer los cálculos a mano paso a paso, utilizando las
correcciones que te proporcioné. Esto te ayudará a entender cómo se
obtienen los ángulos del brazo robótico para alcanzar una posición objetivo.

Datos del problema:


 Coordenadas objetivo: (x,y,z)=(200,100,50)
(x,y,z)=(200,100,50) mm.
 Longitudes del brazo:
o Lbase=110.85Lbase=110.85 mm (altura de la base al hombro).

o L1=150L1=150 mm (longitud del primer eslabón, hombro a


codo).
o L2=225.10L2=225.10 mm (longitud del segundo eslabón, codo
a herramienta).
o Lherramienta=30Lherramienta=30 mm (longitud de la
herramienta).

Paso 1: Calcular θ1θ1 (rotación de la base)


El ángulo θ1θ1 se calcula como el ángulo entre el eje XX y la proyección del
efector final en el plano XYXY.

θ1=arctan⁡(yx)θ1=arctan(xy)
Sustituyendo los valores:

θ1=arctan⁡(100200)=arctan⁡(0.5)≈26.565∘θ1=arctan(200100
)=arctan(0.5)≈26.565∘

Paso 2: Calcular la distancia horizontal rr y la altura


efectiva zeffzeff
La distancia horizontal rr es la distancia desde el centro de la base hasta la
proyección del efector final en el plano XYXY. La altura efectiva zeffzeff es la
altura del efector final respecto al hombro.
r=x2+y2r=x2+y2zeff=z−Lbasezeff=z−Lbase
Sustituyendo los valores:
r=2002+1002=40000+10000=50000≈223.607 mmr=2002+1002
=40000+10000=50000≈223.607mmzeff=50−110.85=−60.85 mmzeff
=50−110.85=−60.85mm

Paso 3: Calcular la distancia dd desde el hombro al efector final


La distancia dd es la distancia en línea recta desde el hombro hasta el
efector final (sin considerar la herramienta).
d=r2+zeff2d=r2+zeff2
Sustituyendo los valores:
d=223.6072+(−60.85)2=50000+3702.72≈53702.72≈231.74
mmd=223.6072+(−60.85)2=50000+3702.72≈53702.72≈231.74mm

Paso 4: Calcular θ3θ3 (ángulo del codo)


El ángulo θ3θ3 se calcula usando la ley de cosenos en el triángulo formado
por L1L1, L2L2 y dd.

cos⁡(θ3)=L12+L22−d22⋅L1⋅L2cos(θ3)=2⋅L1⋅L2L12+L22−d2
Sustituyendo los valores:

cos⁡(θ3)=1502+225.102−231.7422⋅150⋅225.10cos(θ3
)=2⋅150⋅225.101502+225.102−231.742
cos⁡(θ3)=22500+50670.01−53702.7267530≈19467.2967530≈0.288cos(θ3
)=6753022500+50670.01−53702.72≈6753019467.29
≈0.288θ3=arccos⁡(0.288)≈73.26∘θ3=arccos(0.288)≈73.26∘

Paso 5: Calcular θ2θ2 (ángulo del hombro)


El ángulo θ2θ2 se calcula usando la ley de senos y considerando el
ángulo αα entre rr y dd.

α=arctan⁡(zeffr)α=arctan(rzeff
)β=arctan⁡(L2⋅sin⁡(θ3)L1+L2⋅cos⁡(θ3))β=arctan(L1+L2⋅cos(θ3)L2⋅sin(θ3)
)θ2=α−βθ2=α−β
Sustituyendo los valores:

α=arctan⁡(−60.85223.607)≈arctan⁡(−0.272)≈−15.23∘α=arctan(223.607−60.
85
)≈arctan(−0.272)≈−15.23∘β=arctan⁡(225.10⋅sin⁡(73.26∘)150+225.10⋅cos⁡(73.
26∘))β=arctan(150+225.10⋅cos(73.26∘)225.10⋅sin(73.26∘)
)β=arctan⁡(225.10⋅0.957150+225.10⋅0.288)≈arctan⁡(215.34214.67)≈arctan⁡(
1.003)≈45.09∘β=arctan(150+225.10⋅0.288225.10⋅0.957
)≈arctan(214.67215.34
)≈arctan(1.003)≈45.09∘θ2=−15.23∘−45.09∘≈−60.32∘θ2
=−15.23∘−45.09∘≈−60.32∘

Resumen de ángulos calculados:

 θ1≈26.565∘θ1≈26.565∘ (rotación de la base).

 θ2≈−60.32∘θ2≈−60.32∘ (ángulo del hombro).


 θ3≈73.26∘θ3≈73.26∘ (ángulo del codo).

Interpretación:

 θ1θ1 indica que el brazo debe rotar 26.565∘26.565∘ en el plano XYXY.

 θ2θ2 indica que el hombro debe inclinarse hacia abajo 60.32∘60.32∘.

 θ3θ3 indica que el codo debe doblarse 73.26∘73.26∘.

Verificación:
Puedes usar estos ángulos en la función dibujar_brazo para verificar que el
efector final llega a las coordenadas objetivo (200,100,50)(200,100,50).

También podría gustarte