forked from logzhan/RobotKernal-UESTC
jhy 7b36d74efa | ||
---|---|---|
.. | ||
pibot_ros | ||
test_map | ||
README.md |
README.md
目录说明
更新:2024-03-14 詹力 Review 更新文档
pibot_ros
: 机器人硬件底盘控制 & 全覆盖、双目测距、目标检测、UWB融合算法。test_map
: 跃杭测试代码
一、PIbot_ROS说明
PIbot原先淘宝购买的机器人底盘配套的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编译按照顺序和)。
# 进入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 启动全覆盖 & 避障
# 启动机器人和底盘通信连接
./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行