Author: Jiewen Lai, The Hong Kong Polytechnic University
e-mail: jw.lai [at] connect [dot] polyu [dot] hk
@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}
}
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.
- An executable
opt.m
file as the main function. - A function file
fwk.m
for the forward kinematics from cable inputx
to end-effector resultp_02
. - three function files
fwkeul_alpha.m
,fwkeul_beta.m
,fwkeul_gamma.m
for the euler angles derived from thefwk.m
. - A function file
manipulator.m
to detect the collision between preset obstacle and manipulator's body.
- Download all the files to the local in a single subfolder.
- Customize the setting in
opt.m
, such as- the desired trajecotry,
- setting angle (
line 56
) for constraint 1, or the obstacle parameters (line 50 - line 54
) for the constraint 2, and - the constraints for the optimization, such as
ub
andlb
(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- the number of nodes of the desired trajectory
- the optimization setting
- the real-world feasiblity and difficulty of the computed pose of the soft robot
- 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.