如何将Pika Sense与AgileX NERO机械臂集成,实现低延迟的远程操作、抓取控制以及具身人工智能研究
0. 前言
Pika Sense 提供了一个直观的远程操作界面,用于机器人抓取和数据采集。结合 Pika Station、Pika Gripper 以及 AgileX NERO 机械臂,它能够为单臂和双臂系统实现低延迟的末端执行器远程操控。
本教程将详细介绍完整的设置流程,并为希望将 Pika Sense 集成到自身机器人臂中的开发者提供参考。
⚠ 警告:目前 Pika Sense 支持以下机器人臂:
•AgileX PiPER
•AgileX PiPER-X
•AgileX NERO
•xArm Lite 6
如需支持其他机器人臂,可通过实现相应的远程操作接口来扩展功能。我们欢迎社区贡献。如果您成功适配了其他机器人臂,欢迎向我们的 GitHub 仓库提交拉取请求。
1.硬件准备
本节描述了使用默认NERO夹具操作单台AgileX NERO机械臂所需的硬件设置。
⚠ 重要提示
•组装机械臂时,请将机械臂连接器上的红色对齐标记与电缆上对应的红色标记对齐。
•航空连接器上的纹理套管为锁定装置。安装时,将红色标记朝下对准定位凹槽,并将连接器推入到位。拆卸时,先按压纹理套管,然后拉出连接器。
•如果使用的是第三方机械臂,则可按照适用于NERO机械臂的相同硬件连接步骤进行操作。
对于第三方机械臂,还需额外确认其电源、通信接口、末端执行器接口及控制协议是否满足远程操作的要求。
步骤1 – 连接NERO机械臂
请按下方接线图所示连接NERO机械臂。有关详细接线说明,请参阅NERO用户手册。
首次启动机器人时,请按以下顺序完成以下步骤(A–G):
•将连接器A连接至J2端口。
•连接航空接头B的CAN线缆。
•连接XT30接头C。
•对准航空接头D上的红色圆点,然后将插头插入,使红色圆点朝下。
•连接电源适配器E的插头。
确认电源适配器E的交流电源线已正确连接,然后启动系统。等待控制面板上的指示LED灯开始以绿色闪烁。
将USB线连接到您的计算机,即可开始使用该设备。
步骤2 - 连接Pika Sense
接下来,连接Pika Sense设备。
有关Pika Sense接口和接线的详细信息,请参阅《Pika定位器与感应器用户指南》(定位与校准)第1.1节。
2.软件准备
步骤1:安装系统依赖包
在运行远程操作软件之前,请先安装所需的系统软件包:
步骤2:安装Conda
请在继续之前安装Miniconda或Anaconda。
如果已安装Conda,则可跳过此步骤。
步骤3. 创建Pika远程操作Python环境
为Pika远程操作创建一个专用的Conda环境:
3.开始远程操作
3.1 单臂远程操作
步骤1 – 启用CAN接口
将机械臂的CAN线连接到计算机,然后通过以下命令启用CAN接口:
步骤2 – 校准Pika Sense
在开始远程操作前,请对Pika Sense设备进行校准。
详细校准说明请参见《Pika定位器与传感器用户指南》(定位与校准)中的第1.2和1.3节。
步骤3 – 启动远程操作程序
根据您的硬件配置选择合适的启动方式。
选项A – 不使用Pika夹爪时使用Pika Sense
如果未使用Pika夹爪,请启动以下程序。
终端1
终端2
当两个终端均运行后,双击Pika Sense触发器以启用远程操作。
⚠ 重要提示:在启用远程操作前,请确保Pika Sense的方向与机器人末端执行器的方向一致。
选项B – 使用Pika夹爪时使用Pika Sense
如果将Pika Gripper安装在机械臂上,并通过Pika Sense进行控制,首先需按照《Pika Positioner & Sense用户指南(定位与校准)》中的说明,用一个Pika Sense绑定一个Pika Gripper。
终端1
终端2
系统运行后,双击Pika Sense触发器以开始远程操作。
⚠ 重要提示:在启用远程操作前,请确保Pika Sense的朝向与机器人末端执行器的朝向一致。
3.2 双臂远程操作
步骤1 – 配置CAN接口
在开始双臂远程操作之前,必须为两个机械臂分配正确的CAN接口。
首先,使用CAN适配器将左臂连接到计算机,然后运行以下命令:
终端将显示对应左臂的USB端口。
接着,连接右臂并再次运行脚本:
终端将显示对应右臂的USB端口。
打开can_config.sh文件,将检测到的两个USB端口号分别复制到第111行和第112行。
例如,当使用PiPER时,配置应如下所示:
保存配置后,激活两个CAN接口:
步骤2 – 校准Pika Sense并绑定Pika设备
在开始远程操作前,请先校准Pika设备。详细操作说明请参阅Pika用户手册,包括“Pika定位器与传感器使用指南”(定位与校准)部分,了解基站部署和Pika Sense的校准方法,然后进入“Pika设备绑定”部分,将左右两个Pika Sense设备进行绑定。
步骤3 – 启动双臂远程操作程序
根据您的硬件配置选择启动方式。
选项A – 不使用Pika夹爪时的Pika Sense操作
如果您未使用Pika夹爪,或使用的是机器人原装夹爪,请先按照Pika设备绑定指南,绑定两个Pika Sense设备。
终端1
终端2
最后,双击右侧Pika Sense触发器,启动双臂远程操作。
重要提示:在启用远程操作前,请确保Pika Sense的方向与机器人末端执行器的方向一致。
选项B – 使用Pika夹爪时的操作
如果两根机械臂均安装了Pika夹爪,请先通过Pika设备绑定部分第2.6节,绑定以下内容:
•两个Pika Sense设备
•两个Pika夹爪
完成绑定后,
终端1 —— 启动Pika Sense
终端2——启动Pika Grippers
终端3——启动机器人
最后,双击右侧的Pika Sense触发器以开始远程操作。
重要提示:在启用远程操作前,请确保Pika Sense的方向与机器人末端执行器的方向一致。
4.配置文件
每个支持的机器人的配置文件按以下方式组织:
5. 坐标系与ROS话题
为帮助开发者将Pika Sense集成到自己的机械臂中,本节将介绍:
- Pika夹爪坐标系
- /pika_pose ROS话题
5.1 Pika坐标系
Pika坐标系定义在Pika夹爪的中心位置,并通过/pika_pose话题发布。
当双击Pika Sense夹爪以启用远程操作时,Pika Sense当前的姿态将被记录为参考(零)姿态。此后所有位置和姿态指令均相对于该参考坐标系进行表达。
/pika_pose框架的坐标轴定义如下:
•X轴:向前
•Y轴:向左
•Z轴:向上
5.2 ROS话题
对于单臂远程操作,Pika Sense将机器人目标姿态发布至:/pika_pose
对于双臂远程操作,左右两个Pika Sense设备分别发布至以下独立话题:/pika_pose_l /pika_pose_r
所有这些话题均使用标准的ROS消息类型:geometry_msgs/PoseStamped 由于大多数工业机器人控制器都基于 geometry_msgs/PoseStamped 提供笛卡尔末端执行器控制接口,因此发布的姿态消息通常可以直接使用,或经过最小程度的调整后转换为适用于机器人的特定运动指令。
完整实现示例请参见:
teleop_xarm.py
常见问题
Q1 Pika Sense 目前支持哪些机械臂?
Pika Sense 目前支持以下机械臂的远程操作:
•AgileX PiPER
•AgileX PiPER-X
•AgileX NERO
•xArm Lite 6
开发者或用户可根据机器人的控制接口,实现对额外第三方机械臂的支持。
Q2. 我可以使用Pika Sense与第三方机械臂配合吗?
是。要集成第三方机械臂,机器人应支持笛卡尔末端执行器姿态控制,或提供一个接口,能够将Pika Sense发布的geometry_msgs/PoseStamped消息转换为适用于机器人的运动指令。
Q3. 为什么在开始远程操作前需要双击Pika Sense夹爪?
双击会初始化远程操作的参考姿态。
Pika Sense当前的姿态会被记录为零(参考)姿态,之后的所有位置和方向指令都将相对于该参考坐标系进行计算。
Q4. 双击Pika Sense夹爪时需要注意哪些事项?
在双击之前,请确保Pika Sense的朝向与机器人末端执行器的朝向一致。
这样做可以最小化初始姿态偏差,有助于确保机器人以与Pika Sense相同的方向自然移动。
Q5. 集成第三方机械臂时,应关注哪些参数?
最重要的参数包括:
- 机器人末端执行器的坐标系(TCP)
- Pika夹具中心坐标系与机器人TCP坐标系之间的转换关系
- 机器人控制器所需的姿态或运动指令格式
在大多数情况下,配置文件中的pika_to_arm参数定义了Pika坐标系与机器人TCP之间的转换关系,因此在集成新机械臂时,这是需要调整的关键参数之一。
本文编译自hackster.io





