Skip to content

Instantly share code, notes, and snippets.

View jgillis's full-sized avatar

Joris Gillis jgillis

View GitHub Profile
/* This file was automatically generated by CasADi 3.6.5+.
* It consists of:
* 1) content generated by CasADi runtime: not copyrighted
* 2) template code copied from CasADi source: permissively licensed (MIT-0)
* 3) user code: owned by the user
*
*/
#ifdef __cplusplus
extern "C" {
#endif
@jgillis
jgillis / scalable.py
Last active April 2, 2024 10:11
bspline fitting
from casadi import *
# Generate 3D data to fit
x = np.linspace(0,2,10)
y = np.linspace(2,4,10)
z = np.linspace(3,5,10)
[X,Y,Z] = np.meshgrid(x,y,z)
xyz_flat = np.vstack((X.ravel(),Y.ravel(),Z.ravel())).T
@jgillis
jgillis / demo.py
Created November 21, 2023 15:22
is_constraint_added
from casadi import *
opti = Opti()
x = opti.variable(10)
y = opti.variable(10)
opti.subject_to(x>=0)
opti.subject_to(x+y==0)
opti.subject_to(y>=0)
@jgillis
jgillis / outline.py
Last active September 7, 2023 08:16
m = 10 # Limite memory size
x_latest = MX.sym("x_latest",nx)
g_latest = MX.sym("g_latest",nx)
x_prev = MX.sym("x_prev",nx)
g_prev = MX.sym("g_prev",nx)
s_latest = x_latest-x_prev
y_latest = g_latest-g_prev
@jgillis
jgillis / demo.py
Last active May 28, 2023 21:27
How to do np.interp in CasADi
import casadi as cs
import numpy as np
xp = [1, 2, 3]
fp = [3, 2, 0]
x = [2.5,1.1]
print(np.interp(x=x,xp=xp,fp=fp))
XYZ_ref = [ simOut.EndEffector_AbsPos{1}.Values.Data,simOut.EndEffector_AbsPos{2}.Values.Data,simOut.EndEffector_AbsPos{3}.Values.Data ]';
Nsim = size(Gantry_out_D.Data,1);
XYZ = zeros(3,Nsim);
for k=1:Nsim
XYZ(:,k) = ForwardKinematicsFun(Gantry_out_D.Data(k,2),...
Axis1_Out_D.Data(k,2)/180*pi,...
Axis2_Out_D.Data(k,2)/180*pi,...
Axis3_Out_D.Data(k,2)/180*pi,...
Axis4_Out_D.Data(k,2)/180*pi,...
from casadi import *
x = MX.sym("x",30)
x0 = DM.rand(x.shape)
print("Reference approach")
# Repetitive
c = 0
import casadi
from casadi import *
from casadi.casadi import OPTI_INEQUALITY, Opti_bounded
import matplotlib.pyplot as plt
# https://epubs.siam.org/doi/pdf/10.1137/16M1062569
m1 = 1
m2 = 0.3
class Node:
def __init__(self,val):
self.val = val
self.nodes = []
class AutoBrancher:
OPEN = 0
DONE = 1
def __init__(self):
@jgillis
jgillis / gist:65fb76ccf1a8862f342d9f3400a88747
Created March 2, 2021 10:16
Hack around hardcoded paths in casadi dump files
Find and replace in casadi file:
casadi.Function('f',{x},{x},struct('dump_dir','matching_string')).save('test.casadi')
casadi.Function('f',{x},{x},struct('dump_dir','replace__string')).save('test2.casadi')
Check the difference in test and test2 to see the replacement.
Preservation of length only.