Commit Graph

16 Commits

Author SHA1 Message Date
d716ed5e67 docs: 重写机械臂运动学文档
- 清晰的章节结构:几何参数、正运动学、逆运动学
- 完整的数学推导(带 LaTeX 公式)
- Python 代码实现示例
- 工作空间分析和奇异点说明
- 运动插值算法
- 实用示例和测试命令

替换了原有的混乱结构,现在更易理解和参考
2026-06-16 19:05:09 +08:00
f00537ebb9 docs: 整理和精简文档结构
- 删除冗余文档(6个重复的说明文档)
- 更新 README.md:简洁清晰的项目总览
- 更新 ros2/README.md:完整的 ROS 2 使用指南
- 保留核心技术文档:docs/arm.md(运动学推导)

文档现在更加简洁,避免重复内容
2026-06-16 19:01:42 +08:00
83b32542ef feat: 添加机械臂 ROS 2 控制节点和视觉抓取系统
- 创建 arm_control_msgs 包:定义机械臂控制的消息和服务接口
  - 消息:JointState, TCPPose
  - 服务:MoveJoints, MovePose, GetPose, SetGripper

- 实现 arm_control 节点:独立的机械臂控制 ROS 节点
  - 完整的逆运动学和正运动学
  - 关节空间和笛卡尔空间运动控制
  - UDP 通信与 ESP32
  - 状态发布(10Hz)

- 实现 vision_grasp 节点:自动化视觉抓取
  - 相机坐标系到基坐标系的完整变换
  - 自动抓取流程:释放→移动→抓取→回收
  - 自动释放流程:移动→释放→回收
  - 多线程执行器支持

- 添加完整文档
  - ARM_CONTROL_README.md: 机械臂控制节点使用指南
  - VISION_GRASP_README.md: 视觉抓取节点使用指南
  - QUICKSTART.md: 快速开始指南
  - 文档重命名:docs/craic.md → docs/arm.md
2026-06-16 18:45:01 +08:00
7144005be2 feat: 将机械臂坐标系改为 z 轴朝上
主要修改:
- 坐标系统: z=0 为顶部改为底部,z 轴朝上
- 高度范围: d1 ∈ [-290, 0] mm (-290=底部, 0=顶部)
- Z4 偏移: 80.0 (原 -80.0), Z4_OPEN=55, Z4_CLOSED=-100
- 运动学: 更新 tcp_to_joint4_center 和 forward_kinematics 的 z 坐标变换
- 夹爪逻辑: 更新 resolve_gripper_from_z 的高度判断范围
- 插值优化: 先完成末端运动,再处理 grip/release
- 移除所有坐标转换中的负号,统一为正向 z 轴朝上系统
2026-06-16 15:45:53 +08:00
87c8b909e9 Add per-joint limits, joint-space interpolation, grip/release, --up/--down
- Add per-joint angle limits (J2=-110..115, J3=-120..145, J4=-90..130)
  with CLI overrides and validation
- Replace Cartesian interpolation with joint-space interpolation in
  pose mode to guarantee intermediate steps stay within joint limits
- Add --up/--down mutually exclusive groups to both joints and pose
  modes; pose mode auto-detects from z when neither is specified
- Add --grip/--release for J6 control (GRIP/RELEASE_ANGLE placeholders)
- Update cached state to match latest run
2026-06-15 22:18:02 +08:00
9c4f48a225 Auto-select gripper state from z coordinate in pose mode
- Add resolve_gripper_from_z(): z>=55 → down (open), z<55 → up (closed),
  overlap range prefers down
- Remove --up flag from pose subparser (fully auto-detected from --z)
- joints mode retains manual --up flag
- Update cached state to match latest run
2026-06-15 21:51:10 +08:00
7accfc617e Refactor arm UDP controller with user-space height coordinates and gripper toggle
- Switch height to user coordinates (0=top, 290=bottom mm), invert sign
  internally for UDP protocol
- Replace raw --j5 arg with --up flag (gripper up/down toggle)
- Add default geometry constants (L1, L2, X4, Z4) and gripper
  open/closed angles
- Update --show-fk and pose mode to derive Z4 from gripper state
- Add mm unit annotations to all CLI help text and output
- Update cached joint state to match new coordinate convention
- Add camera_capture.py: single-shot JPEG grabber from ESP32 MJPEG stream
- Fix missing newline at EOF in craic.md
2026-06-15 21:33:47 +08:00
f343a01372 Add arm UDP controller with IK and interpolation 2026-06-12 19:01:48 +08:00
bdec5d4827 docs: add CRAIC competition info to README 2026-05-27 02:31:01 +08:00
6469e77633 docs: add ros2 workspace README with multi-method installation 2026-05-27 02:29:06 +08:00
9532264534 docs: add tools README 2026-05-27 02:20:09 +08:00
7f4189bb7a docs: add project README 2026-05-27 02:18:53 +08:00
6f6577d983 chore: add ros2 udp_teleop package and tools 2026-05-27 02:17:35 +08:00
13fdba5fff chore: add root .gitignore 2026-05-27 02:16:54 +08:00
ec41ed8a48 WIP: snapshot before repo migration 2026-05-27 02:15:09 +08:00
aa7ed7cf51 feat: ESP32-S3 双核并行摄像头系统 (AsyncUDP + ESP-NOW)
- 主程序: src/main.cpp - AP模式摄像头推流 + AsyncUDP中断通讯
- 通信模块: UDPPeer类 (UDP + ESP-NOW双通道, Flash配置持久化)
- 参考实现: ESPNOW通讯 / bkespnow版本 / 普通连接版本
- clangd配置: --target=arm-none-eabi + __XTENSA__宏 + 工具链sys-include
- 硬件: ESP32-S3-WROOM-1-N16R8 + OV2640, 16MB Flash, Octal PSRAM
2026-05-14 16:39:01 +08:00