图片缩略图

移动机器人仿真工具箱

version 2.2 (7.98 MB) by MathWorks学生竞赛团队
用于车辆运动学、可视化万博1manbetx和传感器仿真的MATLAB和Simulink工具。
4.8
27日评级

399下载

更新2019年10月15日

来自GitHub

查看版本历史记录

在GitHub上查看许可证

这个工具箱提供了机器人仿真和算法开发的工具。这包括:

-机器人几何形状的二维运动学模型,如差动驱动,三,四轮车辆,包括正运动学和逆运动学
-可配置的激光雷达,物体和机器人探测器模拟器
-占领地图中的机器人车辆和传感器的可视化
- Matlab和Sim万博1manbetxulink示例和文档

引用作为

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

评论和评级(64

tayfun durus

xiangyue他

MRSDiffdriveWayPointLogicModel文件未正确运行,不会沿途移动。

nithesh kanddregula

Jose Avendano Arbelaez.

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

Tirupalavanam Ganesh

@Jose,当我“设置障碍”时,我得到以下错误:
"评估RP障碍环境块(掩码)的'MaskDialog'回调错误“untitled /障碍环境”。Callback string is 'setObstaclesUI(gcb)'
无法识别的函数或变量' imdirect '

穆罕默德汗

Jose Avendano Arbelaez.

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

andres vargasibañez.

我有一个错误,我安装了MATLAB 2020,并第一次运行这个工具箱的例子,我得到:

无法识别的功能或变量“差速器”。

MRSDIFFDRIVENAVIGATION(第10行)错误
dd = DifferentialDrive (R, L);

怎么了?我有所有必要的工具箱

andres vargasibañez.

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

Jose Avendano Arbelaez.

@安德烈斯,我想你指的是移动机器人训练工具箱中的一块。我们在她的评论中回答了这个问题://www.tianjin-qmedu.com/matlabcentral/fileexchange/62961-mobile-robotics-training-toolbox.

andres vargasibañez.

使用Simu万博1manbetxlink Blocks,我得到了错误:
错误的S-function 'untitled/Robot Simulator/Soft Real Time': S-function 'sfun_time'不存在
请帮忙

米兰Padhiyar

Tatyana Kim.

你好朋友,谢谢你的这个伟大的工具箱!我试图让汽车在线上驾驶并计算逆运动学。你能告诉我如何连接一条线(绘制黑线的地图)并计算逆运动学问题?

Jose Avendano Arbelaez.

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

andres vargasibañez.

我得到了一个错误:“未定义的函数或变量‘controllerpurepursuist’”,我能做些什么来修复它。

丹尼尔·范·Wensveen

非常感谢你制作了这个工具箱。使用它非常愉快,文档非常有帮助。所有相关的人,感谢你们使我的项目成功!

约瑟夫·塔奇尔·乔治

运行此项目时,我遇到以下错误

“mrsmmultirobotavoidance /多机器人激光雷达传感器/多机器人激光雷达传感器”的“输入端口2”未连接。
组件:Simulin万博1manbetxk |类别:阻塞警告
在“mrsmmultirobotavoidance /Multi-Robot Lidar Sensor/Visuals”上发现未连接的输出线(输出端口:1)
组件:Simulin万博1manbetxk |类别:阻塞警告
运行模拟时出错,模拟已终止
引起的:
MATLAB系统块'MRSMULTIROBOTAVOIDANCE /多机器人LIDAR传感器/多机器人LIDAR传感器'错误发生在调用'Multirobotlidarsensor'的“Speimpl”方法时发生。错误从'抛出'
'C:\ Usente \ appdata \ roaming \ mathworks \ matlab附加工具箱\ mobile机器人仿真工具箱\ mathworks-tobotics-mobile-toolbole-7066fa0 \ src \环境\ +内部\ createmapfromname.mm.'在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\移动机器人仿真工具箱\MathWorks - Robotics - Mobile - Robotics - Simulation - Toolbox -7066fa0\src\environment\MultiRobotLidarSensor。M '在83行'。
地图名称‘Map’必须是机器人。OccupancyGrid或机器人。BinaryOccupancyGrid对象。

余姚市张

余姚市张

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

siqi郑

拉胡尔sinha

他的,

我正在使用matlab r2018a。这个工具箱是否与我的matlab兼容

汉萨因

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

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

汉萨因

你好
我在尝试运行mrsMultirobotaviance.slx Simulink模型时出现此错误:万博1manbetx
“”
运行模拟时出错,模拟已终止
引起的:
MATLAB系统块'MRSMULTIROBOTAVOIDANCE /多机器人LIDAR传感器/多机器人LIDAR传感器'错误发生在调用'Multirobotlidarsensor'的“Speimpl”方法时发生。错误从'抛出'
' /用户/ MoShahin /桌面/ mathworks -机器人移动机器人-仿真工具箱- 7066 fa0 / src /环境/ +内部/ createMapFromName。在第39行
' /用户/ MoShahin /桌面/ mathworks -机器人移动机器人-仿真工具箱- 7066 fa0 / src /环境/ LidarSensor。在第34行
' /用户/ MoShahin /桌面/ mathworks -机器人移动机器人-仿真工具箱- 7066 fa0 / src /环境/ MultiRobotLidarSensor。M '在83行'。
映射名称“Map”必须是robotics.OccupncyGrid或robotics.BinaryOccupncyGrid对象。"""

这个警告也是:

“”警告:变量“map”最初保存为robotics.OccupencyGrid不能实例化为对象,将作为uint32读入。""

好像是哪里出错了,我一直在看关于群体机器人一步一步的视频?

汉萨因

关于以下问题,我在诊断回顾中也得到了以下信息:
警告:最初保存为机器人的变量'MAP'无法将其作为对象实例化,并将其作为uint32读取。

Kumar Samaksha.

MFigGar

你好,朋友,早上好!
我正在尝试使用相同的代码运行omniwhels脚本,包括版本2018b中的arduino,以使用链接过程执行:
//www.tianjin-qmedu.com/help/万博1manbetxsupportpkg/arduinoio/ug/steer-two-wheel-robot.html
开始代码:a = arduino ('COM4', 'Mega2560', 'Libraries', 'RotaryEncoder')
使用旋转编码器库的里程计。你有arduino或任何其他微控制器用这些代码约束路径的例子吗?
非常感谢,我期待着!
Marcio

示例:三重Omniwheel离散仿真
版权所有2018 The MathWorks, Inc.

clc
清除所有

a = arduino('com4','mega2560','图书馆','rotaryencoder');
channelA1 = D2的;
通道B1=‘D3’;
ChannelA2 ='D18';
channelB2 =“D19”;
encoder1 = rotaryEncoder (a、channelA1 channelB1,102);
encoder2 = rotaryEncoder (a、channelA2 channelB2,102);

motor1SpeedPin =“D6”;
motor1directionpin ='d7';
motor2SpeedPin='D9';
motor2DirectionPin =“D8”;

方向= 0;
initialPWMVoltage = 3;

WRITEDIGITALPIN(a,motor1directionpin,方向);
Writepwmvoltage(a,motor1speedpin,initialpwmvoltage);
writeDigitalPin (motor2DirectionPin,方向);
writePWMVoltage (a、motor2SpeedPin initialPWMVoltage);
暂停(3);

rpm=读取速度(编码器1);
%rpm2=读取速度(编码器2);
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];%车轮角度[弧度]
车辆= TripleOmniwheel (wheelRadius robotRadius wheelAngles);

%%仿真参数
sampleTime = 0.01;%采样时间[s]
initPose = [0;0;π/ 4);初始姿态(x y)
bodyMode = true;%身体帧速度为真,世界帧速度为假
TargetSpeed = 500;

%初始化时间、输入和姿势数组
executionTime=0:sampleTime:10;%时间数组
vxRef=0.2*个(大小(执行时间));%参考x速度
vyref = 0.1 * vyre(尺寸(executiontime));%参考y速度
wRef = 0(大小(executionTime));参考角速度%
wRef(executionTime < 5) = -0.5; / /执行时间
wRef(executionTime >=5) = 0.5; / /执行时间
韦尔= [vxRef; vyRef wRef];
姿势=零(3,numel(executiontime));%姿势矩阵
构成(:1)= initPose;

% %模拟循环
对于idx=2:numel(执行时间)
%求解逆运动学以找到车轮速度
中频车身模式
rpm = inverseKinematics(车辆,韦尔(:,idx-1));
其他的
REFWORD=世界人体(水平(:,idx-1),姿势(:,idx-1));
rpm = inverseKinematics(车辆、refWorld);
结束

计算速度
velB = forwardKinematics(车辆、rpm);
vel=身体世界(velB,姿势(:,idx-1));

%执行前向离散集成步骤
pose(:,idx) = pose(:,idx-1) + vel*sampleTime;
结束

%平行电机:
writePWMVoltage (motor1SpeedPin 0);

% %显示结果
关闭所有
图形
抓住
情节(体式(1,1),(2,1),“罗”,…
体式(1)、(2)、“go”,……
体式(:1),(2,:),“b -”);
轴相等
标题(“车辆轨迹”);
xlabel('x [m]')
Ylabel('Y [M]')
传奇(“开始”、“结束”,“轨迹”)

塞巴斯蒂安·卡斯特罗

@Bernd—有一个Simulink首选项万博1manbetx可以让你从新的版本中加载模型,我认为它应该适用于这些模型,因为除了以R2019b格式保存它们之外,没有做什么主要的事情://www.tianjin-qmedu.com/help/万博1manbetxsimulink/gui/simulink-preferences-model-file-pane.html#brti7y2-1

贝恩德•施密特

MATLAB发布兼容性告诉工具箱与R2018a工作到任何版本。今天通过Add-On Explorer在R2018b中的安装显示只支持R2019b (simulink模型不工作)。万博1manbetx万博1manbetx此外,github存储库只包含2.1和2.2版本,没有2.0版本,该版本在另一台机器上与R2018b一起用于学生项目。这让事情变得有点复杂和不可预测。

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

拉凯什瓦伊兰戈

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

陈po-lun

严佩

MFigGar

《易经》李

Botir Kuchkorov

一个

@Manish:是的,这是可能的。有几个单机器人路径点跟踪的例子,这只是在多机器人环境中使用相同的功能的问题。

曼尼什·旺凯德

嗨,我正在尝试使用Waypoint之后的每个机器人执行多机器人环境(比如3个机器人)。当前的工具箱实用程序是否有可能?如果是的话,请你给出这个例子。

@zhuofan:车轮角度是车轮指向的角度,相对于机器人的车身框架。当您的旋转轮时,该角度影响运动方向 - 例如,三重OmniWheel模型具有0,+120和-120度的轮子。如果您查看帮助文件,应该有一个图解释它。

@克丽丝蒂:我想你的问题是关于UAV库的,它是一个单独的文件交换提交。不过,我的理解是,四旋翼机不需要单独的航路点跟随器,因为你可以完全控制运动方向,并且可以瞬间改变方向,不像固定翼飞机,它的转弯半径有限。

胡卓凡

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

克丽丝蒂·戴维斯

如何使固定翼航路点路径跟踪模型适应四旋翼机?我可以更改航路点跟随器块、无人机制导模型块和无人机动画块的类型,但固定翼的航向控制保持不变,制导模型需要横滚、俯仰、偏航和推力,我只看到横滚和偏航来馈入。

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

如何从模拟中创建视频mp4或avi?

LXL罗

Yu-Cheng邓

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

thanh勒

在“差速驱动模拟”模块中,车身速度包括Vx和Vy。为什么强制Vy=0?

soorajanilkumar

@Dabarshi——不,没有。您将至少需要R2016b,由于工具箱所需的MATLAB特性。

Dabarshi Mitra

你好
我想知道这个工具箱是否与Matlab R2015a一起工作,因为在我的情况下,我不能访问这个工具箱的simulink库。万博1manbetx
非常感谢。

Radim的左翼

马丁·塞雷宁

嗨,关于我的最后一个问题。我现在解决了这个问题!我把工具箱安装到2个不同的折叠,所以matlab无法找到新的库!

Melih Ozcan

你好,塞巴斯蒂安先生,大家好,
我需要一个仿真环境,应用噪声传感器模型和差动驱动噪声运动模型。据我所知,这个工具箱已经足够实现这个目的了,只需要稍微修改一下就可以添加一些杂音。不过我还是想问你,你觉得我能用这个工具箱做研究吗?
提前谢谢!

MathWorks学生竞赛团队

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

Truong N.T. NHU

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

HasanGüner.

李依依

谢谢你的建议,马丁!

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

还有,如果你有任何其他想联系我的事情,你可以发邮件给我们roboticsarena@mathworks.com

马丁·塞雷宁

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

多个机器人会很好。我知道这在一个更复杂的模拟中是可能的,但为了快速和简单的可视化,它将是伟大的机器人可视化工具。只是绘制更多的机器人,如果在绘图中包含机器人的外部维度(如框或圆)和额外的y轴就更好了。

谢谢你的快速回复。

嗨,马丁,

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

我的想法是拥有一个“浮动”的块,代表世界本身,然后你投入的每个机器人都会在那张地图上绘制自己。

马丁·塞雷宁

嗨,我在移动机器人和控制系统的研究领域工作。我想更多地使用这个工具箱。我开始实施自己的运动学,我想比较不同的解决方案。万博 尤文图斯

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

RP

加布里埃尔劳拉

Nuur Fakrul.

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

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

社区寻宝

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

开始狩猎!