WidowX-250s(6DOF)机械臂(Aloha主臂)教程-5.Python Demo演示(ROS 1)

注意:如果自己的夹持器使用了Aloha2代的夹持器(夹手),此部分提供的代码示例的夹手部分的代码可能无法直接使用,因为夹手的量程和舵盘的安装方式发生了变化,代码里面的参数无法匹配,请谨慎使用。

首先,打开终端并运行以下命令。

roslaunch interbotix_xsarm_control xsarm_control.launch robot_model:=wx250s

然后,在另一个终端中,导航到该目录并输入...

cd ~/interbotix_ws/src/interbotix_ros_manipulators/interbotix_ros_xsarms/interbotix_xsarm_control/demos/python_ros_api

注意:如果没有该文件,则需手动创建:

cd ~/interbotix_ws/src/interbotix_ros_manipulators/interbotix_ros_xsarms/interbotix_xsarm_control/

mkdir -p demos/python_ros_api

cd demos/python_ros_api

gedit bartender.py

复制bartender代码,bartender.py代码如下

bartender.py代码如下:

from interbotix_xs_modules.arm import InterbotixManipulatorXS

import numpy as np


# This script makes the end-effector perform pick, pour, and place tasks

#

# To get started, open a terminal and type 'roslaunch interbotix_xsarm_control xsarm_control.launch robot_model:=wx250s'

# Then change to this directory and type 'python bartender.py  # python3 bartender.py if using ROS Noetic'


def main():

    bot = InterbotixManipulatorXS("wx250s", "arm", "gripper")

    bot.arm.set_ee_pose_components(x=0.3, z=0.2)

    bot.arm.set_single_joint_position("waist", np.pi/2.0)

    bot.gripper.open()

    bot.arm.set_ee_cartesian_trajectory(x=0.1, z=-0.16)

    bot.gripper.close()

    bot.arm.set_ee_cartesian_trajectory(x=-0.1, z=0.16)

    bot.arm.set_single_joint_position("waist", -np.pi/2.0)

    bot.arm.set_ee_cartesian_trajectory(pitch=1.5)

    bot.arm.set_ee_cartesian_trajectory(pitch=-1.5)

    bot.arm.set_single_joint_position("waist", np.pi/2.0)

    bot.arm.set_ee_cartesian_trajectory(x=0.1, z=-0.16)

    bot.gripper.open()

    bot.arm.set_ee_cartesian_trajectory(x=-0.1, z=0.16)

    bot.arm.go_to_home_pose()

    bot.arm.go_to_sleep_pose()


if __name__=='__main__':

    main()



python3 bartender.py

如果您修改bartender.pybartender_wx250s.py,则执行指令如下:

python bartender_wx250s.py

您应该观察机器人拿起一个虚拟瓶子(从虚拟酒吧后面),旋转使末端执行器面向相反方向,倒虚拟饮料(在虚拟酒吧上),然后将“瓶子”放下,并进入其睡眠姿势。

其他脚本以类似的方式工作,但您必须确保将文件中的机器人名称更改为您拥有的手臂。如果使用较小的手臂模型(如 PincherX 100),您可能还必须调整命令姿势/轨迹,因为其中一些可能在物理上无法实现。为了让事情变得更简单,每个脚本还概述了让机器人移动所需的命令!

xsarm_demos_frames.png