A Python interface package built over the franka_ros_interface package, combining its different classes to provide a unified interface for controlling and handling the Franka Emika Panda robot. Also works directly with panda_simulator.
The package provides an extensive and unified API for controlling and managing the Franka Emika Robot (and gripper) using pre-defined low-level controllers (position, velocity, torque, joint impedance), MoveIt planners, and JointTrajectory action service.
- Provides simple-intuitive interface classes with methods to directly and easily control the robot using low-level controllers, MoveIt planners, or Trajectory action client.
- Get real-time robot state, joint state, controller state, kinematics, dynamics, etc.
- Provides Kinematics computation (using KDL library).
- Integrated with gripper control.
- Manage frames transformation and controller switching using simple utility functions.
- Works directly on simulated robot when using panda_simulator providing direct sim-to-real and real-to-sim code transfer.
DOCUMENTATION: https://justagist.github.io/panda_robot/
Watch video here
Watch video here
- franka_ros_interface package
Clone package to src folder of your catkin workspace. In catkin root run:
catkin build
source devel/setup.bashExample: Testing interface in terminal
>> python # 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
>> 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 poseSee script (scripts/controller_test.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. Other available functionalities: https://justagist.github.io/panda_robot/
Copyright (c) 2019-2020, Saif Sidhik