GithubHelp home page GithubHelp logo

johndtill / continuumrobotexamples Goto Github PK

View Code? Open in Web Editor NEW
139.0 8.0 44.0 14.07 MB

An incremental guide to continuum robot mathematical modeling and numerical implementation. The examples are divided into chapters within the folder structure, and each chapter contains a PDF and code examples.

License: MIT License

TeX 1.54% QMake 0.03% C++ 80.11% MATLAB 0.38% CMake 2.79% C 2.19% Shell 0.16% Cuda 1.13% Fortran 11.43% Python 0.12% JavaScript 0.07% CSS 0.05%
continuum-robotics robotics dissertation open-source mathematical-modelling soft-robotics mechanics nonlinear-optimization cosserat-rod

continuumrobotexamples's People

Contributors

johndtill avatar xlsufo avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

continuumrobotexamples's Issues

Build error of project “01_Statics\06_Tendon_Robot_Variants\Cpp_3\Tendon_Displacement_Control”

Hi John,
I have read your paper "Real-time dynamics of soft and continuum robots based on Cosserat rod models", it's a very nice job. I am very happy to learn your code.

There is a Build error when I buid the project “01_Statics\06_Tendon_Robot_Variants\Cpp_3\Tendon_Displacement_Control”:
:-1: error: dependent '..\..\..\Library\eigen\Eigen\src\Core\products\GeneralBlockPanelKernel.h' does not exist.

The project "01_Statics\05_Tendon_Robot" dosen't have this problem, I think it's strange.

The project "02_Dynamics\03_Tendon_Robot" also have a problem that the Final sum of squares is so big and solution failed. I'm confused. I don't know what's wrong.

Could you help me?

Thanks,
Lisong

about the fsolve() function in TendonRobotStatics.m

The fsolve() function in TendonRobotStatics.m can easily diverge when you give a little larger tendon forces. After tunning, this can be fixed by a more accurate initial guess, for example:

n0_guess = [0;0;-sum(tau)];
v0_guess = inv(Kse)*inv(R0)*n0_guess + [0;0;1];
m0_guess = zeros(3,1);
for i = 1:length(tau)
    m0_guess = m0_guess + cross( r{i}, tau(i)*[0;0;-1] );
end
u0_guess = inv(Kbt)*inv(R0)*m0_guess + [0;0;0];

init_guess = [n0_guess; u0_guess];
global Y; % Forward declaration for future scoping rule changes
fsolve(@shootingFunction, init_guess, options);

Frictional model for tendon driven continuum robot

Hi John,

I'm working on a project involving a tendon driven continuum robot. I would like to implement your frictional model from you paper "Real-time dynamics of soft and continuum robots based on Cosserat rod models", section 5.2.1 and was hoping you could help.

Do you simply sum solutions for each of the tendons for f_f,i and l_f,i, and and then subtract them from f_c and l_c respectively? I'm also not sure about how to calculate v_i. An example would be useful if you have one, preferably in MATLAB. Thanks in advance.

Kind regards,
Solomon

External force on an arbitry point.

Hi John,

All your simulated cases are with force at the tip.
I want o know how you deal with the force that is not at the tip. For example, there is a force Fe = [0 1,2] at s = L/2, which is at the middle of the robot.

I guess, if there is only one force, probably just need to change the boundary condition. If there are multiple forces at different location of the robot, it will be more complicated.
image

Thank you!

Non-crucial Derivation Error

Although the final moment equation at the bottom of page 42 in the dissertation is correct, the initial statement of the equation located just above is missing terms.

  • Create an erratum
  • Potentially create a modified version of the document with a fix and/or a footnote recognizing the error

Question about TendonRobotStatics.m

in line 109 of 'TendonRobotStatics.m', you have v0 = Kse\n0 + [0;0;1];
did you neglect R0? I know it does not affect the numerical solution since R0 = eye(3).

Rod with an Archimedean spiral reference shape

Hello John,

I saw that you have graduated and Congratulations! Not sure if you have memory on the stuff or not. But I have a problem to initialize a complicated geometry curve as a reference configuration.

I am trying to see if the code can be applied to a rod with more complicated reference shapes rather than a planar straight rod or regularly curved rod. After some trials, it seems to work well for some complicated shape as long as I can reparameterize the shape using arc length s.

However, for a curve that cannot be parameterized using s, it will be a pain. For example, a rod that has Archimedean spiral shape as a reference configuration using cylindrical system $r =a*\theta$ or using position vector $p = [\thetacos(\theta), \thetasin(\theta), 0]'$.
To set up such a reference shape, u_0(s) and v_0(s) are required and they are functions of s. Ideally, we need to find $\theta = f(s)$, which is represent \theta using s. But this is not possible, which can be seen from the following picture: we can not find an explicit function. Do you have any good ideas about this?

Thanks,
Jiefeng

image

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.