robotics-toolbox-matlab

petercorkeLGPL-2.1活跃维护

MATLAB 机器人学工具箱,提供机械臂与移动机器人的运动学、雅可比、刚体动力学、轨迹规划、卡尔曼滤波和 SLAM 等算法实现,方便在 MATLAB 里快速建模与仿真机器人系统。

Robotics Toolbox for MATLAB

10.4.7发布于 2020-09-24 23:40 UTC1,584star464fork同步于 2026-11-07 07:32 UTC

怎么上手

由 README 提炼,执行前请确认
下载 RTB.mltbx 并在 MATLAB 中双击打开即可自动安装;或 git clone 三个仓库后执行 make -C robot,再在 MATLAB 中 addpath rvctools/common 并运行 startup_rvc
硬件要求按 README 说明

README 未说明硬件要求;需在 MATLAB R2016b 或更高版本中运行。

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

MATLAB 经典机器人工具箱,用于串联机械臂运动学动力学建模与移动机器人算法教学验证

MATLAB 机器人学工具箱,提供机械臂与移动机器人的运动学、雅可比、刚体动力学、轨迹规划、卡尔曼滤波和 SLAM 等算法实现,方便在 MATLAB 里快速建模与仿真机器人系统。

核心能力

  • 用 MATLAB 对象表示任意串联连杆机器人的运动学与动力学
  • 内置 Puma560、Stanford 臂及 Kinova、UR、Rethink 等机器人模型
  • 提供 bug、D*、PRM、RRT 等路径与运动规划算法
  • 支持 EKF、粒子滤波定位与建图及 SLAM
  • 附带非完整车辆与四旋翼的 Simulink 模型

容易踩的坑

从 GitHub 安装需同时克隆 spatialmath-matlab 和 toolbox-common-matlab 两个依赖仓库;从源码安装需先执行 make 编译 MEX 与 Java 类文件;startup_rvc 只对当前会话生效,需写入 startup.m 或用 pathtool 保存路径;该项目已停止活跃开发,问题可能无人回复。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本10.4.7
  1. legacy-zipsLegacy zip archives: RTB 9.10 and 10.3.12026-09-29 · 2026-09-29 20:48 UTC
    查看更新说明

    Older releases of the Robotics Toolbox for MATLAB as plain zip archives, previously downloadable from petercorke.com. robot-10.3.1.zip is the version used with Robotics, Vision & Control, 2nd edition.

    For the current MATLAB Toolbox see the latest release (RTB.mltbx), and for new work the Robotics Toolbox for Python.

  2. 10.4.7最新正式版2020-09-24 · 2020-09-24 23:40 UTC

    这个版本没有写更新说明。

  3. 10.4.62020-07-19 · 2020-07-19 06:59 UTC

    这个版本没有写更新说明。

  4. 10.4.52020-06-10 · 2020-06-10 10:24 UTC

    这个版本没有写更新说明。

  5. 10.4.42020-05-31 · 2020-05-31 00:44 UTC

    这个版本没有写更新说明。

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Project Status: Inactive – The project has reached a stable, usable state but is no longer being actively developed; support/maintenance will be provided as time allows. License: LGPL v3 GitHub stars

    Robotics Toolbox for MATLAB® release 10

    Which toolbox do I want?

    If you are…useget it from
    starting something newRobotics Toolbox for Python, actively developed, and used by the 3rd edition of Robotics, Vision & Controlpip install roboticstoolbox-python, or GitHub
    working in MATLAB, or using the 2nd edition of Robotics, Vision & Control (2017)this toolbox, release 10.4RTB.mltbx: open it in MATLAB and it installs itself (see Installation)
    using the 1st edition of Robotics, Vision & Control (2011), or a course built on release 9release 9.10the Robotics Toolbox page, with the older releases
    using the MATLAB version of the 3rd edition of Robotics, Vision & Control (2023)MathWorks' Robotics System Toolbox and related toolboxes, not this oneMathWorks

    This toolbox is no longer actively developed, and questions and issues here may go unanswered. The FAQ covers the common problems, most of which come from an incorrect MATLAB path; the Google group has years of past discussion.


    Synopsis

    This toolbox brings robotics specific functionality to MATLAB, exploiting the native capabilities of MATLAB (linear algebra, portability, graphics).

    The Toolbox uses a very general method of representing the kinematics and dynamics of serial-link manipulators as MATLAB® objects – robot objects can be created by the user for any serial-link manipulator and a number of examples are provided for well known robots from Kinova, Universal Robotics, Rethink as well as classical robots such as the Puma 560 and the Stanford arm.

    The toolbox also supports mobile robots with functions for robot motion models (unicycle, bicycle), path planning algorithms (bug, distance transform, D*, PRM), kinodynamic planning (lattice, RRT), localization (EKF, particle filter), map building (EKF) and simultaneous localization and mapping (EKF), and a Simulink model a of non-holonomic vehicle. The Toolbox also including a detailed Simulink model for a quadrotor flying robot.

    Advantages of the Toolbox are that:

    • the code is mature and provides a point of comparison for other implementations of the same algorithms;
    • the routines are generally written in a straightforward manner which allows for easy understanding, perhaps at the expense of computational efficiency. If you feel strongly about computational efficiency then you can always rewrite the function to be more efficient, compile the M-file using the MATLAB compiler, or create a MEX version;
    • since source code is available there is a benefit for understanding and teaching.

    This Toolbox dates back to 1993 and significantly predates the Robotics Systems Toolbox® from MathWorks. The former is free, open and not supported, while the latter is a fully supported commercial product.

    Code Example

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

    We can animate a path

    Puma robot animation

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

    Quadrotor animation

    Mobile robot lifting off and hovering over a point following a circular trajectory, while also slowly turning.

    >> sl_quadrotor
    

    Quadrotor animation

    Mobile robot animation

    Car-like mobile robot doing a 3-point turn computed using the Reeds-Shepp planner

    Mobile robot particle filter animation

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

    Particle filter localization animation

    Mobile robot localizing from beacons using a particle filter.

    Mobile robot particle filter animation

    V = diag([0.1, 1*pi/180].^2);
    veh = Vehicle(V);
    veh.add_driver( RandomPath(10) );
    map = Map(20, 10);
    W = diag([0.1, 1*pi/180].^2);
    L = diag([0.1 0.1]);
    Q = diag([0.1, 0.1, 1*pi/180]).^2;
    
    pf = ParticleFilter(veh, sensor, Q, L, 1000, 'movie', 'pf.mp4');
    pf.run(100);
    

    A fully commented version of this is provided in the LiveScript demos/particlefilt.mlx.

    What's new in release 10

    • All code related to pose representation has been split out into the Spatial Math Toolbox. This repo is now a dependency.
    • SerialLink class has a twists method which returns a vector of Twist objects, one per joint. This supports the product of exponential formulation for forward kinematics and Jacobians.
    • a prototype URDF parser

    Installation

    Install the packaged toolbox (simplest)

    Download RTB.mltbx and open it in MATLAB (double-click it, or drag it into the Command Window). MATLAB installs the toolbox and sets up its path, permanently. Everything it needs, including the spatial maths functions, is included. Manage or remove it later from Home → Add-Ons → Manage Add-Ons.

    Install from shared MATLAB Drive folder

    This will work for MATLAB Online or MATLAB Desktop provided you have MATLAB drive setup.

    1. Click on the appropriate link below and an invitation to share will be emailed to the address associated with your MATLAB account:
    1. Accept the invitation.
    2. A folder named RVC1 or RVC2 will appear in your MATLAB drive folder.
    3. Use the MATLAB file browser and navigate to the folder RVCx/rvctools and double-click the script named startup_rvc.m

    Note that this is a combo-installation that includes the Machine Vision Toolbox (MVTB) as well.

    Install from github

    You need to have a recent version of MATLAB, R2016b or later.

    The Robotics Toolbox for MATLAB has dependency on two other GitHub repositories: spatialmath-matlab and toolbox-common-matlab.

    To install the Toolbox on your computer from github follow these simple instructions.

    From the shell:

    mkdir rvctools
    cd rvctools
    git clone https://github.com/petercorke/robotics-toolbox-matlab.git robot
    git clone https://github.com/petercorke/spatialmath-matlab.git smtb
    git clone https://github.com/petercorke/toolbox-common-matlab.git common
    make -C robot
    

    The last command builds the MEX files and Java class files. Then, from within MATLAB

    >> addpath rvctools/common  %  rvctools is the same folder as above
    >> startup_rvc
    

    The second line sets up the MATLAB path appropriately but it's only for the current session. You can either:

    1. Repeat this everytime you start MATLAB
    2. Add the MATLAB commands above to your startup.m file
    3. Once you have run startup_rvc, run pathtool and push the Save button, this will save the path settings for subsequent sessions.

    Online resources

    License

    This toolbox is released under GNU LGPL.

    Other MATLAB toolboxes for robotics