No puedo ver una razón por la que no debería ser, veamos el problema de los 50 puntos aleatorios acumulados de un sensor a medida que un robot se mueve, en primer lugar, por encima de todo lo demás, los datos del robot tendrían que ser limpiados y para eso usaremos una IA algoritmo. Para que el registro implemente esto, sería una buena idea utilizar C ++ junto con una API de robótica probada, primero consideremos que los errores en sí mismos surgen de la electrónica del sensor donde las señales electrónicas pueden no ser interpretadas correctamente por el sensor, por ejemplo, todos los sensores. tener lo que se denomina una sensibilidad que es básicamente el cambio mínimo que el sensor puede detectar, dada una sensibilidad de 0.5 grados Celsius y un cambio real de 0.2 grados significa que el sensor no notará el cambio de temperatura, por lo tanto es una causa de error , por lo que al modelar parámetros en robótica es aconsejable utilizar una distribución de densidad probabilística [math] B (x) [/ math], que es en esencia la creencia de que existe un obstáculo más que un conocimiento firme de que se ha encontrado un obstáculo. Detectado, esto es robótica fundamental. En esencia, esto significa que los robots realmente creen en la presencia de obstáculos y si esa creencia está por encima de un cierto umbral, entonces el robot asume que el obstáculo está presente, si esa creencia cae por debajo de cierto valor, entonces el robot puede creer que probablemente haya una error en la lectura del sensor en algún lugar
Veamos la segunda razón, la constante de tiempo, los controladores tienen lo que se conoce en robótica como la constante de tiempo del controlador, [math] T [/ math], tau, que es un parámetro que depende del sistema que se está modelando:

Por lo tanto, para un sistema fluídico, la constante de tiempo sería diferente (al medir los niveles de agua) de un sistema de medición de temperatura. En realidad, la constante de tiempo es el tiempo que toma el controlador para notar el cambio, este proceso también producirá errores inherentemente, por esta razón, todas las lecturas del sensor deberán “limpiarse”
#ifndef RANSAC_H
#define RANSAC_H
#include
#include “math.h”
#include
#include
#include
estructura vertex2D
{
int x;
int y
};
clase RANSAC {
protegido:
double modelFitness (vector testData, float params [2]);
void linearLeastSquares (vector fittingData, float params [2]);
flotar n;
flotar k;
flotar t;
flotar d;
público:
FILTRAR();
ajuste vacío ();
datos vectoriales , bestConsensusSet;
float bestModel [2], LLSModel [2];
};
#terminara si
Básicamente, manteniendo el concepto de archivos de cabecera ordenados y archivos de implementación, básicamente se limpiarán los datos utilizando OOP
vector :: iterador it;
int i = 0;
para (es = ransac.data.begin (); it! = ransac.data.end (); ++ it)
{
sf :: Forma de CircleShape (2);
shape.setOrigin (2,2);
shape.setPosition (it-> x, it-> y);
shape.setFillColor (sf :: Color :: Black);
window.draw (forma);
i ++;
}
// Dibuja los mejores datos de ajuste
i = 0;
para (it = ransac.bestConsensusSet.begin (); it! = ransac.bestConsensusSet.end (); ++ it)
{
sf :: Forma de CircleShape (2);
shape.setOrigin (2,2);
shape.setPosition (it-> x, it-> y);
shape.setFillColor (sf :: Color :: Green);
window.draw (forma);
i ++;
i ++;
}
// dibujar linefits
sf :: Vertex RANSACline [2] =
{
sf :: Vertex (sf :: Vector2f (0, ransac.bestModel [1]), sf :: Color :: Red),
sf :: Vertex (sf :: Vector2f (800.0, ransac.bestModel [0] * 800.0 + ransac.bestModel [1]), sf :: Color :: Red)
};
window.draw (RANSACline, 2, sf :: Lines);
sf :: Vertex LLSline [2] =
{
sf :: Vertex (sf :: Vector2f (0, ransac.LLSModel [1]), sf :: Color :: Blue),
sf :: Vertex (sf :: Vector2f (800.0, ransac.LLSModel [0] * 800.0 + ransac.LLSModel [1]), sf :: Color :: Blue)
};
window.draw (LLSline, 2, sf :: Lines);
escaparate();
}
Básicamente, en main () llamaremos a nuestra biblioteca de renderización y instancia de nuestra clase que a través de las funciones de miembro de clase
double modelFitness (vector testData, float params [2]);
calculará la idoneidad de la gráfica de datos y las representará gráficamente en una interfaz, en esencia estamos construyendo una API de visualización de datos que mostrará gráficamente los datos del sensor recopilados por el robot.
Lo que hemos resuelto aquí es un problema en el que los datos se recopilan de un sensor y se utiliza AI / ML para filtrar los datos y luego pasarlos a una ventana de renderizado. Su C ++ AI / robótica / gráfica en una única solución que, por cierto, era un encabezado distintivo que usé una vez en Quora.
Sí, los problemas que resolvemos los ingenieros de robótica hacen que el uso sea relevante para la sociedad para responder a su pregunta.
Después de hacer esto, todavía tenemos que aplicar un algoritmo de agrupación en clústeres para agrupar los datos en conjuntos, esto se conoce comúnmente como un problema de clasificación en AI puro. Así que creo que la robótica es una carrera genial.