# ros_demos **Repository Path**: cqjdc/ros_demos ## Basic Information - **Project Name**: ros_demos - **Description**: 基于ROS PX4的demo,无人机与小车协同救援 - **Primary Language**: C++ - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-08-28 - **Last Updated**: 2025-08-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ros_demos ## 介绍 这是用于无人机和小车协同任务的`DEMO`,现阶段实现了无人机单独巡逻,寻找`Aruco`码,并前往悬停的功能。 ## 软件架构 现有的仓库下有两个文件夹和两个脚本文件 ### SRC 文件夹 > `src`文件夹下是项目用到的一些`ROS`程序包,包括 + `common`: 定义了一些基础的`ros`消息文件,其余程序包会调用这个程序包生成的消息 + `demo1`:这个是DEMO的核心代码,`aruco`码识别,以及无人机的控制都写在这个程序包中 + `gazebo_setting`:这个程序用于`DEMO1`的仿真使用,里面有`world`、`model`以及`launch`文件 + `uav_control`:这个是来自于`Prometheus`项目的无人机主控代码,把基础的`mavros`接口包装供用户使用,简化了对无人机的控制 + `uab_cam`:用于启动`Usb`摄像头 + `ras_pi`: 用于部署到树莓派无人机上的程序包,使用`pix6c`, `T265`, 和`TFmini`硬件 + `tfmini_ros`: 用于启动tfmini节点 ### python4catkin > `py4catkin`:此文件夹是一些`python`脚本工具,用于摄像头相关校准,识别`aruco`测试等 + `A_create_aruco_marker.py`:用于生成`aruco`码,默认是生成`DICT_6x6_250`模板的码 + `B_create_board.py`:用于生成摄像头标定时使用的棋盘格子 + `C_get_img.py`:用于通过摄像头拍一些照片 + `D_OpenCV_CameraCalibration.py`:`Opencv`的相机标定程序,将拍好的图片放入特定文件夹,就可以得到相机的内参矩阵的,`DIff`值 + `E_test_aruco_estim.py`:相机通过上述标定后,对生成的`aruco`码进行位置姿态估计 ### 编译脚本 + `compile_demo1.sh`:使用`catkin_make`编译这个工作空间 + `compile_demo1_catkin_build.sh`:使用`catkin build`编译整个工作空间 ## 安装教程 1. 下载后,直接运行编译脚本 2. 如果需要运行仿真环境,请在`~/.bashrc`中添加如下内容 ```bash export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:{this repo path}/src/tools/gazebo_setting/models ``` ## 使用说明 ### WGD无人机 + 真机飞行 ``` bash roslaunch demo1 real_fly_pycv.launch # 未测试 roslaunch demo1 real_fly.launch ``` + 仿真飞行 ``` bash roslaunch demo1 sim_gazebo_pycv.launch # 效果奇差,可能是aruco在仿真环境中识别有问题 roslaunch demo1 sim_gazebo.launch ``` ### DS无人机 + 真机飞行 ``` bash roslaunch demo1 real_fly_ds.launch ``` + 仿真飞行 ``` bash roslaunch demo1 sim_ds.launch ``` ### 树莓派无人机 + 真机飞行 ``` bash roslaunch ras_pi real_fly_raspi.launch ``` + 仿真飞行 ``` bash roslaunch ras_pi sim_gazebo.launch ``` ### 后续任务 + [x] 测试WGD无人机实际飞行(python版本视觉处理) + [x] 测试T265+TFmini版本是否可行 + [x] 测试树莓派无人机飞行 + [x] 将MID360雷达定位接入到prometheus control程序包中 + [ ] 接入move_base程序包 + [ ] 测试MID360和move_base结合下的指点飞行 + [ ] 接入ego-planner,并测试