cosacr
![]() |
![]() |
![]() |
Título del Test:![]() cosacr Descripción: cosacrhdudfu jhjhj |




Comentarios |
---|
NO HAY REGISTROS |
Sobre el método de localización basado en filtro de partículas en 2D: La pose estimada no tiene por qué coincidir con el ground-truth, por lo que habrá error en la localización. La pose estimada del robot se puede obtener de diferentes formas a partir de la nube de partículas. De todas las partículas, una al menos coincide con la posición odométrica del robot. De todas las partículas, una al menos coincide con la posición real ground-truth del robot. En ROS2, marca las opciones correctas referentes a la publicación y subscripción de topics: Ninguna de las otras es correcta. Un nodo puede publicar en varios topics diferentes, pero no subscribirse a varios topics (daría error en compilación). Un nodo puede publicar varios topics y además subscribirse a varios topics, pero sólo si estos topics pertenecen al mismo paquete. Un nodo puede publicar en varios topics y además subscribirse a varios topics de cualquier paquete. Un nodo que publica por un topic no puede ser a la vez servidor de un servicio. En ROS2, la instrucción variable=this->create_service<Service>("name", std::bind(&Class::function, this, 1,_2_3));. Es incorrecta; no es la forma de declarar un servidor de servicios. Permite a un nodo suscribirse al topic "name", estableciendo Class::function como función de callback. Declara un servidor de servicios, que maneja un servicio denominado "function". Las demás respuestas son falsas. Declara un servidor de servicios, que maneja un servicio denominado "name", cuyo tipo es Service. El nodo A publica mensajes por el topic T, al que está suscrito el nodo B. ¿Qué ocurre si el nodo B deja de funcionar?. La publicación se queda suspendida hasta que un nodo C se suscriba al topic. El nodo A se cierra automáticamente al no tener suscriptores. Las demás respuestas son erróneas. El nodo A ya no podrá publicar más mensajes por dicho topic, ya que no hay nadie suscrito. Sobre la función de asignación de pesos en la localización basada en filtro de particulas: Se puede usar casi cualquier función, con tal que sea continua y derivable. Asignará un peso proporcional a la distancia desde el robot (ground-truth) hasta el landmark seleccionado. Es una función f(x) donde x es la pose odométrica del robot. Es una función f(x) donde x es la pose estimada del robot. Las demás son falsas. En una aplicación típica de robótica móvil Selecciona una: No hacen falta sensores proprioceptivos, ya que toda la información la podemos obtener fácilmente utilizando sensores exteroceptivos. No hacen falta sensores exteroceptivos, ya que no es necesario percibir el entorno. Son necesarios tanto sensores exteroceptivos como proprioceptivos. Se utilizan sensores proprioceptivos, como un laser, para percibir posibles obstáculos en el entorno del robot. En ROS2, el nodo N se subscribe a un topic empleando la siguiente instrucción: sub_this->create_subscription<T>("name",1,std::bind(&myClass::callBack, this,_1)); Selecciona todas las respuestas correctas: El nodo N establecerá la frecuencia a la que se ejecuta la función callBack mediante las instrucciones "rcicpp::Rate" y "sleep". Ninguna de las demás respuestas es correcta. El nodo N no puede controlar la frecuencia a la que se ejecuta la función callBack, pero sí puede controlar la frecuencia a la que se comprueba si hay mensajes por atender en el topic T. El nodo N establecerá la frecuencia a la que se ejecuta la función callBack mediante la llamada a rclcpp::spin(N). La frecuencia a la que se ejecuta la función está indicada en la instrucción, en este caso 1 Hz. El comando colcon build: Sirve para configurar el sistema ROS2. Se ejecuta al abrir una consola. Sirve para compilar nuestro código. Se debe ejecutar siempre en la carpeta raíz del workspace. Se puede ejecutar desde cualquier directorio. ROS2 sabe por defecto donde crear las carpetas install, build y log. Para el método de localización general basado en LSE con modelos no lineales, selecciona todas las respuestas correctas: El ruido no afecta, puesto que es un sistema de localización probabilístico y por tanto robusto al ruido. El ruido no afecta en la realidad, solo en las simulaciones de Matlab por ser cálculos numéricos. Es un método iterativo porque se considera ruido en las medidas sensoriales. Con un sensor perfecto (sin ruido) se obtendría una solución en un solo paso. El ruido asociado al modelo de movimiento no afecta, puesto que es independiente del ruido sensorial. El ruido asociado a las medidas sensoriales sí afecta al resultado. Ninguna de las otras preguntas es correcta. Los sensores laser... Selecciona una o más de una: Son tan pesados que no pueden ser fácilmente instalados en un robot móvil. Son relativamente caros, aunque muy precisos y tienen un alcance considerable. No se utilizan para detección de obstáculos dada su baja resolución angular. Realizan un barrido 2D del entorno mediante la rotación de un espejo en su interior. En ROS2, relacionado con las instrucciones rclcpp::spin y rclcpp::spin_some, marca todas las respuestas correctas: Ambas son funciones que ofrece ROS para atender a los topics a los que el nodo está subscrito, ejecutando las funciones callBack correspondientes. Ninguna de las otras respuestas es correcta. Son iguales, se usa una u otra dependiendo de si queremos publicar a 1Hz o no. La instrucción rclcpp::spin es similar a un bucle infinito en el que se comprueba continuamente si llega algún mensaje por un topic al que estamos suscritos while (rclcpp::ok()) { rclcpp::spin_some(node); }. La instrucción rclcpp::spin_some es similar a un bucle infinito en el que se ejecuta únicamente la instrucción rclcpp::spin. La instrucción rclcpp::spin solo se emplea cuando el nodo está subscrito a más de un topic. El proceso de actualización de las partículas de un sistema localizador basado en filtro de partículas tal como el visto en clase... Selecciona una: Asegura que partículas con poco peso desaparecen. Asegura que al menos una partícula coincide con el ground-truth. Asegura un mayor peso a las partículas que mejor representan la pose del robot. Asegura que no habrá partículas duplicadas, ya que sería ineficiente. EN ROS2, suponiendo que el resto de código es correcto y todas las variables están declaradas en: int main(int argc, char **argv) { int a; a=3; rclcpp::spin(node); a=a*9; RCLCPP_INFO(this->get_logger(), "a vale %d ", a); return 0; } Selecciona una: Se mostrará por pantalla el valor de la variable a, es decir, 27, durante la correcta ejecución del nodo. Dará un error ya que no se ha incluido el bucle while (rclcpp::ok()) para hacer la llamada a rclcpp::spin(node). Durante el correcto funcionamiento del nodo, no se ejecutará ninguna instrucción detrás de rclcpp::spin();. Ninguna de las demás respuestas son válidas. Se mostrará un valor indeterminado de la variable a, ya que dependerá de las funciones de callback implementadas en el programa. En ROS2, el comando: ros2 interface show <nombre_de_servicio>. Las demás respuestas son todas erróneas. Mostrará información del servicio que hemos referenciado por su nombre. Dará un error ya que ros2 interface show solo se aplica a topics, no a servicios. Dará error porque no se le debe pasar el nombre del servicio, sino su tipo. El método de localización general basado en LSE con modelos no lineales Selecciona una: La fórmula utilizada proporciona en un sólo paso la mejor estimación en base a la pose odométrica del robot (semilla) y a las medidas de los landmarks. Permite localizar al robot incluso en ausencia de medidas. Las demás opciones son falsas. No tiene en cuenta que las medidas sensoriales estén afectadas por ruido. |