Clever Hands, Create Everything.
LinkerHand Dexterous Hand ROS SDK is a software tool developed by CHIUS INC to drive its series of dexterous hand products and provide functional examples. It supports various devices (such as laptops, desktops, Raspberry Pi, Jetson, etc.) and mainly serves fields like humanoid robotics, industrial automation, and scientific research institutions. It is suitable for scenarios such as humanoid robots, flexible automatic product lines, embodied large model training, and data collection.
Warning
-
Please stay away from the dexterous hand's range of motion to avoid personal injury or equipment damage.
-
Be sure to conduct a safety assessment before performing any actions to prevent collisions.
-
Please take good care of the dexterous hand.
V2.1.9
- Support L6\L6P\O6 dexterous hands V2.1.8
- Fix occasional frame collision issues
V1.3.4
-
The waveform graph display has been changed from single-hand to configurable single/dual-hand display, controlled by modifying the configuration file to determine whether pressure sensing is present.
-
Resolved data alignment errors in the proximity sensing waveform graph.
-
Modify the CAN port closure logic to prevent sensor data from being unreadable on the robotic hand after the second system boot..
V1.3.3
-
GUI now includes a waveform graph for pressure sensors.
-
L10 now supports setting speed and torque.
V1.3.2
- Added support for the T24 version of the dexterous hand.
V1.3.1
-
Added acquisition of LinkerHand dexterous hand state values (radians and range) in examples
-
Added PyBullet simulation environment
-
Added GUI control interface
-
Operating System: Ubuntu20.04
-
ROS Version:Noetic
-
Python Version: V3.8.10
-
Hardware Interface: 5V standard USB interface
$ mkdir -p Linker_Hand_SDK_ROS/src #Make directory
$ cd Linker_Hand_SDK_ROS/src #Navigate to the directory
$ git clone https://github.com/linker-bot/linkerhand-ros-sdk.git #Get SDK
$ sudo apt install python3-can
$ cd Linker_Hand_SDK_ROS/src/linker_hand_sdk #Navigate to the directory
$ pip install -r requirements.txt #Install required dependencies
$ catkin_make #Compile and build the ROS package
Supports distributed computationand modularization development, effective only at this terminal; ignore if not needed. Raspberry Pi devices are pre-configured by default.
$ source /opt/ros/noetic/setup.bash
$ export ROS_MASTER_URI=http://<ROS Master IP>:11311
$ export ROS_IP=<host IP>
$ export ROS_HOSTNAME=<host IP>
Whether operating on actual hardware or in a simulation, the configuration parameters must be altered beforehand.
Currently, the graphical user interface control example for ROS development is capable of independently manipulating only one LinkerHand robotic arm at a time.
$ cd Linker_Hand_SDK_ROS/src/linker_hand_sdk/linker_hand_sdk_ros/config
$ sudo vim setting.yaml #Edit the configuration file
Description of setting.yaml
VERSION: 1.3.5 # Version Number, L7 O7 Supported
LINKER_HAND: # Hand configuration information
LEFT_HAND:
EXISTS: True # Check if the left hand exists. If it does not, set the value to False.
TOUCH: True # Check if the pressure sensor exists. If it does not, set the value to False.
JOINT: L7 # Number of joints in the left hand L7 \ L10 \ L20 \ L25
NAME: # Regardless of l10 or l20, joint name always has 20 entries
- joint41
- joint42
- joint43
- joint44
- joint45
- joint46
- joint47
- joint48
- joint49
- joint50
- joint51
- joint52
- joint53
- joint54
- joint55
- joint56
- joint57
- joint58
- joint59
- joint60
RIGHT_HAND:
EXISTS: False # Check if the right hand exists.
TOUCH: True # Check if the pressure sensor exists.
JOINT: L10 # Number of joints in the right hand L7 \ L10 \ L20 \ L25
NAME: # Regardless of l10 or l20, joint name always has 20 entries
- joint71
- joint72
- joint73
- joint77
- joint75
- joint76
- joint77
- joint78
- joint79
- joint80
- joint81
- joint82
- joint83
- joint84
- joint88
- joint86
- joint87
- joint88
- joint89
- joint90
PASSWORD: "12345678" # Due to communication with CAN, the system administrator password is required to activate the communication interface.
4.2.1 Insert the USB-to-CAN device interface of the LinkerHand dexterous hand into the Ubuntu device; the blue light will turn on.
Light indicator: Flashing blue signifies a successful connection.
Launch the LinkerHand L10, L20 dexterous hand SDK. Upon successful startup, there will be prompts for SDK version, CAN interface status, dexterous hand configuration information, and current joint speed of the dexterous hand.
# Enable CAN port
$ sudo /usr/sbin/ip link set can0 up type can bitrate 1000000 #USB-to-CAN device with blue light constantly on
$ cd ~/Linker_Hand_SDK_ROS/
$ source ./devel/setup.bash
$ roslaunch linker_hand_sdk_ros linker_hand.launch # Launch L10 or L20 dexterous hand
Launch the LinkerHand O7 dexterous hand SDK.
# Enable CAN port
$ sudo /usr/sbin/ip link set can0 up type can bitrate 1000000 #USB-to-CAN device with blue light constantly on
$ cd ~/Linker_Hand_SDK_ROS/
$ source ./devel/setup.bash
$ roslaunch linker_hand_sdk_ros linker_hand_l7.launch # Launch L07 dexterous hand
Launch the LinkerHand L25 dexterous hand SDK.
# Enable CAN port
$ sudo /usr/sbin/ip link set can0 up type can bitrate 1000000 #USB-to-CAN device with blue light constantly on
$ cd ~/Linker_Hand_SDK_ROS/
$ source ./devel/setup.bash
$ roslaunch linker_hand_sdk_ros linker_hand_l25.launch # Launch L07 dexterous hand
Actuate joint angles of the LinkerHand and retrieve its real-time state values (angle in radians, angular range).
Retrieve radian measurements from L10 and L20.
Get and send the radians for L10 or L20 through the topic:/cb_left_hand_state_arc and /cb_right_hand_state_arc
Get the position status of the LinkerHand in radians through the topic topic:/cb_left_hand_control_cmd_arc and /cb_right_hand_control_cmd_arc. Publish the position in radians to control the finger movement of the LinkerHand.
Includes application examples for each product.
Appendix: Document Attachments
Supported LinkerHand products: L10、L20、L25
- Open a new terminal and launch ROS
$ roscore
- Open a new terminal and launch Linker Hand ROS SDK
$ cd Linker_Hand_SDK_ROS/
$ source ./devel/setup.bash
$ roslaunch linker_hand_sdk_ros linker_hand.launch # Launch L10 or L20 dexterous hand
- Open a new terminal and launch PyBullet Simulation
$ cd Linker_Hand_SDK_ROS
$ source ./devel/setup.bash
$ rosrun linker_hand_pybullet linker_hand_pybullet.py _hand_type:=L20
Parameter Description
The value of ‘_hand_type‘ can be selected based on the product model, for example: _hand_type:=L20
Output Result Example
None.
Supported LinkerHand products: L10、L20
Graphical user interface control allows the independent movement of each joint of the LinkerHand dexterous hand L10 and L20 via sliders. Buttons can also be added to record the current values of all sliders and save the current movement state of each joint of the LinkerHand dexterous hand. Functional buttons can be used to replay the action.
Use gui_control to control the LinkerHand Dexterous Hand: To operate the LinkerHand Dexterous Hand via the gui_control interface, you need to launch the linker_hand_sdk_ros package and communicate via topics.
- Open a new terminal and launch ROS
$ roscore
- Open a new terminal and launch Linker Hand ROS SDK
$ cd Linker_Hand_SDK_ROS/
$ source ./devel/setup.bash
$ roslaunch linker_hand_sdk_ros linker_hand.launch # Launch L10 or L20 dexterous hand
- Open a new terminal and launch the graphical user interface control.
$ cd Linker_Hand_SDK_ROS
$ source ./devel/setup.bash
$ rosrun gui_control gui_control.py
After opening, a UI interface appears. Users can control the joints of the LinkerHand dexterous hand using sliding bars. They can also save the current sliding bar data by clicking the add button on the right, facilitating the replay of the settings in the future.
Parameter Description
None.
Output Result Example
None.
Supported LinkerHand products: L10、L20
- Open a new terminal and launch ROS
$ roscore
- Open a new terminal and launch Linker Hand ROS SDK
$ cd Linker_Hand_SDK_ROS/
$ source ./devel/setup.bash
$ roslaunch linker_hand_sdk_ros linker_hand.launch # Launch L10 or L20 dexterous hand
-
Open a new terminal and get the current status
- For L20, open a new terminal to get the current status.
$ cd Linker_Hand_SDK_ROS/
$ source ./devel/setup.bash
$ rosrun L20_get_linker_hand_state L20_get_linker_hand_state.py _loop:=True
Parameter Description
Status values include: range value and radian value.
The “_loop“ parameter must be specified. If set to True, the terminal will continuously display the current status values of the LinkerHand dexterous hand. If set to False, the terminal will display the status once. For example: _loop:=True .
Output Result Example
稍后更新
$ cd Linker_Hand_SDK_ROS/
$ source ./devel/setup.bash
$ rosrun L10_get_linker_hand_state L10_get_linker_hand_state.py _loop:=True
Parameter Description
Status values include: range value and radian value.
The “_loop“ parameter must be specified. If set to True, the terminal will continuously display the current status values of the LinkerHand dexterous hand. If set to False, the terminal will display the status once. For example: _loop:=True.
Output Result Example
header:
seq: 83
stamp:
secs: 1743409242
nsecs: 193927526
frame_id: ''
name: []
position: [1.03, -1.57, 1.3, 1.3, 1.3, 1.3, 0.26, -0.26, -0.26, 1.57]
velocity: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
effort: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Supported LinkerHand products: L10、L20
- Open a new terminal and launch ROS
$ roscore
- Open a new terminal and launch Linker Hand ROS SDK
$ cd Linker_Hand_SDK_ROS/
$ source ./devel/setup.bash
$ roslaunch linker_hand_sdk_ros linker_hand.launch # Launch L10 or L20 dexterous hand
- Open a new terminal and get force sensor data
$ cd Linker_Hand_SDK_ROS
$ source ./devel/setup.bash
$ rosrun get_linker_hand_force get_linker_hand_force.py _loop:=False
Parameter Description
The “_loop“ parameter must be specified. If set to True, the terminal will continuously display the current status values of the LinkerHand dexterous hand. If set to False, the terminal will display the status once. For example: _loop:=True.
Output Result Example
-
Right hand five-finger normal force readings: [0.0, 0.0, 0.0, 0.0, 0.0], with a range of 0 to 255, where greater pressure results in higher values.
-
Right hand five-finger tangential force readings: [0.0, 0.0, 0.0, 0.0, 0.0], with a range of 0 to 255, where greater pressure results in higher values.
-
Right hand five-finger tangential force direction readings: [255.0, 255.0, 255.0, 255.0, 255.0], with a range of 255 to 0, where greater pressure results in smaller values.
-
Right hand five-finger proximity sensing readings: [0.0, 0.0, 0.0, 0.0, 0.0], with a range of 0 to 255, where greater pressure results in higher values.
Supported LinkerHand products: L10、L20
- Open a new terminal and launch ROS
$ roscore
- 2. Open a new terminal and launch Linker Hand ROS SDK
$ cd Linker_Hand_SDK_ROS/
$ source ./devel/setup.bash
$ roslaunch linker_hand_sdk_ros linker_hand.launch # Launch L10 or L20 dexterous hand
- Open a new terminal and get force sensor data
$ cd Linker_Hand_SDK_ROS/
$ source ./devel/setup.bash
$ rosrun get_linker_hand_speed get_linker_hand_speed.py _loop:=False
Parameter Description
The “_loop“ parameter must be specified. If set to True, the terminal will continuously display the current status values of the LinkerHand dexterous hand. If set to False, the terminal will display the status once. For example: _loop:=True.
Output Result Example
The velocity of the right hand’s five fingers is: [180, 250, 250, 250, 250], in the order of thumb, index finger, middle finger, ring finger, and little finger.
Supported LinkerHand products: L10、L20
- Open a new terminal and launch ROS
$ roscore
- 2. Open a new terminal and launch Linker Hand ROS SDK
$ cd Linker_Hand_SDK_ROS/
$ source ./devel/setup.bash
$ roslaunch linker_hand_sdk_ros linker_hand.launch # Launch L10 or L20 dexterous hand
- Open a new terminal and get the current
$ cd Linker_Hand_SDK_ROS
$ source ./devel/setup.bash
$ rosrun get_linker_hand_current get_linker_hand_current.py _loop:=False
Parameter Description
The “_loop“ parameter must be specified. If set to True, the terminal will continuously display the current status values of the LinkerHand dexterous hand. If set to False, the terminal will display the status once. For example: _loop:=True.
Output Result Example
The current of the right hand’s five fingers is: [180, 250, 250, 250, 250], in the order of thumb, index finger, middle finger, ring finger, and little finger.
rostopic pub /cb_hand_setting_cmd std_msgs/String '{data: "{\"setting_cmd\":\"get_faults\",\"params\":{\"hand_type\":\"left\"}}"}'
Parameter Description
setting_cmd : Command Parameter
get_faults : Command Type String
Output Result Example
Current of the right hand’s five fingers is: [0, 1, 0, 0, 0], where 0 represents normal and 1 represents a fault.
Supported LinkerHand products: L10、L20
- Open a new terminal and launch ROS
$ roscore
- 2. Open a new terminal and launch Linker Hand ROS SDK
$ cd Linker_Hand_SDK_ROS/
$ source ./devel/setup.bash
$ roslaunch linker_hand_sdk_ros linker_hand.launch # Launch L10 or L20 dexterous hand
- Open a new terminal and set speed
$ cd Linker_Hand_SDK_ROS
$ source ./devel/setup.bash
$ rosrun set_linker_hand_speed set_linker_hand_speed.py _hand_type:=left _speed:=[180,250,250,250,250] # L7为7个值,其他为5个值
Parameter Description
L10, L20: Consistent speed of five fingers
speed:=[180,250,250,250,250]
L7:Speed of seven motors
speed:=[180,250,250,250,250,250,250]
Output Result Example
speed:[180,250,250,250,250]
Supported LinkerHand products: L10、L20
- Open a new terminal and launch ROS
$ roscore
- 2. Open a new terminal and launch Linker Hand ROS SDK
$ cd Linker_Hand_SDK_ROS/
$ source ./devel/setup.bash
$ roslaunch linker_hand_sdk_ros linker_hand.launch # Launch L10 or L20 dexterous hand
- Open a new terminal and set the current
$ cd Linker_Hand_SDK_ROS
$ source ./devel/setup.bash
$ rosrun set_linker_hand_current set_linker_hand_current.py _hand_type:=left _current:=42 #暂不支持L7
Parameter Description
Parameters: hand_type: left | right (left or right hand) current:0~255 (set maximum current value)
Output Result Example
current:[180,250,250,250,250]
Supported LinkerHand products: L10、L20
- Open a new terminal and launch ROS
$ roscore
- 2. Open a new terminal and launch Linker Hand ROS SDK
$ cd Linker_Hand_SDK_ROS/
$ source ./devel/setup.bash
$ roslaunch linker_hand_sdk_ros linker_hand.launch # Launch L10 or L20 dexterous hand
- Open a new terminal and set torque
$ cd Linker_Hand_SDK_ROS
$ source ./devel/setup.bash
$ rosrun set_linker_hand_torque set_linker_hand_torque.py _hand_type:=left _torque:=[180,250,250,250,250] # L7为7个值,其他为5个值
Parameter Description
Parameters: hand_type: left | right (left or right hand) torque:=[180,250,250,250,250] 0~255. L7 represents the maximum torque for 7 motors, while the other values represent the maximum torque for 5 fingers.
Output Result Example
torque:[180,250,250,250,250]
Supported LinkerHand products: L25
Disables the motor of the dexterous hand, allowing free movement of all joints.
- Open a new terminal and launch ROS
$ roscore
- 2. Open a new terminal and launch Linker Hand ROS SDK
$ cd Linker_Hand_SDK_ROS/
$ source ./devel/setup.bash
$ roslaunch linker_hand_sdk_ros linker_hand.launch # Launch L25 dexterous hand
- Open a new terminal and set to disabled mode
$ Linker_Hand_SDK_ROS/src/linker_hand_sdk/examples/L25
$ python set_disability.py
Parameter Description
None
Output Result Example
None
Supported LinkerHand products: L25
Enable the dexterous hand motor, which can then be controlled by the control program.
- Open a new terminal and launch ROS
$ roscore
- 2. Open a new terminal and launch Linker Hand ROS SDK
$ cd Linker_Hand_SDK_ROS/
$ source ./devel/setup.bash
$ roslaunch linker_hand_sdk_ros linker_hand.launch # Launch L25 dexterous hand
- Open a new terminal and set to enabled mode
$ Linker_Hand_SDK_ROS/src/linker_hand_sdk/examples/L25
$ python set_enable.py
Parameter Description
None
Output Result Example
None
Supported LinkerHand products: L25
If you possess multiple L25 dexterous hands of the same version, this example demonstrates how to have a disabled hand control an enabled one.
First, start the LinkerHand SDK ROS. Below is the configuration method for the controlled L25 dexterous hand, using the right hand as an example. Ensure that both Ubuntu machines are on the same network and that the master and slave configurations are set up, allowing both machines to communicate via ROS simultaneously. For further guidance, please refer to the Documentation - ROS Wiki.
Control Party A Dexterous Hand Configuration
- Open a new terminal and launch ROS
$ roscore
- Open a new terminal and launch Linker Hand ROS SDK
$ cd Linker_Hand_SDK_ROS/
$ source ./devel/setup.bash
$ roslaunch linker_hand_sdk_ros linker_hand.launch # Launch L25 dexterous hand
- Open a new terminal and start executing remote control
$ Linker_Hand_SDK_ROS/src/linker_hand_sdk/examples/L25
$ python set_remote_control.py
Controlled Party B Dexterous Hand Configuration
- Open a new terminal and launch ROS
# Open a new terminal and launch ROS
$ roscore
- Open a new terminal
$ cd Linker_Hand_SDK_ROS/
$ source ./devel/setup.bash
$ roslaunch linker_hand_sdk_ros linker_hand.launch
At this time, manually dragging the disabled L25 dexterous hand of Machine A can control the enabled L25 dexterous hand of Machine B.
Supported LinkerHand products: L10、L20
Note: Requires an RGB camera
- Open a new terminal and launch ROS
$ roscore
- 2. Open a new terminal and launch Linker Hand ROS SDK
$ cd Linker_Hand_SDK_ROS/
$ source ./devel/setup.bash
$ roslaunch linker_hand_sdk_ros linker_hand.launch # Launch L10 or L20 dexterous hand
- Open a new terminal, start Rock-Paper-Scissors game
$ cd Linker_Hand_SDK_ROS/
$ source ./devel/setup.bash
$ rosrun finger_guessing finger_guessing.py
Parameter Description
None
Output Result Example
None
Supported LinkerHand products: L20
- Open a new terminal and launch ROS
$ roscore
- 2. Open a new terminal and launch Linker Hand ROS SDK
$ cd Linker_Hand_SDK_ROS/
$ source ./devel/setup.bash
$ roslaunch linker_hand_sdk_ros linker_hand.launch # Launch L20 dexterous hand
- Open a new terminal , start Pinch Demonstration
python ./<Your path>/lipcontroller.py
If the terminal prints ‘Start Demonstration’, it indicates normal operation. At this point, if the hand settings are correct, it should begin performing a pinch motion using the index finger and middle finger. The motion will stop when an object is pinched, and after removing the object, it will continue attempting to pinch until it successfully grabs the item or reaches its motion limit.
lipcontroller.py is a demonstration demo developed based on version 7 of product O7. When used in demonstrations of other versions, you need to adjust the closing posture of the thumb and index finger. Otherwise, the action of ‘pinching together with the index finger and thumb’ cannot be achieved.
Parameter Description
None
Output Result Example
None
The hardware used in this example is the LinkerRobot humanoid robot, but other robotic arms or robots can also be used for imitation learning training, as long as the corresponding data topics are modified. For detailed instructions, please refer to the human-dex project README.md
- Configure environment
cd human-dex
conda create -n human-dex python=3.8.10
conda activate human-dex
pip install torchvision
pip install torch
pip install -r requirements.txt
- Installation
mkdir -p your_ws/src
cd your_ws/src
git clone https://github.com/linker-bot/human-dex.git
cd ..
catkin_make
source ./devel/setup.bash
- Run
# Data Collection
roslaunch record_hdf5 record_hdf5.launch
# Open a new terminal to send the collection command
rostopic pub /record_hdf5 std_msgs/String "data: '{\"method\":\"start\",\"type\":\"humanplus\"}'"
- Train
cd humanplus/scripts/utils/HIT
python3 imitate_episodes_h1_train.py --task_name data_cb_grasp --ckpt_dir cb_grasp/ --policy_class HIT --chunk_size 50 --hidden_dim 512 --batch_size 48 --dim_feedforward 512 --lr 1e-5 --seed 0 --num_steps 100000 --eval_every 1000 --validate_every 1000 --save_every 1000 --no_encoder --backbone resnet18 --same_backbones --use_pos_embd_image 1 --use_pos_embd_action 1 --dec_layers 6 --gpu_id 0 --feature_loss_weight 0.005 --use_mask --data_aug
- Reproduction/Evaluation
cd humanplus/scripts
python3 cb.py
Parameter Description
None
Output Result Example
None
The original Unidexgrasp algorithm uses the shadowhand. Below is the relevant code for developing the Unidexgrasp algorithm on the linkerhand. For the detailed process, refer to the linker_unidexgrasp project.
Grasping Pose Generation Section
The grasping pose module maps the shadowhand pose output by the model to the linkerHand L20 pose, facilitating its use in subsequent development.
- Configure environment
conda create -n unidexgrasp python=3.8
conda activate unidexgrasp
conda install -y pytorch==1.10.0 torchvision==0.11.0 torchaudio==0.10.0 cudatoolkit=11.3 -c pytorch -c conda-forge
conda install -y https://mirrors.bfsu.edu.cn/anaconda/cloud/pytorch3d/linux-64/pytorch3d-0.6.2-py38_cu113_pyt1100.tar.bz2
pip install -r requirements.txt
cd thirdparty/pytorch_kinematics
pip install -e .
cd ../nflows
pip install -e .
cd ../
git clone https://github.com/wrc042/CSDF.git
cd CSDF
pip install -e .
cd ../../
-
Train
- GraspIPDF
python ./network/train.py --config-name ipdf_config \ --exp-dir ./ipdf_train
- GraspGlow
python ./network/train.py --config-name glow_config \ --exp-dir ./glow_train python ./network/train.py --config-name glow_joint_config \ --exp-dir ./glow_train
- ContactNet
python ./network/train.py --config-name cm_net_config \ --exp-dir ./cm_net_train
-
Verification
python ./network/eval.py --config-name eval_config \
--exp-dir=./eval
- Mapping, result visualization
python ./tests/visualize_result_l20_shadow.py --exp_dir 'eval' --num 3
- Save the results for subsequent reinforcement learning algorithm development use.
python ./tests/data_for_RL.py
Supported LinkerHand products: L20
- Open a new terminal and launch ROS
$ roscore
- 2. Open a new terminal and launch Linker Hand ROS SDK
$ cd Linker_Hand_SDK_ROS/
$ source ./devel/setup.bash
$ roslaunch linker_hand_sdk_ros linker_hand.launch # Launch L20 dexterous hand
- Open a new terminal and make an OK gesture
python ./<Your path>/gesture-Show-OK.py
After starting, the terminal will print “Testing in progress”, and at the same time, the hand will begin to make an OK gesture, bending the middle, ring, and little fingers while extending them.
Parameter Description
None
Output Result Example
None
Supported LinkerHand products: L20
- Open a new terminal and launch ROS
$ roscore
- 2. Open a new terminal and launch Linker Hand ROS SDK
$ cd Linker_Hand_SDK_ROS/
$ source ./devel/setup.bash
$ roslaunch linker_hand_sdk_ros linker_hand.launch # Launch L20 dexterous hand
- Open a new terminal and start the index finger rotation movement
python ./<Your path>/gesture-Show-Surround-Index-Finger.py
After starting, the terminal will print "Testing in progress". At this time, the hand will start to clench into a fist and extend the index finger, which will continuously rotate.
Parameter Description
None
Output Result Example
None
Supported LinkerHand products: L20
- Open a new terminal and launch ROS
$ roscore
- 2. Open a new terminal and launch Linker Hand ROS SDK
$ cd Linker_Hand_SDK_ROS/
$ source ./devel/setup.bash
$ roslaunch linker_hand_sdk_ros linker_hand.launch # Launch L20 dexterous hand
- Open a new terminal and start the wave motion
python ./<Your path>/gesture-Show-Wave.p
After starting, the terminal will print "Testing in progress". At this time, the thumb extends outward and remains still, while the other four fingers begin the wave motion.
Parameter Description
None
Output Result Example
None
Supported LinkerHand products: L20
- Open a new terminal and launch ROS
$ roscore
- 2. Open a new terminal and launch Linker Hand ROS SDK
$ cd Linker_Hand_SDK_ROS/
$ source ./devel/setup.bash
$ roslaunch linker_hand_sdk_ros linker_hand.launch # Launch L20 dexterous hand
- Open a new terminal and start a set of complex movements
python ./<Your path>/gesture-Show-Ye.py
After starting, the terminal will print "Testing in progress". At this time, the hand will begin to perform a set of complex movements to demonstrate the flexibility of the hand.
This example is a demonstration demo developed based on version 7 of product O7. When used in demonstrations of other versions, you need to adjust the closing posture of the thumb and index finger. Otherwise, the action of ‘pinching together with the index finger and thumb’ cannot be achieved.
Parameter Description
None
Output Result Example
None
Supported LinkerHand products: L20
- Open a new terminal and launch ROS
$ roscore
- 2. Open a new terminal and launch Linker Hand ROS SDK
$ cd Linker_Hand_SDK_ROS/
$ source ./devel/setup.bash
$ roslaunch linker_hand_sdk_ros linker_hand.launch # Launch L20 dexterous hand
- Open a new terminal and start the loop grasp action
$ cd Linker_Hand_SDK_ROS/src/linker_hand_sdk/examples/gesture-show
$ python gesture-Loop.py
Parameter Description
None
Output Result Example
None
Supported LinkerHand products: L25
Parameter Description
None
Output Result Example
None
Human-Dex:https://github.com/linkerbotai/human-dex
Linker_UniDexGrasp:https://github.com/linkerbotai/linker\_unidexgrasp
LinkerHand-Python-SDK:https://github.com/linkerbotai/linker\_hand\_python\_sdk
linker_serl:https://github.com/linkerbotai/linker\_serl
pip install python-can
Method One
$ sudo visudo
# Add the following configuration
you_name ALL=(ALL) NOPASSWD: /sbin/ip
you_name ALL=(ALL) NOPASSWD: /usr/sbin/ip link set can0 up type $ $ can bitrate 1000000
# Save and exit
Method Two
Modify the password in the setting.yaml configuration file, default PASSWORD: "12345678"