Descripción general de la mano diestra de cinco dedos de qbrobotics/mano suave qb
1 Instalación del controlador y del paquete ROS
- Consulte los pasos de instalación del paquete ROS , que son muy claros. Sin embargo, para conocer el método de agregar usuarios al grupo de puertos serie, consulte ubuntu para agregar el usuario actual al grupo donde se encuentra el puerto serie.
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.
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 endevice_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_name
qbhand
device_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 pub
Control 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 entrue
, 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}"