Descripción general de la mano diestra de cinco dedos de qbrobotics/mano suave qb

Descripción general de la mano diestra de cinco dedos de qbrobotics/mano suave qb

qbmano

1 Instalación del controlador y del paquete ROS

2 Conexión y uso

2.1 Conexión sencilla a qb_hand

roslaunch qb_device_driver communication_handler.launch

Al inicio, escanea los recursos de comunicación en serie conectados a su sistema y muestra una lista de los dispositivos que ha encontrado. De forma predeterminada, nunca vuelve a buscar nuevos dispositivos, aparte de preguntarlo explícitamente durante la inicialización de un Nodo de control.
Este es un ejemplo simple al iniciar Communication Handler con dos dispositivos qbrobotics® conectados en dos puertos USB distintos:

2.2 control GUI

  • Método de GUI abierta:
roslaunch qb_hand_control control.launch standalone:=true activate_on_initialization:=true use_controller_gui:=true

Este método debería ser inútil, simplemente tire de la barra de progreso para controlar el grado de apertura y cierre (0-1) y la velocidad (0-100%) de la pinza.
GUI

Este modo de control es el sugerido para probar que todo funciona como se espera.
Probablemente necesitará esto sólo las primeras veces y para depurar.

2.3 Control de puntos de referencia

En pocas palabras, es dejar que la pinza se mueva de acuerdo con los puntos de referenciaconfig/<robot_name>_waypoints.yaml en el bucle. El formato oficial predeterminado de los waypoints es el siguiente:

waypoints:
  -
    time: [2.0]
    joint_positions:
      qbhand: [0.0]
  -
    time: [4.0, 4.2]
    joint_positions:
      qbhand: [0.8]
  • Comando para iniciar el control del waypoint
roslaunch qb_hand_control control.launch standalone:=true activate_on_initialization:=true use_waypoints:=true device_name:=qbhand

Aviso:

  • Cuando está configurado use_waypoints:=true, ya no se puede configurar.use_controller_gui:=true
  • El formato de nombre del archivo yaml es <robot_name>_waypoints.yaml, por ejemplo, el predeterminado es qbhand_waypoints.yaml , pero hay un parámetro en el archivo yaml (ver arriba) device_name, que está definido de manera predeterminada en device_name, por lo que si desea usar la rutina predeterminada ( codificado como ), asegúrese de volver a pasar los parámetros .control.launch<robot_name>+<device_id>device_nameqbhanddevice_name:=qbhand

2.4 Control API

Simplemente expanda según la idea de qb_device_control.h y qb_device_control.cpp .

2.5 rostopic pubControl mediante envío de tema

De hecho, esto es esencialmente lo mismo que el control de API, ya sea por tema o por acción. Referencia de: ¡Cómo utilizar el paquete !. Pasos específicos:

(1) Conecte e inicie qb_hand

roslaunch qb_hand_control control.launch standalone:=true activate_on_initialization:=true device_id:=1 device_name:=my_hand

Significado del parámetro (puede verlos todos cuando abre el archivo de inicio):

  • independiente : elija si desea iniciar o no el controlador de comunicación, el valor predeterminado es falso.
    Si se establece en true, el comando anterior para conectarse a qb_hand no necesita ejecutarse por separado.
  • enable_on_initialization : Activa el motor en el arranque (el dispositivo no se moverá desde que se reciba la primera referencia de comando).
  • device_id : cada dispositivo tiene su propio ID, debe configurar el del dispositivo real conectado a su sistema (el dispositivo qb único se ignora directamente y solo debe configurarse cuando hay varios dispositivos).
  • nombre_dispositivo : el nombre de dispositivo único utilizado en las configuraciones del controlador yaml (también en urdf si aún no se especifica allí) (el dispositivo qb único se ignora directamente y solo debe configurarse cuando hay varios dispositivos). Otros parámetros que se pueden usar
    :
  • use_rviz : elija si desea utilizar rviz o no.
  • use_controller_gui :
  • use_waypoints : elija si desea utilizar o no las referencias de los puntos de ruta. Control de punto de referencia

(2) Enviar información de control (usar finalización de tabulación )

rostopic pub -1 /my_hand/control/my_hand_synergy_trajectory_controller/command trajectory_msgs/JointTrajectory "header:
  seq: 0
  stamp:
    secs: 0
    nsecs: 0
  frame_id: ''
joint_names:
- 'my_hand_synergy_joint'
points:
- positions: [0.5]
  velocities: [0]
  accelerations: [0]
  effort: [0]
  time_from_start: {secs: 1, nsecs: 0}"

Supongo que te gusta

Origin blog.csdn.net/lyh458/article/details/118423300
Recomendado
Clasificación