Code Monkey home page Code Monkey logo

hkust-rml / flexflip Goto Github PK

View Code? Open in Web Editor NEW
16.0 4.0 5.0 30.95 MB

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: MIT License

CMake 0.04% C++ 0.25% C 0.01% Python 0.08% Shell 0.01% G-code 99.59% MATLAB 0.03%
dexterous-robotic-hand grasping-interactions robotic-manipulation

flexflip's Introduction

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 ([email protected]) Abdullah NAZIR([email protected])

flexflip's People

Contributors

zachjiang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

flexflip's Issues

package name

In readme.md
change

  • rosrun soft_gripper_page_turning soft_gripper_frame.py to rosrun a4_paper_turning soft_gripper_frame.py

and

  • rosrun soft_gripper_page_turning page_turning_1D_aug_demo.py to rosrun a4_paper_turning page_turning_1D_aug_demo.py

as the package name stated in package.xml is a4_paper_turning rather soft_gripper_page_turning

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.