# car1 **Repository Path**: w7y7x7/car1 ## Basic Information - **Project Name**: car1 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-19 - **Last Updated**: 2026-05-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # car1_ws V1.0 — Nanocar 视觉跟随 基于 ROS2 Humble + ArUco 的视觉跟随系统,适用于 RK3588 平台。 ## 结构 ``` car1_ws/ ├── build.sh # 一键构建脚本 ├── README.md └── src/ └── car_follower/ # 视觉跟随包 ├── launch/follow.launch.py ├── config/params.yaml └── car_follower/ ├── aruco_detector.py # ArUco 检测 └── follower_controller.py # PID 跟随控制 ``` ## 依赖 | 包 | 用途 | |---|---| | `rclpy` | ROS2 Python 客户端 | | `sensor_msgs` | 图像消息 | | `std_msgs` | 检测结果消息 | | `geometry_msgs` | 速度指令 | | `cv_bridge` | ROS↔OpenCV 转换 | | `v4l2_camera` | USB 摄像头驱动 | | `python3-opencv` | ArUco 检测 | | `python3-numpy` | 数值计算 | ## 快速开始 ```bash # 1. 构建 cd car1_ws bash build.sh # 2. 启动 source install/setup.bash ros2 launch car_follower follow.launch.py # 3. 关闭窗口 ros2 launch car_follower follow.launch.py show_window:=false # 4. 指定 ArUco ID ros2 launch car_follower follow.launch.py target_id:=5 ``` ## 话题 | 话题 | 方向 | 类型 | 说明 | |---|---|---|---| | `/image_raw` | 订阅 | `sensor_msgs/Image` | 摄像头图像 | | `/car_target` | 发布 | `std_msgs/Float32MultiArray` | [cx, cy, w, h] | | `/cmd_vel` | 发布 | `geometry_msgs/Twist` | 速度指令 | ## PID 参数 | 参数 | 默认值 | 说明 | |---|---|---| | `kp_angular` | 0.003 | 角速度 P 增益 | | `kp_linear` | 0.001 | 线速度 P 增益 | | `target_area` | 12000 | 目标面积 (像素²) | | `max_linear` | 0.2 | 最大线速度 (m/s) | | `max_angular` | 0.5 | 最大角速度 (rad/s) | ## 系统备份 & 重装恢复 使用 `backup_restore.sh` 一键完成完整备份或重装后恢复。 ### 使用说明 ```bash # ===== 重装前:备份全量项目 ===== bash ~/桌面/backup_restore.sh backup # ===== 重装后:恢复环境 ===== # 1. 先将备份目录 nanocar_backup_* 复制到 ~/ # 2. 自动恢复(自动找最新备份) bash ~/桌面/backup_restore.sh restore # 或指定备份路径 bash ~/桌面/backup_restore.sh restore ~/nanocar_backup_20260101_120000 ``` ### 备份内容 | 内容 | 说明 | |------|------| | `car1_ws/` | 核心 ArUco 跟随项目(V1.0) | | `nanocar_ws/` | 底盘驱动(base_control_ros2) | | `cv_follower_ws/` | 旧版视觉跟随(含 warmup_camera 摄像头预热) | | `ros2_ws/src/` | SLAM & 硬件驱动(雷达/相机/IMU) | | `car1bf_repo/` | Gitee 远程仓库克隆 | | `ml_configs/` | ML/MLX 操作手册、DDS文档、.bashrc别名、systemd服务 | ### 恢复阶段自动完成 1. 系统基础检查(ROS2 是否安装) 2. **驱动检测 & 适配**(自动识别冰达官方驱动 vs 本地驱动,切换启动命令) 3. 安装 apt/pip 系统依赖 4. 解压恢复全部工作空间 5. 按序编译(car1_ws → nanocar_ws → cv_follower_ws → ros2_ws) 6. 创建 `/dev/usb_cam` 设备软链接 7. 配置 systemd 开机自启服务 8. 打印验证测试命令 ### 驱动适配策略 | 场景 | `nano_base` 实际命令 | |------|----------------------| | 本地 `nanocar_ws` 存在 | `source ~/nanocar_ws/... && ros2 launch base_control_ros2 ...` | | 冰达官方驱动存在 | `ros2 launch base_control_ros2 base_control.launch.py` | | 两者均无 | `ros2 run base_control_ros2 base_control_node`(兜底) | ### 注意事项 > **⚠️ 备份必须在重装前执行**,备份目录位于 `~/nanocar_backup_时间戳/`。 > > **⚠️ 备份目录必须保存到外部存储**(U盘/外接硬盘),系统重装会清除本地所有数据。 > > **⚠️ 恢复脚本假设 ROS2 Humble 已安装**。如果系统是全新安装,需先安装 ROS2。 > > **⚠️ `.bashrc` 别名会被自动覆盖**,旧别名会备份到 `~/桌面/bashrc_aliases_old.txt`。 > > **⚠️ 编译产物(build/install/log)不备份**,恢复时会重新编译。 > > **⚠️ 摄像头节点依赖 `/dev/usb_cam` 设备**,恢复后会自动创建 `/dev/video0` → `/dev/usb_cam` 软链接。 ## License MIT