switch_controller
is a control framework that can change multiple controllers in one ROS node.
boost, eigen, libfranka
- Download and compile this module in src folder in the catkin workspace (+ source workspace).
- rosrun switch_controller switch_controller_node
- You can use GUI for changing configurations: rosrun rqt_reconfigure rqt_reconfigure
- Also, you can use dynamic_reconfigure client to change settings in other nodes.
switch_controller is written based on the torque control of the current 7-axis robot. The implemented controller and the corresponding topics are as follows.
- Common:
/joint_state
: joint information (sensor_msgs::JointState : name, position, velocity, torque)/ee_pose
: End-effector pose (geometry_msgs::PoseStamped)ctrl_mode
(dynamic_reconfigure) : control mode (0:Stop, 1:Idle, 2:JointSpaceImpedance, 3:TaskSpaceImpedance)
- Joint-space impedance control
/q_d
: desired joint angle (std_msgs::Float64MultiArray).joint_k
(dynamic_reconfigure) : joint stiffnessjoint_d
(dynamic_reconfigure) : joint damping
- Task-space impedance control
/ee_pose_d
: desired End-effector pose (geometry_msgs::PoseStamped)task_trans_k
(dynamic_reconfigure) : Task-space translational stiffnesstask_rot_k
(dynamic_reconfigure) : Task-space rotational stiffness
switch_controller is currently based on the Franka Emika Panda. Kinova Gen3 will be added.
TBD
TBD