单车航点跟随仿真

本教程将会引导读者完成 单车航点跟随仿真 的演示。在使用此功能之前,确保已经完成了 仿真系统搭建

  1. 打开matlabR20021b,在命令行中输入 rosinit,启动ROS Master节点
rosinit

此时将会弹出ROS master 的窗口,不要关闭。最小化即可。 如图1所示:

图1 rosinit

提示

在某些电脑环境中,即使按照仿真系统搭建步骤完成搭建,在运行 rosinit 时,可能会出现 Cannot connect to ROS master at http://localhost:11311. Check the specified address or hostname 字样。

解决的办法是,将 rosinit 命令改为, rosinit("ip",端口)。如下图所示:

解决办法

  1. 打开 kk-robot-swarm/src/matlab/pid_waypoint/b1_waypoint.slx 文件,如图2所示。

图2 b1_waypoint

  1. 点击菜单栏上的 ROS -- Deplay to Localhost。如图3所示

图3 b1_waypoint ROS

  1. 接着点击菜单栏上的 仿真 -- 运行。启动仿真

图4 b1_waypoint ROS

  1. 等待编译完成,系统将会运行仿真。如图4所示:

图5 仿真结果

程序的最后,小车将会原地转圈,表示功能已经结束。

二次开发参数说明

  1. 打开 b1_waypoint.slx 文件
  2. 在菜单栏上找到 建模 -- 模型设置 -- 模型属性 -- 回调 -- InitFcn* 如图1所示:

图1 模型设置界面

在这个界面,可以看到一些模型的属性,从上往下依次为

  • 采样时间
  • 小车的物理属性(轮子宽度、车体半径。用于小车动力学建模)
  • 虚拟雷达参数
  • 初始位置(小车启动的初始位置)
  • 航点信息

一键生成ROS代码

  1. 首先在 b1_waypoint.slx 文件中开发,完成想要的仿真效果,然后保存
  2. 删除c1_waypoint.slx文件全部内容
  3. 接着将 b1_waypoint.slx 文件内容全部复制到 c1_waypoint.slx 文件中,

图1 要复制的内容

  1. c1_waypoint.slx 文件中,删除 Dynamics 模块。如图9所示:

图2 删除Dynamics模块

注意

  1. b1_waypoint.slx文件复制到c1_waypoint.slx的时候,注意查看复制后的模块的各个初始化条件是否正常。
  2. 建议用户直接使用提供的模板 c1_waypoint.slx 进行二次开发
  3. 有关matlab开发文件说明,详见matlab文件说明
  1. 在编译代码之前,确保启动了 rosinit
  2. 然后在菜单栏上的 ROS -- Deploy to Remote Device 。如图3所示

图3 生成ROS代码配置

  1. 然后点击菜单栏上的 ROS -- Build Model -- Build Model 一键生成ROS代码,如图10所示

图3 生成ROS代码

  1. 等待编译完成以后,将会看到生成的压缩包文件

  2. 将生成的 ROS 代码复制到Linux系统中,并解压至 kk-robot-swarm/src/swarm/ 下,然后编译整个工作空间即可。