

This is the official release to control Allegro Hand V5 with ROS2(Only V5 supported, V4 is not supported). Mostly, it is based on the release of Allegro Hand V5 ROS1 package. You can find our latest Allegro Hand V5 ROS1 package :(https://github.com/Wonikrobotics-git/allegro_hand_ros_v5) And the interfaces and controllers have been improved and rewritten by Soohoon Yang(Hibo) from Wonik Robotics.
We have integrated the core elements of two ROS packages(allegro_hand_description, allegro_hand_parameters) into a main package(allegro_hand_controllers).
For now, we support three additional action.
- Visualize Allegro Hand V5 changing in real time using Rviz2.
- Save customize pose using MOVEIT2 and move to the saved pose.
- Simply control hand with GUI tool instead of using keyboard.
These packages are tested on ROS2 Humble(Ubuntu 22.04). It will likely not work with newer or older versions(Rolling, Foxy ...).
- Official Allegro Hand Website : https://www.allegrohand.com/
- Community Forum : https://www.allegrohand.com/forum
From Allegro Hand V5, the hand is fully based on torque controller.
- allegro_hand_controllers : Contain two main nodes for control the hand and urdf descriptions,meshes.
- node : Receive encoder data and compute torque using
computeDesiredTorque
. - grasp : Apply various pre-defined grasps or customized poses.
- node : Receive encoder data and compute torque using
- allegro_hand_driver : Main driver for sending and receiving data with the Allegro Hand.
- allegro_hand_keyboard : Node that sends the command to control Allegro Hand. All commands need to be pre-defined.
- allegro_hand_moveit : Provide MOVEIT2 package for Allegro Hand V5.
- allegro_hand_gui : Node that control the allegro hand with gui program.
- bhand : Library files for the predefined grasps and actions., available on 64 bit versions.
With ROS2, you don't need to install PCAN driver anymore!
If you have already installed PCAN driver, please follow instructions below.
- [Optional] Disable previously installed PEAK-CAN driver.
# Temporarily
sudo rmmod pcan
sudo modprobe peak_usb
# Permanent
sudo rm /etc/modprobe.d/pcan.conf
sudo rm /etc/modprobe.d/blacklist-peak.conf
- Make new workspace.
mkdir allegro_ws
- Install necessart package.
sudo apt-get update
sudo apt-get install ros-<distro>-xacro
sudo apt install ros-<distro>-moveit
sudo apt install ros-<distro>-controller-manager
sudo apt install ros-<distro>-joint-state-broadcaster
sudo apt install ros-<distro>-joint-trajectory-controller
- Download ROS2 package for Allegro Hand V5 using below command.
cd ~/allegro_ws
git clone https://github.com/Wonikrobotics-git/allegro_hand_ros2_v5.git
- Build.
cd ~/allegro_ws
source /opt/ros/<distro>/setup.bash
colcon build
- Launch allegro main node.
source install/setup.bash
ros2 launch allegro_hand_controllers allegro_hand.launch.py HAND:=right TYPE:=A
You need to write your password to open CAN port
Please check 'Launch file instructions below'.
- Run allegro hand keyboard node.
cd ~/allegro_ws
source install/setup.bash
ros2 run allegro_hand_keyboards allegro_hand_keyboard
- Control Hand using Keyboard command.
Same as the ROS1 package, you can simply control Allegro Hand V5 by launching allegro_hand.launch.py . At a minimum, you must specify the handedness and the hand type:
ros2 launch allegro_hand_controllers allegro_hand.launch.py HAND:=right|left TYPE:=A|B
Optional arguments:
VISUALIZE:=true|false (default is false)
MOVEIT:=true|false (default is false)
GUI:=true|false (default is false)
- If you want to visualize Allegro Hand on Rviz2:
ros2 launch allegro_hand_controllers allegro_hand.launch.py HAND:=right TYPE:=B VISUALIZE:=true
- If you want to use Allegro Hand with MOVEIT2:
ros2 launch allegro_hand_controllers allegro_hand.launch.py HAND:=right TYPE:=B MOVEIT:=true
- If you want to control Allegro Hand with GUI:
ros2 launch allegro_hand_controllers allegro_hand.launch.py HAND:=right TYPE:=B GUI:=true
To control more than one hand, you must specify CAN port number and Allegro Hand number.
Terminal 1:
ros2 launch allegro_hand_controllers allegro_hand.launch.py HAND:=right TYPE:=A CAN_DEVICE:=can0 NUM:=0
Termianl 2:
ros2 launch allegro_hand_controllers allegro_hand.launch.py HAND:=left TYPE:=A CAN_DEVICE:=can1 NUM:=1
To control first hand,
Terminal 3:
ros2 run allegro_hand_keyboards allegro_hand_keyboard --ros-args allegroHand_0/lib_cmd:=allegroHand_0/lib_cmd
To control second hand,
Terminal 4:
ros2 run allegro_hand_keyboards allegro_hand_keyboard --ros-args allegroHand_0/lib_cmd:=allegroHand_1/lib_cmd
These newly added feature function identically to their ROS1 counterparts. Please refer to the ROS1 manual for guidance. Our latest Allegro Hand V5 ROS1 package : ROS1
Make sure to install MOVEIT2 first in your PC and should install several additional packages to operate it You can find installation guide in here : MOVEIT2
These newly added feature function identically to their ROS1 counterparts. Please refer to the ROS1 manual for guidance. Our latest Allegro Hand V5 ROS1 package : ROS1