# robot **Repository Path**: lpy1212/robot ## Basic Information - **Project Name**: robot - **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-12 - **Last Updated**: 2026-05-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Robot 一款基于ROS的智能机器人控制系统,集成了视觉识别、舵机控制、手势交互等功能。 ## 项目简介 本项目是一个功能完善的机器人控制系统,采用ROS(Robot Operating System)作为核心框架,实现了多模态感知与控制能力。项目包含计算机视觉识别、舵机控制、ROS通信等功能模块,可用于智能机器人、机械臂控制、视觉导航等应用场景。 ## 功能特性 - **计算机视觉识别**: 支持多种目标检测模型 - YOLO系列(YOLOv2-YOLOv10) - FCOS目标检测 - 人体、头部、人脸、手部检测 - 手势识别 - 图像分割(YOLOv8 Seg) - **舵机控制系统**: - 多路舵机控制(6个舵机通道) - 支持串口通信控制Raspberry Pi Pico - 摇杆/手柄控制模式 - 位置记录与复现 - **ROS集成**: - ROS节点封装 - 话题发布/订阅 - 与ROS生态系统无缝集成 - **Web服务**: - Express服务器 - CORS跨域支持 ## 目录结构 ``` robot/ ├── config/ # 配置文件目录 │ ├── *.json # 模型和工作配置文件 │ ├── *.hbm # 预训练模型 │ ├── *.nv12 # 视频/图像配置 │ └── *.list # 类别列表 ├── start.js # Web服务入口 ├── right.py # 舵机控制器(主) ├── right_under1.py # 舵机控制器(备选) ├── *.sh # 启动脚本 │ ├── face.sh # 人脸识别启动 │ ├── hand_control.sh # 手势控制启动 │ ├── pose.sh # 姿态控制启动 │ ├── track.sh # 目标跟踪启动 │ ├── pico*.sh # Pico舵机控制 │ ├── start*.sh # 各模块ROS启动 │ └── ... └── package.json # Node.js依赖 ``` ## 依赖环境 ### 系统要求 - Ubuntu 16.04+ / ROS Kinetic/Melodic/Noetic - Python 3.6+ - Node.js 12+ ### Python依赖 ```bash pip install rclpy rospkg serial ``` ### Node.js依赖 ```bash npm install express cors ``` ## 快速开始 ### 1. 安装依赖 ```bash # Python依赖 pip install rclpy pyserial # Node.js依赖 npm install ``` ### 2. 配置环境变量 ```bash # 设置摄像头类型(根据实际情况选择) export CAM_TYPE=USB # 或 CAM_TYPE=CSI ``` ### 3. 启动机器人系统 ```bash # 启动ROS主节点 bash start_ros.sh # 启动视觉识别 bash face.sh # 人脸识别 bash hand_control.sh # 手势控制 bash track.sh # 目标跟踪 # 启动Pico舵机控制 bash start_pico.sh ``` ### 4. 使用Python控制器 ```bash # 运行主控制器(支持摇杆控制和舵机控制) python right.py # 运行备选控制器 python right_under1.py ``` ### 5. 启动Web服务 ```bash node start.js ``` ## 配置说明 ### 模型配置 配置文件位于 `config/` 目录,可根据需求选择不同模型: | 配置文件 | 用途 | |---------|------| | yolov8workconfig.json | YOLOv8目标检测 | | fcosworkconfig.json | FCOS目标检测 | | multitask_body_head_face_hand_kps_960x544.hbm | 多任务检测 | | gestureDet_32x21.hbm | 手势识别 | ### 串口配置 Python控制器会自动检测操作系统并选择对应串口: - Linux: `/dev/ttyACM0` 或 `/dev/ttyUSB0` - Windows: `COM3` 等 ## 使用示例 ### 舵机控制协议 通过串口发送指令控制舵机: ```python # 发送转动指令 send_cmd(servo_id=1, action="转动", angle=90) ``` ### ROS话题通信 ```python # 订阅控制话题 def handle_controller_data(self, data): self.switch_to_joystick_mode() # 切换到摇杆模式 self.switch_to_servo_mode() # 切换到舵机模式 ``` ## 贡献指南 欢迎提交Issue和Pull Request! ## 许可证 本项目仅供学习研究使用。