Skip to content

123pc/Hlerobot

Repository files navigation

低成本家居机器人 HLerobot

Python Version License

📋 项目概述

HLerobot 是一款基于 lerobotXlerobotlerobot-joycon 开源项目二次开发的低成本双臂智能家居机器人。项目聚焦家庭服务场景,通过模块化硬件设计与开源软件整合,实现家务执行、多端控制、自主移动与精准升降功能,旨在降低家庭服务机器人的研发门槛与成本,让具身智能走进普通家庭。

核心定位:支持 60% 以上日常家务,成本控制在 5000 元左右,兼具稳定性与实用性。

✨ 核心功能

  1. 多端机械臂控制:基于 lerobot-joycon 扩展,支持 Joycon 手柄、键盘、示教器三种控制方式,实现夹取、传递、放置等动作。

  2. WiFi 全向移动:通过 ESP32 与 DDSM210 轮毂电机通信,支持前进/后退/左转/右转/停止,差动反向转向(50% 反向差速)。

  3. 精准丝杆升降:TCP/WiFi 控制 1610 丝杆+57 步进电机,拓展机械臂工作空间,支持升降/点动/状态查询。

  4. 环境感知能力:头部+双机械臂腕部共 3 台摄像头,采集图像数据用于物体识别与模型训练。

  5. 安全保护机制:2 秒心跳超时保护(电机自动停止),避免操作风险。

🛠️ 硬件要求

组件 规格说明
主控制器 树莓派 4B(下位机)、ESP32(WiFi 通信,默认 IP:192.168.4.1
机械臂 Lerobot SO101 双机械臂(5 自由度)
移动底盘 宜家小推车+铝型材、DDSM210 轮毂电机(左=ID1,右=ID2)
升降模块 1610 丝杆(精度 0.03mm)、57 步进电机、DM556-IO 驱动器
传感器 摄像头 3 台(头部 1 台+腕部 2 台)
驱动板 Waveshare DDSM Driver HAT (A)、串口舵机驱动板
电源 200W 户外移动电源(220V 便携式)、12V5A/24V3.2A 直流电源
控制设备 任天堂 Joycon 手柄、键盘、示教器

📚 软件环境

  • Python 版本:3.10

  • 操作系统:Ubuntu 20.04

  • 核心框架:ROS2(通信层)、Isaac sim4.5(仿真验证)

  • 依赖库:requests(HTTP 通信)、tkinter(GUI)、socket(TCP 通信)、threading(异步处理)

  • 开源模型:Huggingface 预训练模型(act/pi0/smlvla)

🚀 安装步骤

  1. 克隆仓库
git clone https://github.com/123pc/move_base_control.git
cd move_base_control
  1. 安装依赖
pip install requests
  1. 验证硬件连接
  • 电机接线:左轮毂电机→ID1,右轮毂电机→ID2(匹配代码 MOTOR_IDS

  • ESP32 与电脑接入同一 WiFi/局域网

  • 丝杆控制:57 步进电机连接 DM556-IO 驱动器,驱动器方向引脚接网络开关常开端

🎮 快速开始

1. 机械臂控制(Joycon/键盘/示教器)

# Joycon 手柄控制
python joycon_control.py
# 键盘控制
python keyboard_control.py
# 示教器控制
python teach_control.py

2. WiFi 底盘移动

# 运行轮毂电机控制器
python test5.py
  • 滑块调节速度(0-210 RPM),点击方向按钮(前进/后退/左/右/停止)

  • 查看日志区域确认命令执行状态

3. 丝杆升降控制

# 运行丝杆控制器
python net_switch.py
  • 输入网络开关 IP(默认:192.168.1.100)和端口(默认:8282

  • 点击「连接」(状态变绿为成功),通过按钮控制升降/点动,「查询状态」验证开关状态

⚙️ 核心配置

底盘移动配置(test5.py

# 网络配置
ESP32_IP = "192.168.4.1"  # ESP32 实际 IP
# 电机配置
MAX_RPM = 210  # DDSM210 最大空载转速
DEFAULT_SPEED = 30  # 默认启动速度(RPM)
MOTOR_IDS = [1, 2]  # 左右电机 ID 映射
# 安全配置
HEARTBEAT_TIME = 2000  # 心跳超时(ms)

丝杆升降配置(net_switch.py

# 默认网络开关参数
self.ip_entry.insert(0, "192.168.1.100")  # 网络开关 IP
self.port_entry.insert(0, "8282")          # 网络开关端口

⚠️ 重要说明

  1. 确保所有设备接入同一网络,ESP32 IP 需与配置文件一致

  2. 电机 ID 与接线必须匹配,否则会导致方向反转

  3. 心跳超时后电机自动停止,重新发送命令即可激活

  4. 避免长时间以最大 RPM 运行电机,防止过热

  5. 丝杆控制建议给网络开关配置固定 IP,避免连接失效

📖 参考资料

📄 许可证

本项目基于 MIT 许可证开源,详见 LICENSE 文件。

🙏 致谢

  • 感谢 lerobotXlerobotlerobot-joycon 开源项目提供的基础框架与技术参考

  • 感谢 Waveshare 开源 DDSM 驱动板协议文档

  • 感谢 Python 社区与 Huggingface 提供的工具链支持

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors