文件交换

图片缩略图

移动机器人仿真工具箱

版本2.2(7.98 MB)由 MathWorks学生竞赛团队
用于车辆运动学、可视化金宝app和传感器仿真的MATLAB和Simulink实用程序。
4.9
30评级

510下载

更新2019年10月15日

从GitHub

视图版本历史

在GitHub上查看许可证

该工具箱为机器人仿真和算法开发提供了实用工具。其中包括:

-机器人几何图形(如差速驱动、三轮和四轮车辆)的二维运动学模型,包括正向运动学和反向运动学
-可配置激光雷达、物体和机器人探测器模拟器
-占领地图中的机器人车辆和传感器的可视化
MATLAB和Simuli金宝appnk的例子和文档

引用作为

MathWorks学生竞赛团队(2021年)。移动机器人仿真工具箱(https://github.com/mathworks-robotics/mobile-robotics-simulation-toolbox),GitHub。已检索.

意见及评分(67)

沿江Du以北

Mazen Bahaidarah

这是一个非常强大的工具箱。
我想问一下,如何让一个机器人在(Multi-Robot-Environment)中检测一个二进制地图中的物体、障碍物和其他机器人?
谢谢

Hyaesung月球

这个工具箱是否在函数中包含蒙特卡罗定位算法?在真实的硬件中实现代码是可能的吗?

谢谢你!

泰芬杜鲁斯酒店

何祥月

mrsDiffDriveWaypointLogicModel文件没有正常运行,并且没有沿着路径点移动。

nithesh kanddregula

何塞阿根廷Arbelaez

@Ganesh,这个错误是针对另一个名为“Robotics Playground”的文件交换提交,当你试图在没有安装图像处理工具箱的情况下交互设置障碍时就会发生。

@Jose,我“设置障碍”时出现以下错误:
评估RP障碍物环境块(掩码)“无标题/障碍物环境”的“MaskDialog”回调时出错。回调字符串为“setObstaclesUI(gcb)”
无法识别的函数或变量' imdirect '

穆罕默德汗

何塞阿根廷Arbelaez

@Andres,确保工具箱中的文件在MATLAB路径上。如果你下载了“startMobileRoboticsSimulationToolbox.m”,那么文件中有一个脚本应该从工具箱文件夹中运行。如有任何问题,请发邮件至roboticsarena@mathworks.com。

Andres Vargas Ibanez说

我又犯了一个错误,我安装了MATLAB 2020,第一次运行这个工具箱示例:

无法识别的函数或变量“差速器驱动”。

mrsDiffDriveNavigation错误(第10行)
dd=差速器驱动(R,L);

发生了什么?我有所有必要的工具箱

Andres Vargas Ibanez说

@何塞,非常感谢你的解决方案帮助我解决了这个问题!

何塞阿根廷Arbelaez

@Andres,我想你指的是移动机器人培训工具箱中的一个模块。我们在评论中回答了这个问题://www.tatmou.com/matlabcentral/fileexchange/62961-mobile-robotics-training-toolbox

Andres Vargas Ibanez说

使用Simu金宝applink块,我得到了错误:
S功能“无标题/机器人模拟器/软实时”中出错:S功能“sfun_时间”不存在
请帮助

米兰Padhiyar

塔季扬娜金

你好,朋友,感谢这个伟大的工具箱!我试图让汽车在一条直线上行驶,并计算逆运动学。你能告诉我怎样连接一条直线(画黑线的地图)并计算逆运动学问题吗?

何塞阿根廷Arbelaez

@Andres,你能确保安装了机器人系统工具箱吗?您可能没有安装所需的工具箱。

Andres Vargas Ibanez说

我得到错误:“未定义函数或变量'controllerPurePursuit'.”,我能做什么来修复它。

丹尼尔·范·Wensveen

非常感谢您制作这个工具箱。使用起来很愉快,文档也非常有用。对于所有相关人员,感谢您使我的项目取得成功!

约瑟夫Thachil乔治

我正在得到下面的错误,而运行这个项目

“MRS多机器人/多机器人激光雷达传感器/多机器人激光雷达传感器”的“输入端口2”未连接。
组件:Simulin金宝appk |类别:块警告
在“MRS多机器人规避/多机器人激光雷达传感器/视觉系统”上发现未连接的输出线(输出端口:1)
组件:Simulin金宝appk |类别:块警告
运行模拟时发生错误,模拟被终止
原因:
调用“MultiRobotLidarSensor”的“stepImpl”方法时发生MATLAB系统块“mrsmmultirobotavoidance /Multi-Robot LidarSensor /Multi-Robot LidarSensor”错误。错误从'
C:\Users\Utente\AppData\Roaming\MathWorks\MATLAB Add-Ons\Collections\Mobile Robotics Simulation Toolbox\ MathWorks - Robotics - Mobile - Robotics - Simulation - Toolbox -7066fa0\src\environment\+internal\ createapfromname。在第39行
'C:\Users\Utente\AppData\Roaming\MathWorks\MATLAB Add-Ons\Collections\移动机器人仿真工具箱\MathWorks - Robotics - Mobile - Robotics - Simulation - Toolbox -7066fa0\src\environment\LidarSensor。在第34行
'C:\Users\Utente\AppData\Roaming\MathWorks\MATLAB Add-Ons\Collections\Mobile Robotics Simulation Toolbox\MathWorks-Robotics-Mobile-Robotics-Simulation-Toolbox-7066fa0\src\environment\MultirobotLidasersor.m'位于第83行'。
地图名称‘Map’必须是机器人。OccupancyGrid或机器人。BinaryOccupancyGrid对象。

张余姚

张余姚

你好,朋友,感谢这个伟大的工具箱!
我试图运行机器人,但发现机器人可以通过地图,你能告诉我如何解决这个问题吗?

郑四琪

拉胡尔辛哈

嗨,

我使用的是Matlab R2018A。这个工具箱与我的Matlab兼容吗

莫汉尼德沙欣

你好,塞巴斯蒂安,谢谢你的快速回复。我实际上在使用MATLAB R2019b(平台:macOS)。我将尝试下载旧版本,看看它是否有效。

@Mohanned这是因为你使用的是比R2019b更老的MATLAB版本,这是本次提交的最新版本所要求的。在GitHub上查看一些旧版本,看看它们是否与你的版本匹配,否则尝试升级:https://github.com/mathworks-robotics/mobile-robotics-simulation-toolbox/releases

莫汉尼德沙欣

你好,
当我尝试运行mrsmmultirobotavoidance时,我得到这个错误。基金仿真金宝app软件模型:
"""
运行模拟时发生错误,模拟被终止
原因:
调用“MultiRobotLidarSensor”的“stepImpl”方法时发生MATLAB系统块“mrsmmultirobotavoidance /Multi-Robot LidarSensor /Multi-Robot LidarSensor”错误。错误从'
' /用户/ MoShahin /桌面/ mathworks -机器人移动机器人-仿真工具箱- 7066 fa0 / src /环境/ +内部/ createMapFromName。在第39行
第34行的“/Users/MoShahin/Desktop/mathworks-robotics-mobile-robotics-simulation-toolbox-7066fa0/src/environment/lidarnsor.m”
“/Users/MoShahin/Desktop/mathworks-robotics-mobile-robotics-simulation-toolbox-7066fa0/src/environment/MultiRobotLidarSensor.m”位于第83行”。
地图名称‘Map’必须是机器人。OccupancyGrid或机器人。BinaryOccupancyGrid对象。"""

还有这个警告:

""警告:变量'map'最初保存为机器人。OccupancyGrid不能被实例化为一个对象,而会被读入为一个uint32。""

我一步一步地跟踪关于swarm robotics的视频,这似乎是个什么错误?

莫汉尼德沙欣

关于下面的问题,我在诊断评论中也得到了这样的信息:
警告:变量'map'最初被保存为一个机器人。OccupancyGrid不能被实例化为一个对象,而会被读入为一个uint32。

kumar samaksha

姆菲加

你好,朋友,早上好!
我正在尝试运行omniwheels脚本与相同的代码,包括arduino版本2018b,以执行与链接程序:
//www.tatmou.com/help/金宝appsupportpkg/arduinoio/ug/steer-two-wheel-robot.html
启动代码:a=arduino('COM4','Mega2560','Libraries','RotaryEncoder')
使用旋转编码器库进行里程测量。您是否有arduino或任何其他微控制器的示例,用这些代码约束路径?
我很感激,也很期待!
马西奥

%%示例:三重全轮离散仿真
%版权所有2018 MathWorks,Inc。

clc
清除所有

= arduino(‘COM4为’,‘Mega2560’,‘库’,‘RotaryEncoder’);
通道A1=‘D2’;
channelB1 =“D3”;
channelA2 =“D18”;
通道B2=‘D19’;
编码器1=旋转编码器(a,信道A1,信道B1102);
encoder2 = rotaryEncoder (a、channelA2 channelB2,102);

电机1速度='D6';
motor1DirectionPin =“D7”;
motor2SpeedPin =“D9”;
motor2DirectionPin='D8';

方向= 0;
初始PWM电压=3;

writeDigitalPin (motor1DirectionPin,方向);
writePWMVoltage (a、motor1SpeedPin initialPWMVoltage);
writeDigitalPin (motor2DirectionPin,方向);
写入WMV电压(a、电机2速度、初始PWM电压);
暂停(3);

rpm = readSpeed (encoder1);
% rpm2 = readSpeed (encoder2);
fprintf('A velocidade do motoré:%.2f\n',rpm);
%fprintf('A velocidade do motoré:%.2f\n',rpm2);

% %定义车辆
wheelRadius = 2.5 e - 3;%车轮半径[m]
robotRadius = 8.5 e - 3;%机器人半径[m]
车轮角度=[0,2*pi/3,-2*pi/3];%车轮角度[rad]
车辆= TripleOmniwheel (wheelRadius robotRadius wheelAngles);

% %仿真参数
sampleTime = 0.01;%采样时间[s]
initPose=[0;0;pi/4];%初始姿势(x-yθ)
bodyMode=true;%对于车身帧速度为true,对于世界帧速度为false
targetSpeed = 500;

%初始化时间、输入和姿势数组
executionTime = 0: sampleTime: 10;%的时间数组
vxRef = 0.2 * 1(大小(executionTime));速度百分比参考x
vyRef = 0.1 * 1(大小(executionTime));参考速度%
wRef=零(大小(执行时间));%参考角速度
wRef(executionTime < 5) = -0.5; / /执行时间
wRef(executionTime >=5) = 0.5; / /执行时间
vel=[vxRef;vyRef;wRef];
构成= 0(3元素个数(executionTime));%构成矩阵
构成(:1)= initPose;

% %模拟循环
对于idx = 2:numel(executionTime)
解逆运动学,求出车轮速度
如果bodyMode
rpm = inverseKinematics(车辆,韦尔(:,idx-1));
其他的
refWorld = worldToBody(韦尔(:,idx-1),构成(:,idx-1));
rpm=逆线性(车辆,参考世界);
结束

计算速度
velB = forwardKinematics(车辆、rpm);
韦尔= bodyToWorld (velB姿势(:,idx-1));

%执行前向离散积分步骤
姿势(:,idx)=姿势(:,idx-1)+水平*采样时间;
结束

% parar电动机:
写入WMV电压(a,电机1速度,0);

%%显示结果
全部关闭
数字
等等
绘图(姿势(1,1),姿势(2,1),‘ro’。。。
体式(1)、(2)、“go”,……
姿势(1,:)、姿势(2,:)、‘b-’;
轴平等
标题(“车辆轨迹”);
包含(“X [m]”)
ylabel(“Y [m]”)
传奇(“开始”、“结束”,“轨迹”)

塞巴斯蒂安·卡斯特罗

@Bernd——有一个Simulink首选金宝app项,它应该允许您从较新版本加载模型,我认为这应该适用于这些模型,因为除了以R2019b格式保存模型外,没有做任何主要工作://www.tatmou.com/help/金宝appsimulink/gui/simulink-preferences-model-file-pane.html#brti7y2-1

贝恩德•施密特

MATLAB版本兼容性告诉我们,工具箱可以与R2018a一起工作到任何版本。今天通过附加资源管理器在R2018b中的安装表明,仅支持R2019b(simulink型号不起作用)。此外,github存储库只包含2.1版和2.2版,没有2.0版,它与R2018b一起在另一台机器上为学生项目工作。这使得事情变得有点复杂和不可预测。金宝app金宝app

@Rakeshwar:这些地图需要根据机器人系统工具箱成为占用地图对象。此外,该工具目前只绘制圆形机器人,但如果愿意,您总是可以自定义源代码来绘制正方形。如果您想了解更多细节或澄清,请发邮件至roboticsarena@mathworks.com。

Rakeshwar Elango

在这个工具箱示例“mrscarrt.m”1)中,“complexMap.mat”是如何创建的,因为当我创建一个映射时,它不被接受,当我试图加载到该程序中时!
2)在模拟过程中,机器人显示为圆形,但请指导如何使机器人看起来像一个矩形的汽车,而不是圆形。

陈伯伦

燕pyay

姆菲加

《易经》李

博蒂尔·库奇科洛夫

A.

@曼尼什:是的,这应该是可能的。这里有几个单机器人航路点跟踪的例子,这只是在多机器人环境中使用相同功能的问题。

Manish Wankhede

嗨,我正在尝试执行多机器人环境(说3个机器人),每个机器人跟随路径点。它是否可能与当前的工具箱工具?如果是,请举个例子。

轮子的角度是轮子指向的角度,相对于机器人的身体框架。当你旋转轮子的时候,这个角度会影响运动的方向——例如,三重全轮模型的轮子在0度、+120度和-120度。如果您查看帮助文件,应该有一个图表来解释它。

@Kristi:我认为你的问题是关于无人机库的,它是一个单独的文件交换提交。但我的理解是,四旋翼飞机不需要单独的航路点跟随器,因为你可以完全控制运动方向,而且可以立即改变方向,不像固定翼飞机有有限的转弯半径。

Zhuofan胡

我有一个关于通用omniwheels示例的问题。
"车轮角度"到底是什么意思?
我的意思是,轮子的角度坐标是多少?

克里斯蒂·戴维斯

我如何适应固定翼航路点路径跟踪模型到四旋翼?我可以改变航路点跟随模块的类型,无人机制导模型模块,和无人机动画模块,但是来自固定翼的航向控制仍然存在,制导模型需要滚转,俯仰,偏航和推力,我只看到滚转和偏航来输入。

你可以在MATLAB中使用VideoWriter功能。//www.tatmou.com/help/matlab/ref/videowriter.html

我如何可以创建一个视频的mp4或avi从模拟?

lxl罗

邓玉成

@Thanh:因为差速驱动机器人只能在身体X方向移动!

清乐

在“差动驱动仿真”模块中。身体速度包括Vx和Vy。为什么要让Vy = 0?

苏拉贾尼尔库马尔

@达巴尔希——不,不是。由于工具箱所需的MATLAB功能,您至少需要R2016b。

达巴尔希米特拉酒店

你好,
我想知道这个工具箱是否与Matlab R2015a一起工作,因为在我的情况下,我不能访问这个工具箱的simulink库。金宝app
谢谢你!

Radim的左翼

马丁Sereinig

嗨,关于我的最后一个问题。我现在解决了这个问题!我将工具箱安装到两个不同的文件夹中,因此matlab无法找到新的库!

梅利赫兹坎

塞巴斯蒂安先生和大家好,
我需要一个模拟环境来应用噪声传感器模型和噪声运动模型的差速驱动。据我所知,这个工具箱就足够了,可能只需稍加修改即可添加噪音。我还是想问你,你认为我可以用这个工具箱来做研究吗?
提前谢谢!

MathWorks学生竞赛团队

@Truong——从昨天开始,有一个新的MultiRobotEnv,它支持多机器人(以及等价的Simulink功能)。金宝app金宝app看看吧:)

张新田纽

谢谢你的工具箱,塞巴斯蒂安。如果Visualizer2D适用于多机器人,我打赌这个工具箱在学术和应用方面都非常有用。

哈桑枪手

朱莉娅•李

谢谢你的意见,马丁!

请务必将此条目添加到您的观察列表中,以便您知道我们何时进行更新。

另外,如果您还有什么事情想联系我,请发电子邮件至roboticsarena@mathworks.com

马丁Sereinig

嗨,塞巴斯蒂安,
也许你还记得去年我们在机器人杯德国公开赛上见过面。我不是在一所新大学工作,而是将研究领域从救援机器人转向工业应用。但还是在移动机器人领域。

多个机器人就好了。我知道它在更复杂的模拟中是可行的,但是对于快速和简单的可视化来说,它在机器人可视化工具中是非常好的。只需绘制更多的机器人,额外的。最好在绘图中包含机器人的外部尺寸(如框或圆)和额外的y轴。

谢谢你的快速回复。

嗨,马丁,

现在它只是一个机器人,但我有一个未来的计划,让它与多个机器人一起工作。很高兴有人问起它!

我的想法是用一个“漂浮”的方块来代表世界本身,然后你放入的每个机器人都会在地图上标出自己的位置。

马丁Sereinig

你好,我在移动机器人和控制系统研究领域工作。我想更多地使用这个工具箱。我开始实现我自己的运动学,我想比较不同的解。金宝搏官方网站

我的机器人可视化工具有问题。
是否有可能在一个情节中使用更多的机器人,或者同时使用更多情节?如果我尝试,我总是得到一个错误。

反相

加布里埃尔劳拉

湖fakrul

用脚本对移动机器人的运动学建模进行了简单的分析。例如当机器人向左移动,向右移动,向前移动,并在中心旋转移动。

MATLAB版本兼容性
使用R2019b创建
兼容R2018a及后续版本
平台的兼容性
窗户 macOS Linux

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!