# 目录说明 > 更新:2024-03-14 詹力 Review 更新文档 > > 1. `pibot_ros` : 机器人硬件底盘控制 & 全覆盖、双目测距、目标检测、UWB融合算法。 > 2. `test_map` : 跃杭测试代码 > ### 一、PIbot_ROS说明 ​ [PIbot](https://gitee.com/pibot/pibot_bringup/blob/master/doc/README.md#1-%E8%AF%B4%E6%98%8E)原先淘宝购买的机器人底盘配套的ROS驱动代码,能够实现ROS和底盘的控制以及传感器数据的读取。 #### 1.1 Pibot的作用 #### 1.2 相关算法目录 ​ PIbot_ROS是一个ROS的工作空间,工作空间的介绍见`Docs/ROS工作目录介绍`。割草机器人项目的相关算法包在`pibot_ros\ros_ws\src\`下。 ​ ipa_coverage_planning : 全覆盖路径规划算法,主要是跃杭在开发 ​ upbot_following :割草机器人UWB跟随算法包 ​ upbot_location : 割草机器人UWB融合定位 ​ upbot_vision : 割草机器人视觉包,负责目标检测和双目测距 #### 1.3 PIbot编译 ​ `pibot_ros`的编译如下,相关支持功能包的安装以及PIbot使用的各种细节坑见`Docs\PIbot-ROS安装.md`。编译的时一定需要先编译pibot_msgs包(目前未彻底解决,无法准确控制catkin编译按照顺序和)。 ```shell # 进入home目录 cd ~ # 下载代码 git clone http://logzhan.ticp.io:30000/logzhan/RobotKernal-UESTC.git # 把PIBot_ROS移动到Home目录下 mv RobotKernal-UESTC/Code/MowingRobot/pibot_ros ~/pibot_ros # 要运行pibot还得安装相关支持包 #导航相关 sudo apt-get install ros-noetic-navigation #定位相关 sudo apt-get install ros-noetic-robot-pose-ekf # 编译代码 # 1.先编译pibot_msgs生成对应的头文件 # 这是因为catkin_make编译顺序不可控,虽然参照网上的写法控制顺序,但是没有起到作用。这回导致自# 定义的msg还没有生成头文件就被引用导致编译不通过。 catkin_make --pkg pibot_msgs # 2.编译全部Package catkin_make ``` ### 二、实验测试 #### 2.1 启动全覆盖 & 避障 ```shell # 启动机器人和底盘通信连接 ./runBringUp.sh # 启动目标检测和测距节点 ./runStereo.sh # 可选: 启动UWB融合定位 ./runCarLocation.sh # 启动全覆盖地图服务端 ./runRoomExplorationServer.sh # 启动全覆盖地图客户端 ./runRoomExplorationClient.sh #自己建图(画圈)、地图的优化、跑全覆盖 #建图 (UWB的) #地图优化 cd test_map ./main input_map_name output_map_name #全覆盖客户端路径 cd pibot_ros/ros_ws source ./devel/setup.bash roslaunch ipa_room_exploration room_exploration_client.launch robot_env:=map_name #修改地图路径 #优化地图 test_map 的main.cpp #全覆盖 room_exploration_action_client.cpp 下面77行 ```