持续更新|第四弹:如何用一部手机就能做到!不用遥控器也能控机械臂
本文实现了通过手机传感器数据(加速度计、陀螺仪、磁力计)控制机械臂的功能。数据通过 WebSocket 从手机实时传输到本地Python脚本,脚本经姿态解算后控制机械臂运动。最后,不知道大家学‘废’了吗,控制机械臂不需要复杂的编程,有时候,只需要一部手机和一个好点子。下一期将更进一步:脱离手机,直接通过手势识别控制机械臂,实现“手在哪,臂就到哪”的自然交互。敬请期待:《松灵PIPER机械臂手势识别
在前几期中,我们实现了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 中相关参数。
参考文献
结语
最后,不知道大家学‘废’了吗,控制机械臂不需要复杂的编程,有时候,只需要一部手机和一个好点子。下一期将更进一步:脱离手机,直接通过手势识别控制机械臂,实现“手在哪,臂就到哪”的自然交互。敬请期待:《松灵PIPER机械臂手势识别与位置映射》!
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)