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.py为bartender_wx250s.py,则执行指令如下:
python bartender_wx250s.py
您应该观察机器人拿起一个虚拟瓶子(从虚拟酒吧后面),旋转使末端执行器面向相反方向,倒虚拟饮料(在虚拟酒吧上),然后将“瓶子”放下,并进入其睡眠姿势。
其他脚本以类似的方式工作,但您必须确保将文件中的机器人名称更改为您拥有的手臂。如果使用较小的手臂模型(如 PincherX 100),您可能还必须调整命令姿势/轨迹,因为其中一些可能在物理上无法实现。为了让事情变得更简单,每个脚本还概述了让机器人移动所需的命令!