|
Package Summary
Tags | No category tags. |
Version | 1.1.0 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/jsk-ros-pkg/jsk_robot.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2024-05-01 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Shingo Kitagawa
Authors
- Shingo Kitagawa
softhand_ros
ROS package for SoftHand
Note
This package depends on the branch below.
Citation
Softhand v1
@INPROCEEDINGS{hirose_softhand_v1,
author={Hirose, Toshinori and Kakiuchi, Yohei and Okada, Kei and Inaba, Masayuki},
booktitle={2019 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
title={Design of Soft Flexible Wire-driven Finger Mechanism for Contact Pressure Distribution},
year={2019},
volume={},
number={},
pages={4699-4705},
doi={10.1109/IROS40897.2019.8968011}
}
Softhand v2
@INPROCEEDINGS{hirose_softhand_v2,
author={Hirose, Toshinori and Kitagawa, Shingo and Hasegawa, Shun and Kakiuchi, Yohei and Okada, Kei and Inaba, Masayuki},
booktitle={2022 IEEE 5th International Conference on Soft Robotics (RoboSoft)},
title={Waterproof Soft Robot Hand with Variable Stiffness Wire-driven Finger Mechanism Using Low Melting Point Alloy for Contact Pressure Distribution and Concentration},
year={2022},
volume={},
number={},
pages={109-116},
doi={10.1109/RoboSoft54090.2022.9762208}
}
Installation
Workspace build
source /opt/ros/$ROS_DISTRO/setup.bash
mkdir ~/softhand_ws/src -p
cd ~/softhand_ws/src
wget https://raw.githubusercontent.com/knorth55/softhand_ros/master/fc.rosinstall -O .rosinstall
wstool up
rosdep install --ignore-src --from-paths . -y -r -i
cd ~/softhand_ws
catkin build
Udev installation
source ~/softhand_ws/devel/setup.bash
roscd softhand_ros
sudo cp udev/*.rules /etc/udev/rules.d
sudo service udev reload
sudo service udev restart
Softhand Description
Softhand v1
Softhand V1 is designed for contact pressure distribution.
The hand can grasp soft and fragile object with low power, and solid and heavy object with high power.
For more detailed information, please read Design of Soft Flexible Wire-driven Finger Mechanism for Contact Pressure Distribution
Softhand v2
Softhand V2 is designed for waterproof and variable stiffness.
The hand can grasp as softhand v1, but also can massage human’s head and hair.
For more detailed information please read Waterproof Soft Robot Hand with Variable Stiffness Wire-driven Finger Mechanism Using Low Melting Point Alloy for Contact Pressure Distribution and Concentration.
How to use
Launch softhand
For softhand v1
source ~/softhand_ws/devel/setup.bash
# for left softhand v1
roslaunch softhand_ros softhand_left.launch
# for right softhand v1
roslaunch softhand_ros softhand_right.launch
For softhand v2
source ~/softhand_ws/devel/setup.bash
# for left softhand v2
roslaunch softhand_ros softhand_v2_left.launch
# for right softhand v2
roslaunch softhand_ros softhand_v2_right.launch
Control softhand by euslisp
For softhand v1
source ~/softhand_ws/devel/setup.bash
roscd softhand_ros/euslisp
roseus softhand-interface.l
# euslisp interactive mode
# (softhand-init)
# (send *ri* :start-grasp)
# (send *ri* :stop-grasp)
For softhand v2
source ~/softhand_ws/devel/setup.bash
roscd softhand_ros/euslisp
roseus softhand-v2-interface.l
# euslisp interactive mode
# (softhand-v2-init)
# (send *ri* :close-thumb)
# (send *ri* :open-thumb)
# (send *ri* :start-grasp)
# (send *ri* :stop-grasp)
Softhand hardware installation
Softhand v1 dynamixel setup
Check default parameters of dynamixel
Motor’s default id is 1
and default baud rate is 57600
.
rosrun dynamixel_driver info_dump.py -b 57600 -p /dev/{l/r}hand-e160 1
Set baud rate
# set baud rate from 57600 to 1000000
rosrun dynamixel_driver set_servo_config.py -b 57600 -r 1 <MOTOR_ID> -p /dev/{l/r}hand-e160
Set motor ID
- 1: Thumb
- 2: Index finger
- 3: Middle finger
rosrun dynamixel_driver change_id.py <OLD_MOTOR_ID> <NEW_MOTOR_ID> -b 1000000 -p /dev/{l/r}hand-e160
Disable overload error
from dynamixel_driver import dynamixel_io
dxl_io = dynamixel_io.DynamixelIO("/dev/{l/r}hand-e160", 1000000)
dxl_io.write(<MOTOR_ID>, 17, (4,))
dxl_io.write(<MOTOR_ID>, 18, (4,))
Set max torque as 0 in EEPROM
Dynamixel motor’s max torque is set in volatile memory (RAM)
only when roslaunch is called.
When we disconnect dynamixel while roslaunch is running,
the max torque value in non-volatile memory (EEPROM) is used,
and its default value is 1023
(Max torque).
In this section, we set the max torque value in non-volatile memory (EEPROM) as 0
.
The effect is that the max torque will be set as 0
and the motor does not move,
when we disconnect dynamixel motor while roslaunch is running.
So, users need to stop and re-launch the roslaunch again to set correct max torque.
from dynamixel_driver import dynamixel_io
dxl_io = dynamixel_io.DynamixelIO("/dev/{l/r}hand-e160", 1000000)
dxl_io.write(<MOTOR_ID>, 14, (0, 0))
Softhand v2 dynamixel setup
Check default parameters of dynamixel
Motor’s default id is 1
and default baud rate is 57600
.
rosrun dynamixel_driver info_dump.py -b 57600 -p /dev/{l/r}hand-e160 1
Set baud rate
# set baud rate from 57600 to 57143
rosrun dynamixel_driver set_servo_config.py -b 57600 -r 34 <MOTOR_ID> -p /dev/{l/r}hand-v2-e160
Set motor ID
- 1: Thumb
- 2: Index finger
- 3: Middle finger
rosrun dynamixel_driver change_id.py <OLD_MOTOR_ID> <NEW_MOTOR_ID> -b 57600 -p /dev/{l/r}hand-v2-e160
Disable overload error
from dynamixel_driver import dynamixel_io
dxl_io = dynamixel_io.DynamixelIO("/dev/{l/r}hand-v2-e160", 57600)
dxl_io.write(<MOTOR_ID>, 17, (4,))
dxl_io.write(<MOTOR_ID>, 18, (4,))
Set max torque as 0 in EEPROM
Dynamixel motor’s max torque is set in volatile memory (RAM)
only when roslaunch is called.
When we disconnect dynamixel while roslaunch is running,
the max torque value in non-volatile memory (EEPROM) is used,
and its default value is 1023
(Max torque).
In this section, we set the max torque value in non-volatile memory (EEPROM) as 0
.
The effect is that the max torque will be set as 0
and the motor does not move,
when we disconnect dynamixel motor while roslaunch is running.
So, users need to stop and re-launch the roslaunch again to set correct max torque.
from dynamixel_driver import dynamixel_io
dxl_io = dynamixel_io.DynamixelIO("/dev/{l/r}hand-v2-e160", 57600)
dxl_io.write(<MOTOR_ID>, 14, (0, 0))
Change product
to distinguish E160 board
This is for USB2TTL dongle and DXSharingBoard(TTL)
We distinguish left and right hand with product
field of FTDI chip on E160.
- Left softhand v1 E160’s
product
:LEFT-E160
- Right softhand v1 E160’s
product
:RIGHT-E160
- Left softhand v2 E160’s
product
:LEFT-V2-E160
- Right softhand v2 E160’s
product
:RIGHT-V2-E160
In order to change them, please follow jsk_apc doc.
If you don’t have windows, you can do it with richardeoin/ftx-prog as follows.
git clone https://github.com/richardeoin/ftx-prog.git
cd ftx-prog/
make
# for left softhand v1
sudo ./ftx_prog --product LEFT-E160
# for right softhand v1
sudo ./ftx_prog --product RIGHT-E160
# for left softhand v2
sudo ./ftx_prog --product LEFT-V2-E160
# for right softhand v2
sudo ./ftx_prog --product RIGHT-V2-E160
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
eus_teleop | |
jsk_baxter_startup |
Launch files
- launch/softhand_v2_left.launch
-
- device [default: /dev/lhand-v2-e160]
- mode [default: position]
- launch/softhand_v2_right.launch
-
- device [default: /dev/rhand-v2-e160]
- mode [default: position]
- launch/softhand_right.launch
-
- device [default: /dev/rhand-e160]
- mode [default: position]
- launch/softhand.launch
-
- hand
- device
- mode [default: position]
- launch/softhand_v2.launch
-
- hand
- device
- mode [default: position]
- launch/softhand_left.launch
-
- device [default: /dev/lhand-e160]
- mode [default: position]
Messages
Services
Plugins
Recent questions tagged softhand_ros at Robotics Stack Exchange
|
Package Summary
Tags | No category tags. |
Version | 1.1.0 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/jsk-ros-pkg/jsk_robot.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2024-05-01 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Shingo Kitagawa
Authors
- Shingo Kitagawa
softhand_ros
ROS package for SoftHand
Note
This package depends on the branch below.
Citation
Softhand v1
@INPROCEEDINGS{hirose_softhand_v1,
author={Hirose, Toshinori and Kakiuchi, Yohei and Okada, Kei and Inaba, Masayuki},
booktitle={2019 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
title={Design of Soft Flexible Wire-driven Finger Mechanism for Contact Pressure Distribution},
year={2019},
volume={},
number={},
pages={4699-4705},
doi={10.1109/IROS40897.2019.8968011}
}
Softhand v2
@INPROCEEDINGS{hirose_softhand_v2,
author={Hirose, Toshinori and Kitagawa, Shingo and Hasegawa, Shun and Kakiuchi, Yohei and Okada, Kei and Inaba, Masayuki},
booktitle={2022 IEEE 5th International Conference on Soft Robotics (RoboSoft)},
title={Waterproof Soft Robot Hand with Variable Stiffness Wire-driven Finger Mechanism Using Low Melting Point Alloy for Contact Pressure Distribution and Concentration},
year={2022},
volume={},
number={},
pages={109-116},
doi={10.1109/RoboSoft54090.2022.9762208}
}
Installation
Workspace build
source /opt/ros/$ROS_DISTRO/setup.bash
mkdir ~/softhand_ws/src -p
cd ~/softhand_ws/src
wget https://raw.githubusercontent.com/knorth55/softhand_ros/master/fc.rosinstall -O .rosinstall
wstool up
rosdep install --ignore-src --from-paths . -y -r -i
cd ~/softhand_ws
catkin build
Udev installation
source ~/softhand_ws/devel/setup.bash
roscd softhand_ros
sudo cp udev/*.rules /etc/udev/rules.d
sudo service udev reload
sudo service udev restart
Softhand Description
Softhand v1
Softhand V1 is designed for contact pressure distribution.
The hand can grasp soft and fragile object with low power, and solid and heavy object with high power.
For more detailed information, please read Design of Soft Flexible Wire-driven Finger Mechanism for Contact Pressure Distribution
Softhand v2
Softhand V2 is designed for waterproof and variable stiffness.
The hand can grasp as softhand v1, but also can massage human’s head and hair.
For more detailed information please read Waterproof Soft Robot Hand with Variable Stiffness Wire-driven Finger Mechanism Using Low Melting Point Alloy for Contact Pressure Distribution and Concentration.
How to use
Launch softhand
For softhand v1
source ~/softhand_ws/devel/setup.bash
# for left softhand v1
roslaunch softhand_ros softhand_left.launch
# for right softhand v1
roslaunch softhand_ros softhand_right.launch
For softhand v2
source ~/softhand_ws/devel/setup.bash
# for left softhand v2
roslaunch softhand_ros softhand_v2_left.launch
# for right softhand v2
roslaunch softhand_ros softhand_v2_right.launch
Control softhand by euslisp
For softhand v1
source ~/softhand_ws/devel/setup.bash
roscd softhand_ros/euslisp
roseus softhand-interface.l
# euslisp interactive mode
# (softhand-init)
# (send *ri* :start-grasp)
# (send *ri* :stop-grasp)
For softhand v2
source ~/softhand_ws/devel/setup.bash
roscd softhand_ros/euslisp
roseus softhand-v2-interface.l
# euslisp interactive mode
# (softhand-v2-init)
# (send *ri* :close-thumb)
# (send *ri* :open-thumb)
# (send *ri* :start-grasp)
# (send *ri* :stop-grasp)
Softhand hardware installation
Softhand v1 dynamixel setup
Check default parameters of dynamixel
Motor’s default id is 1
and default baud rate is 57600
.
rosrun dynamixel_driver info_dump.py -b 57600 -p /dev/{l/r}hand-e160 1
Set baud rate
# set baud rate from 57600 to 1000000
rosrun dynamixel_driver set_servo_config.py -b 57600 -r 1 <MOTOR_ID> -p /dev/{l/r}hand-e160
Set motor ID
- 1: Thumb
- 2: Index finger
- 3: Middle finger
rosrun dynamixel_driver change_id.py <OLD_MOTOR_ID> <NEW_MOTOR_ID> -b 1000000 -p /dev/{l/r}hand-e160
Disable overload error
from dynamixel_driver import dynamixel_io
dxl_io = dynamixel_io.DynamixelIO("/dev/{l/r}hand-e160", 1000000)
dxl_io.write(<MOTOR_ID>, 17, (4,))
dxl_io.write(<MOTOR_ID>, 18, (4,))
Set max torque as 0 in EEPROM
Dynamixel motor’s max torque is set in volatile memory (RAM)
only when roslaunch is called.
When we disconnect dynamixel while roslaunch is running,
the max torque value in non-volatile memory (EEPROM) is used,
and its default value is 1023
(Max torque).
In this section, we set the max torque value in non-volatile memory (EEPROM) as 0
.
The effect is that the max torque will be set as 0
and the motor does not move,
when we disconnect dynamixel motor while roslaunch is running.
So, users need to stop and re-launch the roslaunch again to set correct max torque.
from dynamixel_driver import dynamixel_io
dxl_io = dynamixel_io.DynamixelIO("/dev/{l/r}hand-e160", 1000000)
dxl_io.write(<MOTOR_ID>, 14, (0, 0))
Softhand v2 dynamixel setup
Check default parameters of dynamixel
Motor’s default id is 1
and default baud rate is 57600
.
rosrun dynamixel_driver info_dump.py -b 57600 -p /dev/{l/r}hand-e160 1
Set baud rate
# set baud rate from 57600 to 57143
rosrun dynamixel_driver set_servo_config.py -b 57600 -r 34 <MOTOR_ID> -p /dev/{l/r}hand-v2-e160
Set motor ID
- 1: Thumb
- 2: Index finger
- 3: Middle finger
rosrun dynamixel_driver change_id.py <OLD_MOTOR_ID> <NEW_MOTOR_ID> -b 57600 -p /dev/{l/r}hand-v2-e160
Disable overload error
from dynamixel_driver import dynamixel_io
dxl_io = dynamixel_io.DynamixelIO("/dev/{l/r}hand-v2-e160", 57600)
dxl_io.write(<MOTOR_ID>, 17, (4,))
dxl_io.write(<MOTOR_ID>, 18, (4,))
Set max torque as 0 in EEPROM
Dynamixel motor’s max torque is set in volatile memory (RAM)
only when roslaunch is called.
When we disconnect dynamixel while roslaunch is running,
the max torque value in non-volatile memory (EEPROM) is used,
and its default value is 1023
(Max torque).
In this section, we set the max torque value in non-volatile memory (EEPROM) as 0
.
The effect is that the max torque will be set as 0
and the motor does not move,
when we disconnect dynamixel motor while roslaunch is running.
So, users need to stop and re-launch the roslaunch again to set correct max torque.
from dynamixel_driver import dynamixel_io
dxl_io = dynamixel_io.DynamixelIO("/dev/{l/r}hand-v2-e160", 57600)
dxl_io.write(<MOTOR_ID>, 14, (0, 0))
Change product
to distinguish E160 board
This is for USB2TTL dongle and DXSharingBoard(TTL)
We distinguish left and right hand with product
field of FTDI chip on E160.
- Left softhand v1 E160’s
product
:LEFT-E160
- Right softhand v1 E160’s
product
:RIGHT-E160
- Left softhand v2 E160’s
product
:LEFT-V2-E160
- Right softhand v2 E160’s
product
:RIGHT-V2-E160
In order to change them, please follow jsk_apc doc.
If you don’t have windows, you can do it with richardeoin/ftx-prog as follows.
git clone https://github.com/richardeoin/ftx-prog.git
cd ftx-prog/
make
# for left softhand v1
sudo ./ftx_prog --product LEFT-E160
# for right softhand v1
sudo ./ftx_prog --product RIGHT-E160
# for left softhand v2
sudo ./ftx_prog --product LEFT-V2-E160
# for right softhand v2
sudo ./ftx_prog --product RIGHT-V2-E160
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
eus_teleop | |
jsk_baxter_startup |
Launch files
- launch/softhand_v2_left.launch
-
- device [default: /dev/lhand-v2-e160]
- mode [default: position]
- launch/softhand_v2_right.launch
-
- device [default: /dev/rhand-v2-e160]
- mode [default: position]
- launch/softhand_right.launch
-
- device [default: /dev/rhand-e160]
- mode [default: position]
- launch/softhand.launch
-
- hand
- device
- mode [default: position]
- launch/softhand_v2.launch
-
- hand
- device
- mode [default: position]
- launch/softhand_left.launch
-
- device [default: /dev/lhand-e160]
- mode [default: position]