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