-
Notifications
You must be signed in to change notification settings - Fork 16
Basic Usage
Note: If using with a real physical Franka Emika Panda robot, the franka_ros_interface 'driver' should be running in the 'master' environment in one terminal (See Franka ROS Interface instructions for details). Then, any code which uses PandaRobot or Franka ROS Interface should be run in 'master' or 'remote' environment (as appropriate). When using with Panda Simulator, this package can be used directly without the need for any specific environment as long as this package, the simulator package, and Franka ROS Interface packages are in the same ROS workspace, and correctly sourced.
>> python # or `python3` # start interactive python session; make sure the correct ros workspace is sourced.
>> import rospy
>> from panda_robot import PandaArm
>> rospy.init_node("panda_demo") # initialise ros node
>> r = PandaArm() # create PandaArm instance
>> r.move_to_neutral() # moves robot to neutral pose; uses moveit if available, else JointTrajectory action client
>> pos,ori = r.ee_pose() # get current end-effector pose (3d position and orientation quaternion of end-effector frame in base frame)
>> r.get_gripper().home_joints() # homes gripper joints
>> r.get_gripper().open() # open gripper
>> r.move_to_joint_position([-8.48556818e-02, -8.88127666e-02, -6.59622769e-01, -1.57569726e+00, -4.82374882e-04, 2.15975946e+00, 4.36766917e-01]) # move robot to the specified pose
>> r.move_to_cartesian_pose(pos,ori) # move the robot end-effector to pose specified by 'pos','ori'See script (test/test_pos_controllers.py) to see how the robot can be controlled using low-level joint controllers.
See script (scripts/env.py), and run it interactively (python -i env.py) for testing other available functionalities.
See other files in the tests and demos directories for more usage examples.
Learn about all available functionalities in the Documentation.