Kinematic and Dynamic Modeling of Cable-Object Interference and Wrapping in Complex Geometrical-Shaped Cable-Driven Parallel Robots
Click here to view the full video.
-
Clone the repository:
git clone https://github.com/bhattner143/GeoWrapSim-CDPR.git
-
Add the folder to MATLAB: Open MATLAB, navigate to the downloaded folder, and add it to the MATLAB path.
-
Initialize the CASPR environment: Run the
initialise_CASPR.mscript to configure the Cable-Driven Parallel Robot Simulator (CASPR) environment.
CASPR is a simulation framework for modeling and analyzing cable-driven parallel robots. It provides tools for kinematic and dynamic analysis, enabling researchers and engineers to study complex cable-driven systems effectively.
Explore the tutorial scripts in the scripts/CASPR_tutorials folder. These .mlx scripts provide step-by-step guidance on using CASPR for various applications, including kinematic and dynamic analysis of cable-driven parallel robots. Open these scripts in MATLAB to follow the tutorials interactively.
The tutorial scripts in the scripts/CASPR_tutorials folder are untested due to modifications in the repository. If you encounter issues, refer to the original CASPR repository for tutorials at CASPR GitHub Repository.
You can also explore the CASPR tutorial series on YouTube for step-by-step guidance:
CASPR YouTube Playlist
The .mat files for the NURBS teapot model are located in the data/nurbs_related directory.
The BMWrapArm model configuration files are available in the data/model_config/models/MCDM/BMWrapArm directory. Key files include:
-
BMWrapArm_bodies.xml
- Initial joint pose
- Center of mass and its location
- Inertial matrix
-
BMWrapArm_cables.xml
- Cable locations and attachment points
-
BMWrapArm_operational_spaces.xml
- Operational spaces information
-
BMWrapArm_trajectories.xml
- Trajectory details
Other robot models are available in the data/model_config/models/SCDM, data/model_config/models/MCDM, and data/model_config/models/HCDM directories. However, wrapping models have not been implemented for these robots.
Simulation scripts are located in /scripts/cable_wrapping/Simulations/. Key scripts include:
-
Inverse Kinematics Simulation
Runscript_BMWrapArm_IK_cone_big_obs_nurbs_mul_obj_wrap.mfor inverse kinematics simulation with a teapot obstacle and cone-frustum mobile platform. -
Inverse Dynamics Simulation
Runscript_BMWrapArm_ID_friction_cone_big_obs_nurbs_mul_obj_wrap.mfor inverse dynamics simulation with a friction obstacle and cone-frustum mobile platform. -
Other Simulations
Additional scripts such asscript_BMWrapArm_geodesic_model_IK_almond.mandscript_BMWrapArm_geodesic_model_IK_cone_big_obstacle_torus.mare available for simulations with almond-shaped mobile platforms and cylinder obstacles, or cone-frustum mobile platforms and torus obstacles. These scripts may require debugging to function correctly.
Class File: /model/nurbs/NURBSGeodesic.m
This class implements the geodesic equations, including Christoffel symbols, numerical solutions, metric tensors, and geometrical properties. It contains all foundational mathematics and equations related to geodesics discussed in Section 3.2 of the paper.
Class File: /data/model_config/models/WrappingBezierGeodesicModelConfig.m
This class defines the BMWrapArm model, including bodies and cables. Note that the cables are discontinuous and not optimized in this class.
Class File: /scripts/cable_wrapping/Simulations/MultipleCableObjectWrapping/CWOptWithGenIntDetBezier.m
This class implements the cable object detection algorithm (Algorithm 1) and performs optimization for cable wrapping geodesics for a static pose in multi-object cable wrapping scenarios, as discussed in Section 3.3 of the paper.
Class File: /model/optimizer/CableWrappingOptimizerBezier.m
This class handles numerical optimization for cable wrapping geodesics for a static pose in single-object cable wrapping scenarios, as detailed in Section 3.3 of the paper.
Class File: /CASPR/src/Simulation/CableWrappingMotionSimulatorBase.m
This class provides a graphical simulation environment for cable wrapping motion.
-
Class File:
/model/inverse_kinematics/CableWrappingGeodesicIKSimulatorBezier.m
Implements the inverse kinematics (IK) model based on geodesics, as described in Section 5 of the paper. -
Class File:
/model/inverse_kinematics/CableWrappingInverseKinematicsSimulator.m
Implements an older version of the inverse kinematics (IK) model, as described in Section 5 of the paper.
Class File: /src/Analysis/InverseDynamics/Solvers/CableWrappingIDSolverQuadProgBezier.m
This class implements a quadratic programming-based inverse dynamics solver for cable-driven parallel robots, supporting multiple solver backends and linear constraints.
Class File: /model/inverse_dynamics/CableWrappingInverseDynamicsSimulatorBezier.m
Implements the inverse cable wrapping dynamics simulator with the friction model discussed in Section 6 of the paper.
Class File: /model/friction/BiarcInterpolation/CWGFrictionModelBezierSurfs.m
Implements the friction model discussed in Section 6 of the paper.
Dipankar Bhattacharya, T K Cheung, Yaxiang Wang, et al. Kinematic and Dynamic Modeling of Cable-Object Interference and Wrapping in Complex Geometrical-Shaped Cable-Driven Parallel Robots. TechRxiv. June 04, 2024. DOI: 10.36227/techrxiv.171746934.49156915/v1
@article{bhattacharyakinematic,
title={Kinematic and Dynamic Modeling of Cable-Object Interference and Wrapping in Complex Geometrical-Shaped Cable-Driven Parallel Robots},
author={Bhattacharya, Dipankar and Cheung, TK and Wang, Yaxiang and Lau, Darwin}
}