summaryrefslogtreecommitdiff
path: root/tests/trajectory-planner/circular-arcs/octave/create_3d_random_walk.m
blob: 725699892a64c4b04c611a98504c20a3f8b2cb23 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function create_3d_random_walk(num_moves, v_range, dp, theta, prefix,limits)
    %% Create a random path for G code testing
    % This version of the code produces random lengths, and random 3d bends. Desired velocity is held at 
    if ~exist('limits','var')
        limits=[-10,10,-10,10,-5,5]
    end


    tag = datestr(now(),"YYYY-MM-DD_HH-MM");
    fsuf=sprintf('%dsteps_%gin-%gin_%gips_%gdeg_max_angle_%s.ngc',num_moves,dp(1),dp(end),v_range(end),max(theta)*180/pi,tag); 
    fid=fopen(sprintf('../nc_files/cv_random_walk_%s_%s',prefix,fsuf),'w');
    %Initial state
    header= 'G61 G90\n G0 X-.1 Y0 Z0 F20\n G1 X0 Y0 Z0\nG64\n';
    fprintf(fid, header);
    move=create_3d_line(v_range, dp, theta,[],limits);
    for k=1:num_moves
        move_prev=move;
        move=create_3d_line(v_range, dp, theta, move_prev, limits);
        fprintf(fid,'G1 X%f Y%f Z%f F%f\n', move_prev.P2(1), move_prev.P2(2), move.P2(3), move_prev.v_req*60);
    end
    fprintf(fid,'M30\n');
    fclose(fid);

end