图片缩略图

移动机器人仿真工具箱

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

398下载

更新2019年10月15日

从GitHub

视图版本历史

在GitHub上查看许可证

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

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

引用为

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

意见及评分(64

泰芬杜鲁斯酒店

何祥月

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

nithesh kanddregula

何塞阿根廷Arbelaez

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

Tirupalavanam Ganesh

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

穆罕默德汗

何塞阿根廷Arbelaez

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

Andres Vargas Ibanez说

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

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

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

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

Andres Vargas Ibanez说

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

何塞阿根廷Arbelaez

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

Andres Vargas Ibanez说

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

米兰Padhiyar

塔季扬娜金

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

何塞阿根廷Arbelaez

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

Andres Vargas Ibanez说

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

丹尼尔·范·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:\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对象。

余姚市张

余姚市张

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

siqi郑

拉胡尔辛哈

嗨,

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

莫汉尼德沙欣

嗨,塞巴斯蒂安,谢谢你的快速回复。我实际上在使用MatlabR2019B(平台: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行
' /用户/ MoShahin /桌面/ mathworks -机器人移动机器人-仿真工具箱- 7066 fa0 / src /环境/ LidarSensor。在第34行
“/Users/MoShahin/Desktop/mathworks-robotics-mobile-robotics-simulation-toolbox-7066fa0/src/environment/MultiRobotLidarSensor.m”位于第83行”。
地图名称‘Map’必须是机器人。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或任何其他微控制器的示例,用这些代码约束路径?
我很感激,也很期待!
马西奥

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

clc
清除所有

= arduino(‘COM4为’,‘Mega2560’,‘库’,‘RotaryEncoder’);
通道A1=‘D2’;
channelB1 =“D3”;
channelA2 =“D18”;
channelB2 =“D19”;
encoder1 = rotaryEncoder (a、channelA1 channelB1,102);
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;π/ 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 = 0(大小(executionTime));参考角速度%
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工作到任何版本。今天通过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)在模拟过程中,机器人显示为圆形,但请指导如何使机器人看起来像一个矩形的汽车,而不是圆形。

陈伯伦

燕pyay

MFigGar

《易经》李

博蒂尔·库奇科洛夫

一个

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

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?

苏拉贾尼尔库马尔

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

达巴尔希米特拉酒店

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

Radim的左翼

马丁Sereinig

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

Melih Ozcan

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

MathWorks学生竞赛团队

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

张新田纽

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

哈桑枪手

朱莉娅•李

谢谢你的意见,马丁!

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

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

马丁Sereinig

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

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

谢谢你的快速回复。

嗨,马丁,

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

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

马丁Sereinig

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

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

反相

加布里埃尔劳拉

湖fakrul

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

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

社区寻宝

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

开始狩猎!