图像缩略图

移动机器人仿真工具箱

MATLAB和Simu金宝applink实用程序车辆运动学,可视化和传感器仿真。

528下载

更新2019年10月15日

GitHub上在GitHub上查看许可

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

-机器人的二维运动学模型,如差速器、三轮和四轮车辆,包括正运动学和逆运动学
- 可配置的激光雷达,对象,和机器人检测器模拟器
- 在入住地图机器人车辆和传感器的可视化
- MATLAB和Sim金宝appulink实例和文档

引用作为

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

评论和评分(48

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

“mrsMultiRobotAvoidance /多机器人激光雷达传感器/多机器人激光雷达传感器”的“输入端口2”未连接。
成分:Simulin金宝appk的|类别:警告座
未连接的输出线发现“mrsMultiRobotAvoidance /多机器人激光雷达传感器/视觉效果”(输出端口:1)
成分:Simulin金宝appk的|类别:警告座
在运行模拟时出现错误和模拟被终止
引起的:
MATLAB系统块调用时“MultiRobotLidarSensor”的“stepImpl”方法发生“mrsMultiRobotAvoidance /多机器人激光雷达传感器/多机器人激光雷达传感器”错误。错误从“扔
“C:\用户\ Utente \应用程序数据\漫游\ MathWorks公司\ MATLAB附加组件\收藏\移动机器人仿真工具箱\ MathWorks的机器人技术,移动机器人仿真工具箱,7066fa0的\ src \环境\ +内部\ createMapFromName.m在线路39'
“C:\用户\ Utente \应用程序数据\漫游\ MathWorks公司\ MATLAB附加组件\收藏\移动机器人仿真工具箱\ MathWorks的机器人技术,移动机器人仿真工具箱,7066fa0的\ src \环境\ LidarSensor.m”在列34
'C: Users\Utente\AppData\漫游\MathWorks\MATLAB Add-Ons\Collections\Mobile Robotics Simulation Toolbox\ MathWorks - Robotics - Mobile - Robotics - Simulation - Toolbox -7066fa0\src\environment\MultiRobotLidarSensor。我在83号线。
地图名称“地图”必须是robotics.OccupancyGrid或robotics.BinaryOccupancyGrid对象。

余姚市丈

余姚市丈

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

思琪郑

他的,

我用Matlab R2018A。这是工具箱我的Matlab的兼容

你好Sebastian,感谢你的快速回复。我实际使用的是MATLAB R2019b(平台:macOS)。我将尝试下载旧版本,看看是否可行。

@Mohanned这是由于您使用的不是R2019b,这是在本次提交的最新版本所需的旧版本的MATLAB。检查出一些旧版本的GitHub上,看看他们是否符合您的版本,否则尝试升级:https://github.com/mathworks-robotics/mobile-robotics-simulation-toolbox/releases

嗨,
当我尝试运行mrsMultiRobotAvoidance.slx Simulink模型我得到这个错误:金宝app
”“”
在运行模拟时出现错误和模拟被终止
引起的:
MATLAB系统块调用时“MultiRobotLidarSensor”的“stepImpl”方法发生“mrsMultiRobotAvoidance /多机器人激光雷达传感器/多机器人激光雷达传感器”错误。错误从“扔
“/Users/MoShahin/Desktop/mathworks-robotics-mobile-robotics-simulation-toolbox-7066fa0/src/environment/+internal/createMapFromName.m”在行39
“/Users/MoShahin/Desktop/mathworks-robotics-mobile-robotics-simulation-toolbox-7066fa0/src/environment/LidarSensor.m”在行34
' /用户/ MoShahin /桌面/ mathworks -机器人移动机器人-仿真工具箱- 7066 fa0 / src /环境/ MultiRobotLidarSensor。我在83号线。
地图名称“地图”必须是robotics.OccupancyGrid或robotics.BinaryOccupancyGrid对象。”“”

这也警示:

“警告:变量‘map’最初保存为一个机器人。”占用网格不能作为对象实例化,它将作为uint32读入。”“

似乎是什么错误,我是继群机器人一步一步的视频?

关于下面的问题,我在诊断评论中也得到了这个信息:
警告:变量“map”最初保存为一个机器人。占用网格不能作为对象实例化,它将作为uint32读入。

MFigGar

你好,朋友,早上好!
我试图运行代码相同的omniwhels脚本和包括版本2018B的Arduino,与链接程序执行:
//www.tatmou.com/help/金宝appsupportpkg/arduinoio/ug/steer-two-wheel-robot.html
启动代码:a = arduino ('COM4', 'Mega2560', 'Libraries', 'RotaryEncoder')
使用旋转编码器库进行里程测量。您是否有arduino或任何其他微控制器的例子来使用这些代码约束路径?
谢谢,我期待着!
Marcio

%%实施例:三重Omniwheel离散模拟
% MathWorks, Inc.版权所有

CLC
清除所有

一个= Arduino的( 'COM4', 'Mega2560', '图书馆', '旋转编码器');
channelA1 = D2的;
channelB1 =“D3”;
channelA2 = 'D18';
channelB2 = 'D19';
ENCODER1 =旋转编码器(A,channelA1,channelB1,102);
ENCODER2 =旋转编码器(A,channelA2,channelB2,102);

motor1SpeedPin = 'D6';
motor1DirectionPin = 'D7';
motor2SpeedPin = 'D9';
motor2DirectionPin = 'D8';

方向= 0;
initialPWMVoltage = 3;

writeDigitalPin (motor1DirectionPin,方向);
writePWMVoltage(一,motor1SpeedPin,initialPWMVoltage);
writeDigitalPin(一,motor2DirectionPin,方向);
writePWMVoltage(一,motor2SpeedPin,initialPWMVoltage);
暂停(3);

RPM = readSpeed(ENCODER1);
%RPM2 = readSpeed(ENCODER2);
fprintf('A velocidade do motor e: %.2f\n',rpm);
%fprintf中( 'A velocidade做马达E:%.2f \ N',RPM2);

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

%%仿真参数
sampleTime = 0.01;%的样品时间[s]
initPose = [0;0;PI / 4];%初始姿态(X Y THETA)
bodyMode = TRUE;%真正用于车身框架的速度,虚假世界帧速度
targetSpeed = 500;

初始化时间、输入和位姿数组
executionTime = 0: sampleTime: 10;%的时间数组
vxRef = 0.2 *酮(大小(executionTime));%基准X速度
vyRef = 0.1 *酮(大小(executionTime));%参考坐标y速度
WREF =零(大小(executionTime));%基准角速度
WREF(executionTime <5)= -0.5;
WREF(executionTime> = 5)= 0.5;
VEL = [vxRef; vyRef; WREF];
姿势=零(3,numel(executionTime));%姿态矩阵
姿势(:,1)= initPose;

%%模拟循环
对于IDX = 2:numel(executionTime)
%解决反向运动学发现车轮速度
如果bodyMode
RPM =逆运动学(车辆,VEL(:,IDX-1));
其他
refWorld = worldToBody(韦尔(:,idx-1),构成(:,idx-1));
rpm = inverseKinematics(车辆、refWorld);
结束

%计算速度
velB = forwardKinematics(车辆,RPM);
VEL = bodyToWorld(velB,姿势(:,IDX-1));

%执行正向离散积分步
pose(:,idx) = pose(:,idx-1) + vel*采样时间;
结束

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

%%显示结果
关闭所有
数字
抓住
图(姿势(1,1),姿势(2,1), 'RO',...
姿势(1月底),姿势(2月底), '走出去',...
姿势(1,:),姿势(2,:), 'B-');
轴等于
标题(“飞行器轨迹”);
xlabel( '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模型不工作)。金宝app金宝app此外GitHub的仓库只包含2.1版和2.2,没有2.0版本与R2018b工作另一台机器上的一个学生项目。这使事情变得有点复杂和不可预知的。

@Rakeshwar:这些地图必须占用地图对象根据机器人系统工具箱。此外,该工具目前仅绘制圆的机器人,但你总是可以自定义源代码来绘制一个正方形,如果你愿意的话。如果您想了解更多详情或澄清,发送电子邮件至roboticsarena@mathworks.com。

在这个工具箱如“mrsCarRRT.m” 1)如何创建“complexMap.mat”,因为当我创建了一个地图有人不接受,当我试图在程序加载!
2)在模拟过程中机器人是圆形的,但是你能指导一下如何让机器人看起来像一辆矩形的汽车,而不是圆形的吗?

陈po-lun

燕卑谬

MFigGar

意境李

一个

@Manish:是的,这应该是可能的。有单机器人航点以下几个例子,它只是使用了相同的功能与多机器人环境的问题。

嗨,我试图进行多机器人的环境(比如3个机器人),每个机器人的航点以下。是否有可能与当前的工具箱的事业吗?如果是的话,请你给的例子。

@Zhuofan:车轮角是角车轮朝向指向,相对于机器人的主体框架。当你旋转轮,该角度会影响运动的方向 - 例如,三重omniwheel模型在0,120,和-120度的车轮。如果你看一下帮助文件,应该有一个图解释它。

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

胡卓凡

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

如何适应以下模型的四旋翼飞行器的固定翼航点的路径?我可以改变航点跟随器块的类型中,UAV指导模型块,并且UAV动画块,但是从固定翼遗体的标题控制和guidnace模型需要滚动,俯仰,偏航和推力和我只看到辊和偏航至送入。

@Juan巴勃罗:可以在MATLAB使用VideoWriter功能。//www.tatmou.com/help/matlab/ref/videowriter.html

我怎样才能创建一个从模拟视频MP4或AVI?

1×1罗

宇诚登

@Thanh:由于差分驱动机器人只能移动在主体X方向!

thanh勒

在块“差分驱动模拟”。身体的速度inlcude VX和VY。你为什么要逼VY = 0?

@Dabarshi - 不,事实并非如此。您将需要至少R2016b,由于MATLAB所需的特性在工具箱。

你好,
我想知道,如果这个工具箱用Matlab R2015a工作,因为在我的情况,我不能代表这个工具箱访问SIMULINK库。金宝app
谢谢你!

你好,对我的最后一个问题。我现在问题解决了!我安装工具箱到2个不同的弗尔德斯,所以MATLAB无法找到新的图书馆!

您好塞巴斯蒂安先生和大家,
我需要一个仿真环境应用嘈杂传感器型号和嘈杂的运动模型差分驱动。据我了解,这个工具箱是足够用于此目的,有可能很少修改的噪声增加。我还想问你,虽然,你觉得我可以用这个工具箱为研究?
提前谢谢!

@Truong - 截至昨日,有一个新的MultiRobotEnv是不支持多机器人(以及相当于Simulink的功能)。金宝app金宝app给它看看:)

感谢您对这个伟大的工具箱塞巴斯蒂安。如果Visualizer2D适用于多机器人,我敢打赌,这个工具箱将是学术以及应用程序的目的是非常有用的。

哈桑棍儿

朱莉娅李

感谢您的输入,马丁!

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

此外,如果有其他任何你想达到我说说,你可以在roboticsarena@mathworks.com给我们发电子邮件

嗨,塞巴斯蒂安,
也许你还记得,我们已经在机器人世界杯德国公开赛,去年见面。我没有工作的一个新的大学,并改变了该领域的研究从救援机器人到工业应用。但还是在移动机器人领域。

多个机器人将是很好。我知道这是更多钞票在一个更复杂的仿真,但对于快速和方便的可视化将是机器人的可视化工具很大。只是绘制多个机器人,附加它将是巨大的inklude机器人的外dimentions中的情节(如一个盒子,或圆)和附加y轴。

感谢您的快速响应。

嗨,马丁,

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

我的想法是有一个“浮动的”块,表示这个世界本身,然后每个你把机器人将绘制本身地图上。

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

我与机器人的可视化工具的问题。
它是更多钞票,以使用更多的机器人在一个情节或使用更多的地块simultanious?如果我尝试,我总是得到一个错误。

RP

nuur fakrul

是u必须为使用脚本移动机器人运动学模型简单的分析。例如,当机器人移动到左,右移动,向前移动,并在中心旋转运动。

更新

2.2

增加了导航和障碍回避与强化学习的例子。增加了简单的例子RRT路径规划。将所有工具箱引用和语法更新到R2019b

2.1

增加了机器人足球和路径跟随与避障的例子。可视化现在有可定制的机器人颜色和对象标记。错误修正。

2.0

增加了多机器人的支持。金宝app

其他新功能:用于可视化和多机器人检测与激光雷达传感器,“一般Omniwheel”用于与任意的车轮构造中,新的例子模拟车辆运动模型非零机器人半径。

MATLAB版本兼容性
创建R2019b
兼容R2018a的任何版本
平台兼容性
窗户 苹果系统 Linux的
确认

启发:机器人游乐场