viernes, 25 de junio de 2010

Comandos básicos para navegar:

Bueno pues este es un resumen de los comandos básicos utilizados en ROS.

*rospack:
rospack es un programa en forma de línea de comando utilizado para encontrar packages entre todo el bosque de codigo en una distribución típica de ROS, obtener información acerca de los packages encontrada en el sistema de archivos. Además permite obtener una lista de los stacks disponibles, calcular la dependencia entre stacks asi como para obtener “build information”.

Se tienen las siguientes aplicaciones de rospack:

$ rospack [options] [package]
Allowed commands:
help
find [package]
list
list-names
langs
depends [package] (alias: deps)
depends1 [package] (alias: deps1)
depends-manifests [package] (alias: deps-manifests)
depends-indent [package] (alias: deps-indent)
depends-why --target= [package] (alias: deps-why)
vcs [package]
vcs0 [package]
depends-on [package]
depends-on1 [package]
export [--deps-only] --lang= --attrib= [package]
cflags-only-I [--deps-only] [package]
cflags-only-other [--deps-only] [package]
libs-only-L [--deps-only] [package]
libs-only-l [--deps-only] [package]
libs-only-other [--deps-only] [package]
profile [--length=] [--zombie-only]
plugins --attrib= [--top=] [package]

If [package] is omitted, the current working directory
is used (if it contains a manifest.xml).


Estos comandos imprimen información acerca de los ROS packages. Todos esos comandos imprimen sus resultados en stdout mientras que los errores son dirigidos a stderr para no confundir programas que esten ejecutando a rospack como un subproceso.

A continuación se desglozan los diferentes comandos:

3.1 rospack help :
Imprime mensaje de ayuda.

3.2 rospack find
find [package]
Imprime la dirección completa de en donde se encuentra el package mencionado, si el package no existe aparece una línea en blanco.

ej.
$ rospack find roscpp
/Users/homer/code/ros/core/roscpp

3.3 rospack list
list
Imprime en líneas separadas el nombre del package seguido por su dirección de localización de todos los packages ubicados en el punto señalado.

ej.
$ rospack list | grep visualization
wxpropgrid /home/kwc/ros-pkg/visualization/wxpropgrid
rviz /home/kwc/ros-pkg/visualization/rviz
visualization_msgs /home/kwc/ros-pkg/visualization_common/visualization_msgs
ogre /home/kwc/ros-pkg/visualization_common/ogre
ogre_tools /home/kwc/ros-pkg/visualization_common/ogre_tools
list-names:
Imprime los nombres de todos los packages en una lista.

3.4 rospack langs :
langs
Este comando se encarga de enlistar todas las librerías de idioma disponibles.

ej.
$ rospack langs
roscpp rospy

3.5 rospack dpeends, depends1, depends-manifests, depends-indent, depends-why
depends [package]:
Imprime una lista de todas las dependencias del package.

ej.
$ rospack depends map_server
gtest
genmsg_cpp
roslib
xmlrpc++
rosthread
roscpp
std_msgs
std_srvs
sdl
ijg_libjpeg
sdl_image
depends1 [package]
Imprime una lista de las dependencias inmediatas del package.
depends-manifests [package]
Imprime una lista de todos los manifest.xml de todas las dependencias del package.
depends-indent [package]
Imprime una lista entera de todas las dependencias en cadena del package.
Depends-why –target=TARGET[package](new in ROS 0.11)
Imprime una lista de todas las dependencias en cadena al TARGET


3.6 rospack vcs, vcs0
vcs [package]
Imprime una lista de todas las pestñas (version control) del manifest.xml y de todas sus dependencias.
vcs0[package]
Funciona igual que el vcs solamente que imprime información únicamente del package en cuestión y no de sus dependencias.

3.7 rospack depends-on, depends-on1
depends-on [package]
Imprime una lista de todos los paqckages que dependen del package base.
Depends-on1 [package]
Imprime una lista de todos los packages que dependen directamente del package en cuestión.
ej.
$ rospack depends-on1 roslang
roscpp
rospy
rosoct
roslisp

3.8 rospack export
export –lang=LANGUAJE –attrib=ATTRIBUTE [package]
Imprime una lista de [export][LANGUAGE ATTRIBUTE=""/][/export] valores del manifest.xml-
OJO!!: Packages cannot contain packages. Esto quiere decir que un package no puede estar dentro de otro package, un package solo pued estar dentro de un stack, entonces los packages pueden interactuar y depende entre sí pero no estas anidados. Un stack es un con junto de packages que en conjunto generan una herramienta en específico.
Manifest.xml
Los manifest contienen información importante acerca de un package, la información más básica que contienen es:




Existen otros tags opcionales, estos se describen a detalle en el wiki.
Stacks:
Los stacks son conjuntos de packages con una intención sencilla y simple pero concreta, con esto quiero decir que hacen una tarea en específico.
Stack manifest.
El manifest de un stack cumple el mismo fin que el manifest.xml de un package solo que en este caso es para un stack.
--------------
3.1 Utilizando rospack y rosstack:
rospack y rosstack son parte del rospack suite. Te permiten obtener información acerca de los pakages y stacks.
Usage:
$ rospack find [package_name]
$ rosstack find [stack_name]
Example:
$ rospack find roscpp
Would return:
YOUR_INSTALL_PATH/ros/core/roscpp

3.2 roscd
roscd es parte del rosbash suite.Te permite cambiar de directoria directamente al directorio de un package o stack.
Nota: Para saber en que directorio te encuentras actualmente puedes revisarlo con pwd.

3.2.1 subdirectorios.
También te puedes mover a un subdirectorio de algún package o stack
Try:
$ roscd roscpp/include
$ pwd
You should see:
YOUR_INSTALL_PATH/ros/core/roscpp/include

3.3.1 Casos especiales de roscd
En caso de poner roscd y nadamas, osease sin ningún otro argumento te envía a $ROS_ROOT osea al directorio donde instalaste ROS.
roscd without an argument will take you to $ROS_ROOT. Try:
$ roscd
$ pwd
You should see:
YOUR_INSTALL_PATH/ros
Nota: echo $ROS_ROOT te indica donde está dicho directorio.

3.3.2: roscd log
roscd log te lleva a donde se encuentran los log files de ROS.

3.4 rosls
rosls funciona de lamisma forma que funciona ls en la terminal de ubuntu solamente que en este caso es para ROS.
ej.
Usage:
$ rosls [locationname[/subdir]]
Example:
$ rosls roscpp_tutorials
Would return:
add_two_ints_client listener_unreliable
add_two_ints_server listener_with_tracked_object
add_two_ints_server_class listener_with_userdata
anonymous_listener Makefile
babbler manifest.xml
CMakeLists.txt node_handle_namespaces
custom_callback_processing notify_connect
listener srv
listener_async_spin talker
listener_multiple time_api
listener_single_message timers
listener_threaded_spin

3.5 Tab Completion
Esta característica trata exclusivamente de que al momento de que escribes algún comando od irección larga y repetitiva puedes apretar tabulador para autocompletar la línea. Cuando hay varias opciones las despliega.

No hay comentarios:

Publicar un comentario