多车航点跟随仿真(避障)
本教程将会引导读者完成 多车航点跟随仿真(避障) 的演示。在使用此功能之前,确保已经完成了 仿真系统搭建
- 打开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/goto_target/b6_goto_target.slx文件,如图2所示。
 
 图2 b1_waypoint
- 点击菜单栏上的 ROS--Deplay to Localhost。如图3所示
 
 图3 b1_waypoint ROS
- 接着点击菜单栏上的 仿真--运行。启动仿真
 
 图4 b1_waypoint ROS
- 等待编译完成,系统将会运行仿真。如图4所示:
 
 图5 仿真结果
六辆小车将会到达给定的目标点位置,同时自带避障功能。虚线为虚拟雷达。
二次开发参数说明
该程序的预定义位置如图6所示:
 
 图6 预定义位置
打开 kk-robot-swarm/src/matlab/pub_wp.m 文件,如下所示:
wppub = rospublisher('/wp','std_msgs/Float64','DataFormat','struct');
msg = rosmessage(wppub);
msg.Data = 123456;
%msg.Data = 235467;
%msg.Data = 156724;
%msg.Data = 812345;
send(wppub,msg);
topic = wppub.TopicName
b=wppub.rosmessage
如图6所示,此时场上各车的位置为:123456,此时要想改变小车的位置。将上述代码中的 msg.Data = 123456; 改为 msg.Data = 812345;, 然后点击菜单栏上的 运行 即可。如图7所示:
 
 图7 修改位置
msg.Data = 812345 表示的含义如下:
- 1车->8位置
- 2车->1位置
- 3车->2位置
- 4车->3位置
- 5车->4位置
- 6车->5位置
然后小车就会按照下述过程运动
 
 图8 812345
一键生成ROS代码
- 首先在 b6_goto_target.slx文件中开发,完成想要的仿真效果,然后保存
- 打开c6_goto_target.slx文件,将b6_goto_target.slx文件中开发的部分同等在c6_goto_target.slx文件中修改。
注意
- 该功能不建议直接复制
- 建议用户直接使用提供的模板
c6_goto_target.slx进行二次开发- 有关matlab开发文件说明,详见matlab文件说明
- 在编译代码之前,确保启动了 rosinit
- 然后在菜单栏上的 ROS--Deploy to Remote Device。如图1所示
 
 图1 生成ROS代码配置
- 然后点击菜单栏上的 ROS--Build Model--Build Model一键生成ROS代码,如图2所示
 
 图2 生成ROS代码
- 
等待编译完成以后,将会看到生成的压缩包文件 
- 
将生成的 ROS 代码复制到Linux系统中,并解压至 kk-robot-swarm/src/swarm/下,然后编译整个工作空间即可。