Initialize FFG left-glove L20 teleoperation workspace with guarded trial modes

This commit is contained in:
2026-09-15 15:14:32 +08:00
commit a9013afdc8
816 changed files with 71500 additions and 0 deletions
+40
View File
@@ -0,0 +1,40 @@
#!/usr/bin/env bash
set -eo pipefail
cd "$(dirname "$0")/.."
source /opt/ros/jazzy/setup.bash
source install/setup.bash
export ROS_DOMAIN_ID=74
export ROS_AUTOMATIC_DISCOVERY_RANGE=LOCALHOST
case "${1:-}" in
glove)
exec ros2 run linkerhand_retarget handretarget --ros-args \
-p calibration:=false -p ports:='["/dev/ttyUSB0"]' -p baudrate:=2000000 \
-r /cb_left_hand_control_cmd:=/ffg_trial/left_cmd \
-r /cb_left_hand_matrix_touch:=/ffg_trial/unused_left_touch \
-r /cb_right_hand_matrix_touch:=/ffg_trial/unused_right_touch \
-r /hand_teleop_param:=/ffg_trial/unused_params
;;
hand|half|full|follow)
scale=0.0
slew=10.0
speed=30
confirmation=ARM
case "$1" in
hand) echo '相对当前位置 +/-10 SDK单位小幅测试。' ;;
half) scale=0.5; confirmation=ARM50; echo '50%位置映射:目标=启动时机械手位置+0.5*(手套映射位置-启动时机械手位置)。' ;;
full) scale=1.0; confirmation=ARM100; echo '100%标定位置映射。必须先完成50%空载检查;不是满速/满力。' ;;
follow) scale=1.0; slew=60.0; speed=60; confirmation=FOLLOW; echo '完整位置跟随档:仅在慢速全范围已验证正常后使用。' ;;
esac
echo "空载测试,速度${speed}、目标缓变${slew}单位/秒。收到手套数据后可能立即开始运动。不是急停保护。"
read -r -p "确认周围无人、无夹持物且可立即断电,输入 $confirmation:" answer
[[ "$answer" == "$confirmation" ]] || exit 1
exec ros2 run linker_hand_ros2_sdk linker_hand_sdk --ros-args \
-p hand_type:=left -p hand_joint:=G20 -p can:=can0 \
-p is_touch:=false -p modbus:=None -p safe_trial:=true \
-p trial_motion_scale:="$scale" \
-p trial_slew_rate:="$slew" -p trial_motor_speed:="$speed" \
-p state_poll_rate:=10.0 -p velocity_poll_rate:=2.0 \
-r /cb_left_hand_control_cmd:=/ffg_trial/left_cmd
;;
*) echo "用法:bash tools/ffg_trial.sh glove|hand|half|full|follow"; exit 2 ;;
esac