图像缩略图

移动机器人仿真工具箱

version 2.2 (7.98 MB) by Mathworks学生比赛团队
用于车辆运动学、可视化金宝app和传感器仿真的MATLAB和Simulink工具。

369下载

更新2019年10月15日

从GitHub

视图版本历史

在GitHub上查看许可证

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

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

引用作为

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

意见及评分(63

xiangyue他

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

nithesh kanddregula

何塞阿根廷Arbelaez

@ganesh,那个错误是针对称为“机器人游乐场”的不同文件兑换提交,当您尝试以交互方式设置障碍时,它会出现,而无需安装图像处理工具箱。

Tirupalavanam Ganesh

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

穆罕默德汗

何塞阿根廷Arbelaez

@andres,确保工具箱中的文件位于Matlab路径上。如果您下载了“StartMobileroboticsSimulationToolbox.m”,则在工具箱文件夹中有一个脚本应该从工具箱文件夹运行。随时可以免费发送RoboticsArena@mathworks.com。

Andres Vargas Ibanez说

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

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

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

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

Andres Vargas Ibanez说

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

何塞阿根廷Arbelaez

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

使用Simu金宝applink Blocks,我得到了错误:
错误的S-function 'untitled/Robot Simulator/Soft Real Time': S-function 'sfun_time'不存在
请帮助

米兰帕迪希亚尔

塔季扬娜金

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

何塞阿根廷Arbelaez

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

Andres Vargas Ibanez说

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

Daniel Van Wensveen.

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

约瑟夫Thachil乔治

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

“mrsmmultirobotavoidance /多机器人激光雷达传感器/多机器人激光雷达传感器”的“输入端口2”未连接。
组件:Simulin金宝appk |类别:阻塞警告
在“mrsmmultirobotavoidance /Multi-Robot Lidar Sensor/Visuals”上发现未连接的输出线(输出端口: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:\ Usente \ appdata \ roaming \ mathworks \ matlab附加工具箱\ mathworks-tobotics-mobile-toolotics-toolbox-7066fa0 \ src \环境\ lidarsensor.m'34.
'C:\Users\Utente\AppData\Roaming\MathWorks\MATLAB Add-Ons\Collections\移动机器人仿真工具箱\MathWorks - Robotics - Mobile - Robotics - Simulation - Toolbox -7066fa0\src\environment\MultiRobotLidarSensor。M '在83行'。
地图名称“地图”必须是机器人.occupancyGrid或机器人.BinaryoccupancyGrid对象。

余姚市张

余姚市张

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

siqi郑

罗努尔僧侣

他的,

我使用的是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”错误。错误从'
'/users/moshahin/desktop/mathwards-robotics-mobile-robotics-simulation-toolbox-7066fa0/src/environment/+internal/createmapfromname.m'win
' /用户/ MoShahin /桌面/ mathworks -机器人移动机器人-仿真工具箱- 7066 fa0 / src /环境/ LidarSensor。在第34行
' /用户/ MoShahin /桌面/ mathworks -机器人移动机器人-仿真工具箱- 7066 fa0 / src /环境/ MultiRobotLidarSensor。M '在83行'。
地图名称“地图”必须是机器人.occupancyGrid或机器人.BinaryoccupancyGrid对象。"""

还有这个警告:

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

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

汉萨因

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

kumar samaksha

MFigGar

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

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

CLC.
清除所有

= arduino(‘COM4为’,‘Mega2560’,‘库’,‘RotaryEncoder’);
channelA1 = D2的;
channelB1 =“D3”;
channelA2 =“D18”;
channelB2 =“D19”;
encoder1 = rotaryEncoder (a、channelA1 channelB1,102);
Encoder2 =旋转态镜(A,ChannelA2,ChannelB2,102);

motor1SpeedPin =“D6”;
motor1DirectionPin =“D7”;
motor2SpeedPin =“D9”;
motor2DirectionPin =“D8”;

方向= 0;
initialPWMVoltage = 3;

writeDigitalPin (motor1DirectionPin,方向);
writePWMVoltage (a、motor1SpeedPin initialPWMVoltage);
WRITEDIGITALPIN(A,MOTER2DirectionPin,方向);
writePWMVoltage (a、motor2SpeedPin initialPWMVoltage);
暂停(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.5E-3;%轮径[m]
Robotradius = 8.5E-3;%机器人半径[m]
[0,2 *pi/3, -2*pi/3];%车轮角度[弧度]
车辆= TriporomniWheel(WheelRadius,Robotradius,WheelAngles);

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

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

%%仿真循环
对于idx = 2:numel(executionTime)
解逆运动学,求出车轮速度
如果bodyMode
RPM = underedkkematics(车辆,vel(:,Idx-1));
别的
refWorld = worldToBody(韦尔(:,idx-1),构成(:,idx-1));
rpm = inverseKinematics(车辆、refWorld);
结尾

%计算速度
Velb =转发kematics(车辆,rpm);
韦尔= bodyToWorld (velB姿势(:,idx-1));

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

% parar电动机:
writePWMVoltage (motor1SpeedPin 0);

% %显示结果
关闭所有
数字
抓住
情节(体式(1,1),(2,1),“罗”,…
姿势(1,结束),姿势(2,结束),'走',......
体式(:1),(2,:),“b -”);
轴平等
标题('车辆轨迹');
包含(“X [m]”)
ylabel(“Y [m]”)
传说('开始','结束','trajectory')

塞巴斯蒂安卡斯特罗

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

Bernd Schmidt.

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

塞巴斯蒂安卡斯特罗

@rakeshwar:这些地图需要根据机器人系统工具箱是占用地图对象。此外,该工具现在只有绘图循环机器人,但您可以始终自定义源代码,以绘制正方形如果您喜欢。如果您想要更多详细信息或澄清,请在roboticsarena@mathworks.com上发送电子邮件至我们。

Rakeshwar Elango

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

陈po-lun

燕pyay

MFigGar

李静李

Botir Kuchkorov

一个

塞巴斯蒂安卡斯特罗

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

Manish Wankhede

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

塞巴斯蒂安卡斯特罗

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

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

Zhuofan胡

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

克丽丝蒂·戴维斯

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

塞巴斯蒂安卡斯特罗

@juan pablo:您可以使用Matlab中的VideoWriter功能。//www.tatmou.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库。金宝app
谢谢你!

Radim Linke.

马丁Sereinig

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

Melih Ozcan

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

Mathworks学生比赛团队

@Truong - 截至昨天,有一个新的Multirobotenv确实支持多机器人(以及等效的Simulink功能)。金宝app金宝app给它看看:)

张新田纽

谢谢这个伟大的工具箱塞巴斯蒂安。如果Visualizer2D为多机器人工作,我打赌此工具箱对学术和应用目的非常有用。

哈桑枪手

朱莉娅•李

塞巴斯蒂安卡斯特罗

谢谢你的建议,马丁!

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

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

马丁Sereinig

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

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

谢谢你的快速回复。

塞巴斯蒂安卡斯特罗

嗨,马丁,

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

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

马丁Sereinig

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

我在机器人可视化工具上出了点问题。
在一个绘图中使用更多机器人或同时使用更多的情节是本地的吗?如果我试试,我总是出错。

RP

加布里埃尔劳拉

湖fakrul

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

MATLAB版本兼容性
创建R2019b
兼容R2018A及更高版本
平台兼容性
窗户 苹果系统 Linux.

社区寻宝

找到Matlab Central中的宝藏,并发现社区如何帮助您!

开始狩猎!