Hi Sam,

I used the s1223 airfoil since that’s what we were using on the car.

If you are curious in trying around with different airfoils the UIUC database is a good start.

Sam

]]>Regarding your work “Airfoil Configuration Optimization with Genetic Algorithms”, could you release the coordinate geometries for the wing/aerofoils you trialed?

I’d love to read your paper on this project and possibly use it to develop my own iterative development of multi-element wings

Regards

Samuel, CEng MEng

Hello,

`fmincon`

is an iterative method which passes its current guess for x as an argument to the constraint function; it then performs gradient estimation to drive the output of the constraint function to zero. y_{desiredend} is the desired final position for the particle, which we equality constrain to the final position of the trajectory guess.

It seems like trajectory optimization might not be the best fit for your problem–it’s generally used more for optimizing a time-varying control signal subject to dynamical constraints. I’d look more into system identification methods for differential equations.

]]>I’m following the description given here to solve an optimal control problem of the form defined https://scicomp.stackexchange.com/questions/34672/automatically-generate-constraints-for-trajectory-optimization?noredirect=1&lq=1

I’m not sure how the equality constraints have to be defined. For example,

in the code provided above

function [ c, ceq ] = double_integrator_constraints( x )

Could you please explain how the input argument, x, is computed?

Also, please explain what is ydesiredend mentioned in equality constraints?

In my problem, only the initial conditions are defined for the dynamical constraints and the terminal conditions are not available. In that case , I am not sure how the constraints have to be defined.

]]>Hi Joel,

The gear ended up being around 1.2kg, whereas standard landing skids generally have a fairly negligible weight. The 8 servos weigh about 0.5kg, and a lot of the remainder is probably the battery although I haven’t measured it separately. A more sophisticated leg could probably eliminate the need for the knee actuator and perhaps the heli / landing gear batteries could be combined. Dynamixels aren’t generally meant for low-weight applications–I’d say with careful work you could bring the weight of the gear down by a half kilogram although it’s hard to judge.

With this setup jumping launches probably wouldn’t be an improvement. For starters, the motors aren’t powerful enough to launch the heli into the air the way one might picture it happening, not even considering the compliant shanks. It would also be very difficult for pilots to control.

]]>Hi,

That is certainly possible. There’s a couple of ways that you can formulate this but the simplest would be to add a constraint that the norm of the velocity vector is equal to your desired constant value.

It would look something like this:

sqrt(vx_0^2 + vy_0^2) = v_des

And you would append that to the ceq vector. I can’t test this since I don’t have matlab at the moment but that should get you started.

]]>Thanks for the great tutorial.

My question is:

Could i set the initial velocity as a constant to only looking for the perfect angle ?

I would really thankfull if you could help me!

i would be very grateful!

]]>My Name is Matt Kelly – you link to my website on your trajectory optimization page. These projects are all really impressive – nice work. If you’re interested, send me an email and we can set up some time to chat on the phone or skype. I’m curious to hear what you’re working on next! Best wishes,

Matt

]]>To set the end point to zero, simply change the “pos-1” in line 16 of the double_integrator_constraints to just “pos”.

Then, in both double_integrator.m and double_integrator_constraints.m, change these lines:

vels = cumtrapz(times, accs);

pos = trapz(times, vels);

To:

vels = cumtrapz(times, accs) + VEL0;

pos = trapz(times, vels) + POS0;

where VEL0 is the initial velocity and POS0 is the initial position.

Also, if you don’t want to constrain the end velocity you can just remove the “vels(end)” constraint from double_integrator_constraints.

Hope that was helpful.

]]>