Mi informacion de contacto
Correo[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Gestión de operaciones ROS
ROS es un marco distribuido multiproceso (nodo), una implementación completa del sistema ROS:
Puede incluir varios hosts;
Hay múltiples espacios de trabajo en cada host;
Cada espacio de trabajo contiene múltiples paquetes de funciones;
Cada paquete de funciones contiene varios nodos (Nodo) y diferentes nodos tienen sus propios nombres de nodo;
Cada nodo también puede configurarse con uno o más temas...
En un sistema ROS multinivel, pueden surgir algunos problemas en su implementación y mantenimiento, tales como,
1. Cómo asociar diferentes paquetes de funciones ---- (paquete de metafunciones)
2. Cómo iniciar varios nodos ROS----(archivo de inicio)
3. Cómo lidiar con los nombres duplicados de paquetes de funciones, nodos, temas y parámetros----(Resolver el problema de los nombres duplicados)
4. Cómo se comunican los nodos en diferentes hosts ---- (comunicación distribuida)
El contenido principal de este capítulo presenta las soluciones a los problemas anteriores en ROS (consulte la tabla de contenido de este capítulo). Los objetivos de aprendizaje esperados también corresponden a los problemas anteriores:
Escenario: completar una función sistemática en ROS puede implicar múltiples paquetes funcionales, como implementar un módulo de navegación de robot, que tiene diferentes paquetes funcionales de subnivel, como mapas, posicionamiento, planificación de rutas, etc. Entonces, cuando la persona que llama instala el módulo, ¿necesita instalar cada paquete de funciones uno por uno?
Obviamente, instalar paquetes de funciones uno por uno es ineficiente. En ROS, se proporciona una forma de empaquetar diferentes paquetes de funciones en un paquete de funciones. Al instalar un determinado módulo de funciones, simplemente llame al paquete de funciones empaquetado. .
MetaPackage es un concepto de sistema de gestión de archivos en Linux. Es un paquete virtual en ROS. No tiene contenido sustancial, pero se basa en otros paquetes de software. De esta manera, podemos considerarlo como un índice de directorio de un libro, que nos dice qué sub. -Los paquetes están en la colección de paquetes y dónde descargarlos.
Por ejemplo:
Para facilitar la instalación del usuario, solo necesitamos este paquete para organizar e instalar juntos otros paquetes de software relacionados.
Paso 1: Primero: crear un nuevo paquete de funciones
Paso 2: Luego: modifique package.xml, el contenido es el siguiente:
<exec_depend>Paquetes de funciones integradas</exec_depend>
…
<export>
<metapackage />
</export>
Paso 3: Finalmente: modifique CMakeLists.txt, el contenido es el siguiente:
cmake_minimum_required(VERSIÓN 3.0.2)
proyecto(demo)
find_package(catkin REQUERIDO)
metapaquete catkin()
Simplemente mantenga las cuatro líneas anteriores y elimine el resto.
Consulte también:
http://wiki.ros.org/catkin/package.xml#Metapaquetes
Ya no estamos familiarizados con el uso de archivos de inicio. En el primer capítulo, presentamos:
Es posible que un programa necesite iniciar varios nodos, como el pequeño estuche de tortuga incorporado de ROS. Si desea controlar el movimiento de la tortuga, debe iniciar varias ventanas, iniciando roscore, el nodo de interfaz de tortuga y el nodo de control del teclado. respectivamente. Si se llama a rosrun cada vez para comenzar uno por uno, obviamente es ineficiente ¿Cómo optimizar?
La estrategia de optimización adoptada es utilizar el comando roslaunch para recopilar el archivo de inicio para iniciar el nodo de administración. En tutoriales posteriores, el archivo de inicio también se utiliza muchas veces.
El archivo de inicio es un archivo de formato XML que puede iniciar múltiples nodos locales y remotos y establecer parámetros en el servidor de parámetros.。
Simplifique la configuración y el inicio de nodos y mejore la eficiencia de inicio de los programas ROS.
Tome Turtlesim como ejemplo para demostrar
paso 1. Cree un nuevo archivo de inicio
Agregue el directorio de inicio en el paquete de funciones, cree un nuevo archivo xxxx.launch en el directorio y edite el archivo de inicio
<launch>
<node pkg=“turtlesim” type=“turtlesim_node” name=“myTurtle” output=“screen” />
<node pkg=“turtlesim” type=“turtle_teleop_key” name=“myTurtleContro” output=“screen” />
</launch>
paso 2. Llamar al archivo de inicio
nombre del paquete roslaunch xxx.launch
Nota: Cuando el comando roslaunch ejecuta el archivo de inicio, primero determinará si se inicia roscore. Si se inicia, no se iniciará nuevamente. De lo contrario, se llamará automáticamente a roscore.
Puede referirse a:
http://wiki.ros.org/roslaunch/XML
https://www.bilibili.com/video/BV1Ci4y1L7ZZ?p=150&spm_id_from=pageDriver&vd_source=15dd2e64f0499027ca66125b65dd2de9