MATLAB与ROS联合仿真——实例程序搭建思路

这篇具有很好参考价值的文章主要介绍了MATLAB与ROS联合仿真——实例程序搭建思路。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、基础运动控制实例程序搭建思路

1、需要完成的任务:

(1)通过设定小车运动的速度及转角来控制ROS中小车运动。

(2)通过键盘输入指令控制ROS中小车运动,键盘输入w小车前行,s小车后退,a小车左转,d小车右转,输入其他按键小车停止运动。

(3)订阅Gazebo中反馈的ROS小车的位置信息,并实时绘制出小车的运动轨迹图.

2、参考结构图如下

MATLAB与ROS联合仿真——实例程序搭建思路,ROS与MATLAB联合仿真,matlab,Ubuntu和ROS,matlab,ROS,simulink,轨迹跟踪,自主导航

3、程序搭建思路

       通过Speed And Angle Given模块,给定小车运动的速度和舵机打角,并输送给Control signals Management C模块,通过Keyboard Control模块输出键盘控制系数和可控信号口,并输送给Control signals Management C模块,并使用Constant模块设定Control signals Management C模块所需的其他参数,对于参数key为了使用方便再为其添加一个Slider Switch模块,这样就可以在仿真过程中对key的值进行修改了,将Control signals Management C模块模块的输出值送给Publish Ackermann Sport Information C模块来输送给ROS,到这里控制部分就完成了。

      使用Subscribe Ackermann Location Information C模块订阅ROS中发布的小车的位置信息,并输送给Drawing Trajectories模块,将小车实时的位置绘制出来,本实验中并没有用到目标点位置和完整轨迹,所以可将目标点位置也赋值为小车当前位置,完整轨迹可使用constant模块赋值0

二、轨迹跟踪控制实例程序搭建思路

1、需要完成的任务:

(1)回顾实验一,发布运动控制信息至ROS、订阅ROS中小车的位置信息并绘制轨迹图、键盘控制等内容

(2)订阅IMU传感器的数据,并计算出机器人的姿态(方法自选,如:欧拉角、卡尔曼滤波、互补滤波等)

(3)回顾坐标系变换相关知识,推导纯跟踪算法

(4)实现目标点停车功能

(5)编写纯跟踪算法控制器,并调试参数实现目标点跟踪

(6)实现轨迹跟踪,调试参数,观察效果

2、参考结构图如下

MATLAB与ROS联合仿真——实例程序搭建思路,ROS与MATLAB联合仿真,matlab,Ubuntu和ROS,matlab,ROS,simulink,轨迹跟踪,自主导航

3、程序搭建思路

         通过Eight Letter Track  Given C模块,给定小车当前时刻的目标点坐标以及完整的轨迹信息,并输送给Drawing Trajectories模块,进行绘制图像,同时当前时刻的目标点坐标也要输送给Pure Tracking Controller C模块,进行舵机打角控制。此外需要使用constant模块为Eight Letter Track  Given C模块指定参数key,为其再添加一个Slider Switch模块,这样就可以在仿真过程中对key的值进行修改了

        通过Subscribe  Ackermann  Robot Posture C模块订阅小车的姿态信息,并将其中的yaw输送给Pure Tracking Controller C模块,通过Subscribe Ackermann Location Information C模块订阅小车当前的位置信息,并输送给Drawing Trajectories模块以及Pure Tracking Controller C模块

        到这里我们的核心控制器——纯跟踪控制器,得到了小车的位置信息、姿态信息、以及期望的目标点的信息,我们还需要使用Speed  Controller C模块得到小车的速度信息,即小车以什么样的速度从当前点,前往目标点

        而要想使用Speed  Controller C模块得到小车的速度信息,需要使用Constant模块设定比例系数kp和最大速度,除此之外还需要提供当前点与目标点的位置差Xe和Ye,但是这两个参数是由Pure Tracking Controller C模块输出

        这里我们来捋一下Speed  Controller C模块与Pure Tracking Controller C模块的关系,只有Pure Tracking Controller C模块提供给Speed  Controller C模块Xe和Ye,Speed  Controller C模块才能计算出Speed提供给Pure Tracking Controller C,同样的只有Speed  Controller C模块将Speed提供给Pure Tracking Controller C模块,Pure Tracking Controller C模块才能计算出Xe和Ye,给Speed  Controller C模块,所以说这里陷入了死循环,谁也得不到自己想要的参数,也无法提供给对方想要的参数,那么怎样解决呢,这里就要用到memory模块了,这也是为什么在介绍Speed  Controller C模块时,在输出Speed之前一定要加一个memory模块了,通过使用memory模块,使Speed  Controller C模块退了一步,即使你不给我我想要的Xe和Ye信息,我可以把我上一次的Speed信息(对于第一次运行而言,就是默认值0),给你,然后整个循环就打通了。所以说memory模块功不可没

        解决了以上逻辑问题,再返回来看Pure Tracking Controller C模块,想要计算出Angle,还需要使用constant模块为其提供参数K和L

        将Pure Tracking Controller C模块和Speed  Controller C模块的输出输送给Target Point Parking Control C模块,还需要用constant模块提供给它key和accuracy参数,对于key同样为其再添加一个Slider Switch模块,这样就可以在仿真过程中对key的值进行修改了

        接下来的内容就跟实验一类似了,只不过Control signals Management C模块的speed和angle换为由Target Point Parking Control C模块提供

        通过Keyboard Control模块输出键盘控制系数和可控信号口,并输送给Control signals Management C模块,并使用Constant模块设定Control signals Management C模块所需的其他参数,对于参数key为了使用方便再为其添加一个Slider Switch模块,这样就可以在仿真过程中对key的值进行修改了,将Control signals Management C模块模块的输出值送给Publish Ackermann Sport Information C模块来输送给ROS,到这里控制部分也全部完成了。

三、SLAM建图及自主导航实例程序搭建思路

1、需要完成的任务:

(1)使用键盘控制小车运动,借助slam_gmapping功能包体验建图过程

(2)在gazebo地图的基础上绘制小车的运动轨迹

(3)借助move_base导航框架,体验在已知地图的情况下进行导航操作,在小车的运动路径上,添加障碍物,观察小车的避障能力,体会全局路径规划与局部路径规划的区别与配合

(4)订阅并观测小车搭载的深度相机反馈的RGB彩色图像及深度图像、点云图像

(5)将SLAM建图与导航结合起来,实现未知环境的自主探索与建图

(6)体验使用Simulink生成ROS代码,并在ROS中运行

2、参考结构图如下

MATLAB与ROS联合仿真——实例程序搭建思路,ROS与MATLAB联合仿真,matlab,Ubuntu和ROS,matlab,ROS,simulink,轨迹跟踪,自主导航

 文章来源地址https://www.toymoban.com/news/detail-608277.html

3、程序搭建思路

(1)用键盘控制小车运动

        经过前面的实验,本部分内容大家应该已经不陌生了,使用Keyboard Control模块与Control signals Management C模块配合输出小车的运动控制指令,再通过Publish Ackermann Sport Information C模块将该指令发送给ROS即可实现

(2)观测深度相机发布的RGB图像、深度图像、点云图像

        通过Subscribe to depth and point cloud images和Subscribe to RGB images模块即可完成

(3)在gazebo地图的基础上绘制运动轨迹

        使用Subscribe Ackermann Location Information C模块订阅小车的位置信息,将其输送给Gazebo Track Plotting模块,Gazebo Track Plotting模块的输入参数的计算和调节是本功能实现的重点。

(4)自动发布和切换导航目标点

        使用Subscribe Ackermann Location Information C模块订阅小车的位置信息,将其输送给Navigation Point Setting C模块,完成导航目标点的控制,再由Publish Target Point Information C模块将其发送给ROS

 

 

 

到了这里,关于MATLAB与ROS联合仿真——实例程序搭建思路的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MATLAB与Robotstudio联合仿真 stocket通信

    tmd网上有关matlab与robotstudio stocket通信的内容太少了,索性自己写个文章,免得后来人浪费时间。 本文代码参考:http://t.csdn.cn/02UkD 感谢大佬的代码。stocket通信的前置条件也可以参考上面链接。 matlab与robotstudio通信分为两部分代码,matlab作为服务器端,发送位置数据给作为服

    2023年04月25日
    浏览(45)
  • 滤波器之matlab与vivado的联合仿真

    一、目录     1、matlab产生滤波器     2、matlab进行仿真     3、搭建vivado测试电路     4、vivado仿真 二、matlab产生滤波器     本文采用FIR低通滤波器,在命令行输入fdatool进入滤波器配置页面,如下配置                   导出滤波器函数              设置名字为filter

    2024年02月09日
    浏览(53)
  • 在ubuntu22.04(LTS)上搭建ROS2+PX4+Gazebo的联合仿真环境

    说明:本案例仅仅是跑通了ROS2+PX4+Gazebo的联合仿真,还没有实现使用键盘控制无人机飞行(以后会补充)。 1.准备工作 2.安装PX4仿真工具链 3.安装ROS2 4.安装ROS2的相关依赖 5.安装XRCE-DDS代理(AGENT) 6.创建ROS2工作空间并生成代码样例 7.运行XRCE代理 8.编译PX4固件并运行 (1)确保

    2024年04月29日
    浏览(85)
  • MATLAB智能优化算法 - 粒子群算法及MATLAB实例仿真

    粒子群算法来源于鸟类集体活动的规律性,进而利用群体智能建立简化模型。它模拟的是鸟类的觅食行为,将求解问题的空间比作鸟类飞行的时间,每只鸟抽象成没有体积和质量的粒子,来表征一个问题的可行解。 粒子群算法首先在给定的解空间中随机初始化粒子群,待优化

    2023年04月17日
    浏览(305)
  • UE4与MATLAB联合仿真环境配置中遇到的问题及解决办法

    我在配置UE4与MATLAB联合仿真的过程遇到一些问题。这些问题在MATLAB的社区也有人问,一方面是对MATLAB的帮助文档理解错误,另一方面是自己操作的问题,毕竟帮助文档更多的是文字描述,对于我这样的新手难免配置错误。 软件版本:UE4.27.2、MATLAB2023a、Visual Studio2022 1. The fol

    2024年02月05日
    浏览(53)
  • 路径规划 | 图解RRT*算法(附ROS C++/Python/Matlab仿真)

    🔥附C++/Python/Matlab全套代码🔥课程设计、毕业设计、创新竞赛必备!详细介绍全局规划(图搜索、采样法、智能算法等);局部规划(DWA、APF等);曲线优化(贝塞尔曲线、B样条曲线等)。 🚀详情:图解自动驾驶中的运动规划(Motion Planning),附几十种规划算法 RRT*算法 针对传统RRT算

    2024年02月06日
    浏览(83)
  • 路径规划 | 图解Theta*算法(附ROS C++/Python/Matlab仿真)

    🔥附C++/Python/Matlab全套代码🔥课程设计、毕业设计、创新竞赛必备!详细介绍全局规划(图搜索、采样法、智能算法等);局部规划(DWA、APF等);曲线优化(贝塞尔曲线、B样条曲线等)。 🚀详情:图解自动驾驶中的运动规划(Motion Planning),附几十种规划算法

    2024年02月11日
    浏览(61)
  • 路径规划 | 图解LPA*算法(附ROS C++/Python/Matlab仿真)

    🔥附C++/Python/Matlab全套代码🔥课程设计、毕业设计、创新竞赛必备!详细介绍全局规划(图搜索、采样法、智能算法等);局部规划(DWA、APF等);曲线优化(贝塞尔曲线、B样条曲线等)。 🚀详情:图解自动驾驶中的运动规划(Motion Planning),附几十种规划算法

    2024年01月16日
    浏览(37)
  • 基于fpga的图像处理之图像灰度化处理(Vivado+Modelsim+Matlab联合仿真验证)

    微信公众号上线,搜索公众号 小灰灰的FPGA ,关注可获取相关源码,定期更新有关FPGA的项目以及开源项目源码,包括但不限于各类检测芯片驱动、低速接口驱动、高速接口驱动、数据信号处理、图像处理以及AXI总线等 源码工程链接 https://download.csdn.net/download/m0_50111463/88529260

    2024年02月10日
    浏览(60)
  • 路径规划 | 图解D* Lite算法(附ROS C++/Python/Matlab仿真)

    🔥附C++/Python/Matlab全套代码🔥课程设计、毕业设计、创新竞赛必备!详细介绍全局规划(图搜索、采样法、智能算法等);局部规划(DWA、APF等);曲线优化(贝塞尔曲线、B样条曲线等)。 🚀详情:图解自动驾驶中的运动规划(Motion Planning),附几十种规划算法 上节我们介绍了LPA*算

    2023年04月08日
    浏览(63)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包