-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathv_plot_pose.m
More file actions
50 lines (44 loc) · 1.31 KB
/
v_plot_pose.m
File metadata and controls
50 lines (44 loc) · 1.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
function [] = v_plot_pose(pose, vector_size)
%% v_plot_pose(pose, vector_size)
% plots a 3D pose onto the current figure
% the lengths of the pose's vectors are set with vector_size
% pose defaults to be on the origin aligned with the major axes (aka an identiy matrix)
% vector_size defaults to 1
% no return value
% X axis = red
% Y axis = green
% Z axis = blue
% hold must be set to 'on' for the figure
% Example 1:
% figure(1)
% cla
% hold on
% grid on
% set(gca, 'DataAspectRatio', [1 1 1])
% v_plot_pose()
% v_plot_pose(v_make_pose([1, 2, 3], [0, 0, 30]), 2)
%
% J. Wigglesworth 2018
try
pose;
catch
pose = v_make_pose();
end
try
vector_size;
catch
vector_size = 1;
end
x_vector = vector_size*pose(1:3, 1)';
y_vector = vector_size*pose(1:3, 2)';
z_vector = vector_size*pose(1:3, 3)';
origin = pose(1:3, 4)';
head_size = vector_size * 2;
pp = [origin, x_vector];
quiver3(pp(1), pp(2), pp(3), pp(4), pp(5), pp(6), 'r', 'MaxHeadSize', head_size)
pp = [origin, y_vector];
quiver3(pp(1), pp(2), pp(3), pp(4), pp(5), pp(6), 'g', 'MaxHeadSize', head_size)
pp = [origin, z_vector];
quiver3(pp(1), pp(2), pp(3), pp(4), pp(5), pp(6), 'b', 'MaxHeadSize', head_size)
plot3(origin(1), origin(2), origin(3), 'k.')
end