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