Skip to content

samlaipolyu/ncc_motion_planning

Repository files navigation

Compressible Curvature Motion Planning


Author: Jiewen Lai, The Hong Kong Polytechnic University
e-mail: jw.lai [at] connect [dot] polyu [dot] hk

Cite as

@article{lai2022constrained,
  title={Constrained Motion Planning of A Cable-Driven Soft Robot With Compressible Curvature Modeling},
  author={Lai, Jiewen and Lu, Bo and Zhao, Qingxiang and Chu, Henry},
  journal={IEEE Robotics and Automation Letters},
  volume={7},
  number={2},
  pages={4813--4820},
  year={2022},
  publisher={IEEE}
}

Let's have a look at what you will get here!

drawingdrawingdrawing

Youtube demo: https://youtu.be/Zb3cA3hTvKg

The above animations are showing a redundant soft robot can track the same trajectory in different tip orientations - if you can plan its body motion properly. This matlab file will help you to do that. You may customize the robot parameters, and extend it the differnt versions - robot sizes, number of segments, material properties, etc.

If you want to use it for real-time applications, you may want to convert the code into C++/C. The computation will be really fast - even fast enough for a master-follower control. Please refer to my another repo: https://github.com/samlaipolyu/GesSo where I have used a Leap Motion controller to manipulate this soft robot using my gestures.


This file contains the matlab codes of

  • An executable opt.m file as the main function.
  • A function file fwk.m for the forward kinematics from cable input x to end-effector result p_02.
  • three function files fwkeul_alpha.m,fwkeul_beta.m,fwkeul_gamma.m for the euler angles derived from the fwk.m.
  • A function file manipulator.m to detect the collision between preset obstacle and manipulator's body.

The codes have been tested on MATLAB R2017a and the above versions.


How-To.

  • Download all the files to the local in a single subfolder.
  • Customize the setting in opt.m, such as
    1. the desired trajecotry,
    2. setting angle (line 56) for constraint 1, or the obstacle parameters (line 50 - line 54) for the constraint 2, and
    3. the constraints for the optimization, such as ub and lb (line 100 - line 103)
  • Run opt.m. It will produce the animation of motion, and the related plots in a few seconds. The computational time depends on various factors, inclduing but not limited to
    1. the number of nodes of the desired trajectory
    2. the optimization setting
    3. the real-world feasiblity and difficulty of the computed pose of the soft robot
    4. and of course, your computer.
  • The main function also provide the gs=GlobalSearch method which has been tested. It will compute the same result. No local minima problem.
  • The main function also provide a svd(J{i}) method to compute the optimal lambda for each optimzation step.
  • The data shall be smoothed before the implementation to the real motors, because the intially computed cable actuations are sometimes jumpy which are only suitable for simulation. You can play around with the data with the smoothdata() function ('sgolay' is recommanded).
  • The .mlx files are the live scripts. They compute the decoupled solution in a symbolic way.
  • The image processing code is provided as depth_cam_obsv.m. It computes the 3D cooridinate of the POIs using a RealSense D435 depth camera.

Update on 29 Dec 2021, 1:21 AM, HKT

  • The bending stiffness can be customized to be associated to the curvature length .
  • The axial stiffness can be customized to be associated to the initial estimation of the curvature length .

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages