ViperX-300s(6DOF)机械臂(Aloha从臂)教程-9.Python Demo演示(ROS2)

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

ros2 launch interbotix_xsarm_control xsarm_control.launch.py robot_model:=vx300s

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

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

新建bartender_vx300s.py

vim  bartender_vx300s.py

编辑如下代码:

#!/usr/bin/env python3
 
import sys
from interbotix_xs_modules.xs_robot.arm import InterbotixManipulatorXS
import numpy as np
 
def main():
    bot = InterbotixManipulatorXS(
        robot_model='vx300s',
        group_name='arm',
        gripper_name='gripper'
    )
 
    if (bot.arm.group_info.num_joints < 5):
        bot.core.get_logger().fatal('This demo requires the robot to have at least 5 joints!')
        bot.shutdown()
        sys.exit()
 
    bot.arm.set_ee_pose_components(x=0.3, z=0.2)
    bot.arm.set_single_joint_position(joint_name='waist', position=np.pi/2.0)
    #bot.gripper.release()
    #bot.arm.set_ee_cartesian_trajectory(x=0.1, z=-0.16)
    #bot.gripper.grasp()
    #bot.arm.set_ee_cartesian_trajectory(x=-0.1, z=0.16)
    bot.arm.set_single_joint_position(joint_name='waist', position=-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(joint_name='waist', position=np.pi/2.0)
    #bot.arm.set_ee_cartesian_trajectory(x=0.1, z=-0.16)
    #bot.gripper.release()
    #bot.arm.set_ee_cartesian_trajectory(x=-0.1, z=0.16)
    bot.arm.go_to_home_pose()
    bot.arm.go_to_sleep_pose()
 
    bot.shutdown()
 
 
if __name__ == '__main__':
    main()

python3 bartender_vx300s.py

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

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

 

注意:如果您想首先在模拟手臂上测试您的代码,请确保将use_sim arg 设置为true,如下所示:

roslaunch interbotix_xsarm_control xsarm_control.launch robot_model:=vx300s use_sim:=true

#ROS2

ros2 launch interbotix_xsarm_control xsarm_control.launch.py robot_model:=vx300s use_sim:=true