Skip to content

The project demonstrates an advanced dynamic manipulation strategy by soft gripper called flex-and-flip. The technique is targeted at flexible, thin objects and applied to obtaining secure, pinch grasps on them.

License

HKUST-RML/flexflip

Repository files navigation

flexflip

flex-and-flip: The project demonstrates an advanced dynamic manipulation strategy by soft gripper called flex-and-flip. The technique is targeted at flexible, thin objects and applied to obtaining secure, pinch grasps on them. Initially, the flexible object (a strip of paper) is placed on a tabletop. The robotic hand approaches and deforms the object (the “flex” phase of the operation), and then the deformed object is tucked into the gap between the fingers (the “flip” phase). Finally, a pinch grasp is obtained and the page turning task (or other secondary manipulation tasks) can be performed. The technqiue could be further extented to turning planar deformable objects and back-to-back page turning.

Video: video1

Authors: Chunli Jiang, Abdullah Nazir, Ghasem Abbasnejad and Jungwon Seo (All members are from HKUST Robotic Manipulation Lab.)

Contributor: Jiming Ren

Related Paper: Dynamic Flex-and-Flip Manipulation of Deformable Linear Objects (Contributed Paper Accepted by IROS2019 Macau)

If you use flexflip or its sub-modules for your reasearch or application, please star this repo and cite our related paper.

Theory:

The contents of the following paragraph are not applicable any more as the codes have been changed. May be we can just refer the readers to the flex flip theory directory - AN

Modeling and Manipulating a Linear Deformable Object : The directory DFF-Manipulation-master/modeling contains 1) a MATLAB function to generate minimum bending energy curves given the $(x,y)$-coordinates of the right end-point. The left end-point is assumed clamped at the origin. The slope at the left end is set to zero, whereas the right slope is left free. This can be modified in-code. 2) a MATLAB scripts that considers a set of feasible right endpoint locations and obtains the minimum bending energy curve for each. Simultaneously, the magnitude of total surface energy as well as the minimum coefficient of friction required to maintain contact #2 is computed. The following figure was generated using this script.

Knowledge of variation of bending energy and the minimum coefficient of friction can help in planning the path of contact #2 such as shown in the following figure.

Hardware Setup:

The following figure shows the setup on sight. Our gripper is, mounted on UR10, is to be controlled to turn the paper strip, localized autonomously through AprilTag. Range of the initialconfigurations of the hand to be tested in our page-turning experiments. And here are listed iterms we adopted for experiments:

  • Robot arm: Universal Robot UR10
  • 3D printed soft gripper: Stl files and descriptive drawings for manufacturing are in mesh folder. The soft pneumatic finger is 3D printed by 95A hardness thermoplastic polyurethane (TPU) on Ultimaker 3 Extended. Thickness of each layer is set as 0.08mm and the printing speed as 35mm/s for high precision. Mounting parts are printed by polylactide (PLA) on the same machine.
  • USB camera: Logitech C525 Webcam
  • Arduino: Arduino Mega
  • DAC module
  • Two SMC ITV 0030 series electro-pneumatic regulators

Software Prerequisites:

  1. Ubuntu and ROS:Our system is devevloped in Ubuntu 16.04, ROS Kinetic.
  2. Robot Arm Control: ROS UR modern driver and ROS universal_robot package are used to control UR10 with the IK solvers provided by MoveIt!.
  3. Visual Perception: Monocular Camera drived by ROS package usb_cam provides transform between the object and center of camera ROS package apriltags_ros. The pregrasping pose is set based on this perception information.
  4. End Effector Control: We use ROS package rosserial_arduino to setup the communication between ROS and Arduino board. DAC module connect with Arduino will convert PWM signal to analog for pneumatic pressure control.

Experiments:

The following steps will help to test and debug :

1.Initiate the soft gripper control:

start a ROS core and setup connection with Arduino:

roscore
rosrun rosserial_python serial_node.py /dev/you_serial_node

test the gripper:

rostopic pub soft std_msgs/UInt16 1 --once

Note: if the serial port permission denied:

sudo chmod a+rw /dev/ttyACM0

2.Setup apriltags detection:

run apriltag with usb_cam:

roslaunch usb_cam usb_cam-test.launch
ROS_NAMESPACE=usb_cam rosrun image_proc image_proc
roslaunch apriltags_ros example.launch
rostopic echo /tag_detections

3.Setup univeral robot control:

launch robot driver and moveit planner:

roslaunch ur_modern_driver ur10_bringup.launch robot_ip:=your.robot.ip [reverse_port:=REVERSE_PORT]
roslaunch ur10_moveit_config ur10_moveit_planning_execution.launch limited:=true
roslaunch ur10_moveit_config moveit_rviz.launch config:=true  

subsrcibe to the gripper frame:

rosrun soft_gripper_page_turning soft_gripper_frame.py

run python script:

rosrun soft_gripper_page_turning page_turning_1D_aug_demo.py

Note: A shell script paper_turning.sh is written to setup the environment automatically at home directory:

./paper_turning.sh

Maintainers:

Chunli JIANG (cjiangab@ust.hk) Abdullah NAZIR(sanazir@connect.ust.hk)

About

The project demonstrates an advanced dynamic manipulation strategy by soft gripper called flex-and-flip. The technique is targeted at flexible, thin objects and applied to obtaining secure, pinch grasps on them.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published