多车跟随(强化学习)功能演示
本教程将会引导读者完成 多车跟随(强化学习) 的演示。在使用此功能之前,确保已经完成了 Demo前期准备工作
提示
启动此Demo前,请关闭所有终端
- 打开终端,输入命令,启动
roscore
:
roscore
- 启动相机驱动。打开终端,输入命令:
rosrun camtoros camtoros
- 启动二维码检测功能包。打开终端,输入命令:
roslaunch apriltag_ros continuous_detection.launch
- 将1 - 6号小车开机,放置在场地中央附近。如图1所示:
图2 连接成功界面
注意
- 小车 开关方向 为小车正方向
- 图示位置 左下角 为原点,右边为
x
轴正方向,上边为y
轴正方向- 摆放的时候小车前后左右间距为
5cm
左右, 太近可能会导致刚启动的时候发生碰撞
- 启动通信节点。打开终端,输入命令:
rosrun tcp_communication tcpDriverNode
提示
小车连接需要大概10-15s时间
图2 连接成功界面
提示
你也可以双击打开
kk-robot-swarm/kkSwarm state.AppImage
小车状态监视软件,查看小车连接情况。如下图所示:小车状态检测
注意
connfd
为文件描述符,由系统随机分配。以实际使用为准
- 启动定位系统节点。
打开
kk-robot-swarm/src/global_vision/launch/start.launch
文件, 将 car_total_num 与 car_num 改为 6,如下所示:
最后启动定位系统。打开终端,输入命令:<launch> <node pkg="global_vision" type="odometryPub" respawn="false" name="odometryPub" output="screen"> <param name="car_total_num" value="6" /> </node> <node pkg="global_vision" type="static_tf" respawn="false" name="static_tf" output="screen"> <param name="car_num" value="6" /> </node> <!-- tf publisher --> <!-- matrix (1, 0, 0, 0, -1, 0, 0, 0, -1) --> <node pkg="tf" type="static_transform_publisher" name="map_hik_broadcaster" args="0 2 4 1 0 0 0 map hik_camera 100" /> </launch>
roslaunch global_vision start.launch
- 启动强化学习多车跟随节点。打开终端,输入命令:
rosrun c6_pfc_rl c6_pfc_rl
提示
在运行过程中,由于车的数量较多,会产生甩尾现象。导致最后一辆车被甩出场地,这是正常现象。
将甩尾的车重新放置在场地内即可
- 停车。首先 关闭第7步 的程序,然后打开终端,输入:
rosrun global_vision stop
提示
强化学习跟车Demo支持2-6车,可以根据情况将6车变为4车。或者根据源码重新训练多车。
视频演示
提示
如果无法播放视频,按下
ctrl
+F5
刷新一下缓存即可
注意
- 由于存在甩尾现象加上场地限制(图像采集画面下方正好是一面墙)可以看到最后一辆小车被甩出场地(砸在墙上)
- 虽然甩尾现象存在,但是将6号车再次放回场地,依然能够完成跟随动作
- 如果采用4车,效果会更好