Play Open
Loading Please wait Loading Please wait Loading Please wait Loading Please wait Loading Please wait Loading Please wait

持续更新|第四弹:如何用一部手机就能做到!不用遥控器也能控机械臂

在前几期中,我们实现了PIPER机械臂的点位控制、轨迹录制与视觉识别。本期,我们‘脑洞大开’——用一部普通手机的陀螺仪,实现对机械臂的实时姿态遥操作。

无需专用设备,只需一个App和一段Python脚本,就能让机械臂‘模仿’你的手势动作。这不仅是技术的融合,更是人机交互方式的一次有趣探索。

更重要的是——所有代码已开源,欢迎动手实践!

摘要 本文实现了通过手机传感器数据(加速度计、陀螺仪、磁力计)控制机械臂的功能。数据通过 WebSocket 从手机实时传输到本地Python脚本,脚本经姿态解算后控制机械臂运动。

标签 手机传感器、姿态遥操、陀螺仪、姿态解算、EKF

代码仓库

github链接:https://github.com/agilexrobotics/Agilex-College/tree/master/piper/mobilePhoneCtl

功能演示

当我用一部手机实现机械臂控制遥操

环境配置

操作系统:Ubuntu(推荐Ubuntu 18.04或更高版本)

Python环境:Python 3.6或更高版本

克隆项目:

git clone https://github.com/agilexrobotics/Agilex-College.git

cd Agilex-College/piper/mobilePhoneCtl/

安装依赖库:

pip install -r requirements.txt --upgrade

确保已正确安装并配置 piper_sdk 及其硬件依赖。

手机 App 安装

本项目推荐使用 Sensor Stream IMU+(付费 App)进行手机端数据采集与推送。

前往官网或应用商店购买并安装 Sensor Stream IMU+。

该 App 支持 iOS 和 Android。

App 使用方法

打开 Sensor Stream IMU+ App。

在“Set IP Address”处输入运行本脚本的电脑 IP 地址和端口(默认 5000),如 192.168.1.100:5000。

选择要推送的传感器(Accelerometer、Gyroscope、Magnetometer)。

设置合适的 update interval(如 20ms)。

点击“Start Streaming”开始推送数据。

Python 脚本使用 1. 连接机械臂并激活CAN模块。

sudo ip link set can0 up type can bitrate 1000000

运行本目录下的 main.py:

python3 main.py

脚本启动后会显示本机 IP 地址和端口,请在 App 中填写一致。

当 App 开始推送数据后,脚本会自动进行姿态解算,并通过 piper_sdk 控制机械臂末端姿态。

数据传输与机械臂控制说明

手机端通过 WebSocket 实时推送三轴加速度、陀螺仪和磁力计数据到 Python 脚本。

脚本使用扩展卡尔曼滤波(EKF)算法进行姿态解算,获得欧拉角(roll, pitch, yaw)。

解算结果实时通过 piper_sdk 的 EndPoseCtrl 接口发送给机械臂,实现姿态控制。

注意事项

请确保手机和电脑处于同一局域网内,且防火墙允许 5000 端口通信。

机械臂运动前请确保安全,避免碰撞。

若需修改端口或初始位置,请编辑 main.py 中相关参数。

参考文献

基于EKF的航姿解算(AHRS)

结语

最后,不知道大家学‘废’了吗,控制机械臂不需要复杂的编程,有时候,只需要一部手机和一个好点子。下一期将更进一步:脱离手机,直接通过手势识别控制机械臂,实现“手在哪,臂就到哪”的自然交互。敬请期待:《松灵PIPER机械臂手势识别与位置映射》!

Copyright © 2088 神之降临者-硬核动作游戏门户 All Rights Reserved.
友情链接