当前位置:   article > 正文

机器人用到的专业Toolbox总结_matlab机器人工具箱工作范围

matlab机器人工具箱工作范围

适用于 MATLAB® 版本 10 的机器人工具箱

该工具箱利用 MATLAB 的本机功能(线性代数、可移植性、图形)为 MATLAB 带来了机器人特定功能。

工具箱使用一种非常通用的方法将串行链接机械手的运动学和动力学表示为 MATLAB® 对象——用户可以为任何串行链接机械手创建机器人对象,并为 Kinova 的知名机器人提供了许多示例、Universal Robotics、Rethink 以及 Puma 560 和 Stanford arm 等经典机器人。

该工具箱还支持具有机器人运动模型(独轮车、自行车)、路径规划算法(bug、距离变换、D*、PRM)、运动动力学规划(晶格、RRT)、定位(EKF、粒子滤波器)、地图功能的移动机器人构建(EKF)和同时定位和映射(EKF),以及非完整车辆的Simulink模型。该工具箱还包括用于四旋翼飞行机器人的详细 Simulink 模型。

工具箱的优点是:

  • 代码成熟,为相同算法的其他实现提供了一个比较点;
  • 例程通常以简单的方式编写,以便于理解,可能以牺牲计算效率为代价。如果您对计算效率有强烈的感觉,那么您可以随时重写函数以提高效率,使用 MATLAB 编译器编译 M 文件,或创建 MEX 版本;
  • 由于源代码可用,因此有利于理解和教学。

daimashil

  1. >> mdl_puma560
  2. >> p560
  3. p560 =
  4. Puma 560 [Unimation]:: 6 axis, RRRRRR, stdDH, fastRNE
  5. - viscous friction; params of 8/95;
  6. +---+-----------+-----------+-----------+-----------+-----------+
  7. | j | theta | d | a | alpha | offset |
  8. +---+-----------+-----------+-----------+-----------+-----------+
  9. | 1| q1| 0| 0| 1.5708| 0|
  10. | 2| q2| 0| 0.4318| 0| 0|
  11. | 3| q3| 0.15005| 0.0203| -1.5708| 0|
  12. | 4| q4| 0.4318| 0| 1.5708| 0|
  13. | 5| q5| 0| 0| -1.5708| 0|
  14. | 6| q6| 0| 0| 0| 0|
  15. +---+-----------+-----------+-----------+-----------+-----------+
  16. >> p560.fkine([0 0 0 0 0 0]) % forward kinematics
  17. ans =
  18. 1 0 0 0.4521
  19. 0 1 0 -0.15
  20. 0 0 1 0.4318
  21. 0 0 0 1

可以为路径设置动画

  1. mdl_puma560
  2. p = [0.8 0 0];
  3. T = transl(p) * troty(pi/2);
  4. qr(1) = -pi/2;
  5. qqr = p560.ikine6s(T, 'ru');
  6. qrt = jtraj(qr, qqr, 50);
  7. plot_sphere(p, 0.05, 'y');
  8. p560.plot3d(qrt, 'view', ae, 'movie', 'move2ball.gif');

四旋翼动画

移动机器人沿着圆形轨迹升空并悬停在一个点上,同时缓慢转动。

>> sl_quadrotor

移动机器人动画

使用 Reeds-Shepp 规划器计算的汽车式移动机器人进行 3 点转弯

  1. q0 = [0 0 0]'; % initial configuration [x y theta]
  2. qf = [0 0 pi]'; % final configuration
  3. maxcurv = 1/5; % 5m turning circle
  4. rs = ReedsShepp(q0, qf, maxcurv, 0.05)
  5. % set up a vehicle model for animation
  6. [car.image,~,car.alpha] = imread('car2.png');
  7. car.rotation = 180; % degrees
  8. car.centre = [648; 173]; % pix
  9. car.length = 4.2; % m
  10. % setup the plot
  11. clf; plotvol([-4 8 -6 6])
  12. a = gca;
  13. a.XLimMode = 'manual';
  14. a.YLimMode = 'manual';
  15. set(gcf, 'Color', 'w')
  16. grid on
  17. a = gca;
  18. xyzlabel
  19. % now animate
  20. plot_vehicle(rs.path, 'model', car, 'trail', 'r:', 'movie', '3point.gif');

粒子过滤器定位动画

使用粒子过滤器从信标定位的移动机器人。

  1. V = diag([0.1, 1*pi/180].^2);
  2. veh = Vehicle(V);
  3. veh.add_driver( RandomPath(10) );
  4. map = Map(20, 10);
  5. W = diag([0.1, 1*pi/180].^2);
  6. L = diag([0.1 0.1]);
  7. Q = diag([0.1, 0.1, 1*pi/180]).^2;
  8. pf = ParticleFilter(veh, sensor, Q, L, 1000, 'movi
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/884731
推荐阅读
相关标签
  

闽ICP备14008679号