队形变换仿真 | 您所在的位置:网站首页 › 7人健美操队形变换 › 队形变换仿真 |
队形变换仿真
本教程将会引导读者完成 队形变换仿真 的演示。在使用此功能之前,确保已经完成了 仿真系统搭建 打开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",端口)。如下图所示: 解决办法 打开 kk-robot-swarm/src/matlab/formation/b6_formation.slx 文件,如图2所示。图2 b6_formation 接着点击菜单栏上的 仿真 -- 运行。启动仿真图4 b6_formation Sim 等待编译完成,系统将会运行仿真。如图4所示:图5 仿真结果 集群将会按照给定的队形进行循环变化 二次开发参数说明此 Demo 采用的是 simulink 的 stateflow 来进行多车编队的队形切换。其主要控制模块如下: 主要控制模块 双击进入以后,可以看到队形切换的逻辑。如下图所示: 控制逻辑图 整体规划了5种队形,分别对应状态 state==1~5。 Statefow 按照状态顺序每个采样周期执行一个状态,在每个状态中会调用该状态的对应队形的航路点生成函数,这样每个采样周期都会更新一次航路点,如何到达航路点由运动学控制器负责解算,航路点生成函数负责解算当前航路点状态是否完成,完成就给出下一个航路点或者切换到下一个状态。 这种状态转移架构可以很方便进行线性扩充。详细算法参见各个航路点生成函数 [wp,state]=sn_ComputeDist(poses) 模块 一键生成ROS代码 首先在 b6_formation.slx 文件中开发,完成想要的仿真效果,然后保存 打开c6_formation.slx文件,将b6_formation.slx文件中开发的部分同等在c6_formation.slx文件中修改。注意 该功能不建议直接复制 建议用户直接使用提供的模板 c6_formation.slx 进行二次开发 有关matlab开发文件说明,详见matlab文件说明 在编译代码之前,确保启动了 rosinit 然后在菜单栏上的 ROS -- Deploy to Remote Device 。如图1所示图3 生成ROS代码配置 然后点击菜单栏上的 ROS -- Build Model -- Build Model 一键生成ROS代码,如图2所示图3 生成ROS代码 等待编译完成以后,将会看到生成的压缩包文件 将生成的 ROS 代码复制到Linux系统中,并解压至 kk-robot-swarm/src/swarm/ 下,然后编译整个工作空间即可。 |
CopyRight 2018-2019 实验室设备网 版权所有 |