57 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Matlab
		
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Matlab
		
	
	
function [ values ] = flight_trajectory( input_args )
 | 
						|
%UNTITLED2 Summary of this function goes here
 | 
						|
%   Detailed explanation goes here
 | 
						|
 | 
						|
    import gtsam.*;
 | 
						|
 | 
						|
    values = Values;
 | 
						|
    curvature = 2;
 | 
						|
    
 | 
						|
    
 | 
						|
    forward = Pose3(Rot3(),Point3(10,0,0));
 | 
						|
    left = Pose3(Rot3.RzRyRx(0.0,0.0,curvature*pi/180),Point3(10,0,0));
 | 
						|
    right = Pose3(Rot3.RzRyRx(0.0,0.0,-curvature*pi/180),Point3(10,0,0));
 | 
						|
 | 
						|
    pose = Pose3(Rot3.RzRyRx(0,0,0),Point3(0,0,1000));
 | 
						|
    
 | 
						|
    plan(1).direction = right;
 | 
						|
    plan(1).steps = 20;
 | 
						|
    
 | 
						|
    plan(2).direction = forward;
 | 
						|
    plan(2).steps = 5;
 | 
						|
    
 | 
						|
    plan(3).direction = left;
 | 
						|
    plan(3).steps = 100;
 | 
						|
    
 | 
						|
    plan(4).direction = forward;
 | 
						|
    plan(4).steps = 50;
 | 
						|
    
 | 
						|
    plan(5).direction = left;
 | 
						|
    plan(5).steps = 80;
 | 
						|
    
 | 
						|
    plan(6).direction = forward;
 | 
						|
    plan(6).steps = 50;
 | 
						|
    
 | 
						|
    plan(7).direction = right;
 | 
						|
    plan(7).steps = 100;
 | 
						|
    
 | 
						|
    plan_steps = numel(plan);
 | 
						|
    
 | 
						|
    values_i = 0;
 | 
						|
    
 | 
						|
    for i=1:plan_steps
 | 
						|
        direction = plan(i).direction;
 | 
						|
        segment_steps = plan(i).steps;
 | 
						|
        
 | 
						|
        for j=1:segment_steps
 | 
						|
           pose = pose.compose(direction); 
 | 
						|
           values.insert(symbol('x',values_i), pose);
 | 
						|
           values_i = values_i + 1;
 | 
						|
        end
 | 
						|
        
 | 
						|
    end
 | 
						|
 | 
						|
 | 
						|
end
 | 
						|
 |