1.机器人工具箱
2.Figure的基本组成
figure和axes的概念
在实际绘图中,一张图可能会有好几个子图,这时axes表示生成的各个小图,而figure则是绘制各图的大画布。
所以,在之后设置图形属性时,有时用到gca(Axes),有时用到gcf(Figure)。
3.hidden
hidden off—不隐藏网格
hidden on—隐藏网格
4.保持上一个图形不消失
hold on; % 保持图形
5.mesh
mesh(x,y,f1,'edgecolor','r','linewidth',0.5)
6.legend图例标签
7.三维图形中向量的绘制
向量的绘制需要用到quiver3(x,y,z,u,v,w,’-r’)函数,
其中,
1、(x,y,z)是坐标原点的位置;
2、(u,v,w)是向量的大小;
3、’-r’是线段的属性,“-”表示直线段,“–”表示虚线,“r”表示线段的颜色,常用的有r-红色、g-绿色、b-蓝色、k-黑色
若要想得到带圆圈的线段,可使用’-or’
-
quiver(…,scale) scale的作用是自动缩放箭头以适合网格大小,然后根据因子 scale 拉伸它们。scale = 2
使它们的相对长度加倍,scale = 0.5 使它们的相对长度减半。使用 scale = 0 绘制速度向量,不应用自动缩放。遇到的问题:用不同量级的两组数,scale设置都不为零,设置因子相同,但二者的比例尺不同。
解决(?):让scale=0关闭自动缩放,通过数据乘以相应的倍数来调整箭头长短,比例尺处理办法相同。 -
axis equal xy轴等比例,矢量方向才能准确。quiver标配。
quiver3(x0,y0,z0,x11,x12,x13,’-or’);
hold on;
「注:在二维中使用的是quiver(x,y,u,v,’-r’)」
8.空间位姿表示方法-----RPY角
rpy2r(30,45,-30)等同于下
rotz(-30)*roty(45)*rotx(30)
rpy2tr
tr2rpy:旋转矩阵转换为绕三个轴的转角
rpy2jac
atan2(1,1)
ans =
0.7854
atan2d(1,1)
ans =
45
9.生成三维物体
X=w';
X=X(:,1:3);
d1=X(1,:);
d2=X(2,:);
d3=X(3,:);
d4=X(4,:);
d5=X(5,:);
d6=X(6,:);
% 根据xy的坐标生成底面
x1=[d1(1),d2(1),d3(1),d4(1),d1(1)];
y1=[d1(2),d2(2),d3(2),d4(2),d1(2)];
z1=[d1(3),d2(3),d3(3),d4(3),d1(3)];
% 根据xy的坐标生成顶面
x2=[d5(1),d6(1),d6(1),d5(1),d5(1)];
y2=[d5(2),d6(2),d6(2),d5(2),d5(2)];
z2=[d5(3),d6(3),d6(3),d5(3),d5(3)];
x=[x1;x2];
y=[y1;y2];
z=[z1;z2];
figure(1)
mesh(x,y,z,'edgecolor','r')
hold on
colormap(gray(1))
hidden off
axis equal
axis on
grid on
10.angvec2tr旋转矩阵
一个绕x轴旋转π / 2的例子,其旋转矩阵为
R=angvec2r(pi/2,[1,0,0])
R =
1.0000 0 0
0 0.0000 -1.0000
0 1.0000 0.0000
11.给矩阵加一行或加一列
加一行
A=[1 2 3;4 5 6;7 8 9];
row=[0 0 0];
A_row=[A;row];
A_row =
1 2 3
4 5 6
7 8 9
0 0 0
加一列
A=[1 2 3;4 5 6;7 8 9];
column=[0;0;0]; %一共三行,用“;”分开
A_column=[A column];
A_column =
1 2 3 0
4 5 6 0
7 8 9 0