diff --git a/config/controllers.yaml b/config/gen2_6dof.yaml similarity index 70% rename from config/controllers.yaml rename to config/gen2_6dof.yaml index bda1209..734e2ca 100644 --- a/config/controllers.yaml +++ b/config/gen2_6dof.yaml @@ -1,13 +1,39 @@ +# hardware parameters soft_limits: eff: [16,16,16,10,10,10,1.3,1.3] -# whole-arm joint_state publisher +# arm + gripper joint_state publisher joint_state_controller: type: joint_state_controller/JointStateController publish_rate: 50 -# trajectory controller +# whole-arm base velocity controller +velocity_controller: + mode: VELOCITY + mode_handle: joint_mode + type: pr_ros_controllers/JointGroupVelocityController + joints: [j2n6s200_joint_1, j2n6s200_joint_2, j2n6s200_joint_3, + j2n6s200_joint_4, j2n6s200_joint_5, j2n6s200_joint_6] + +# whole-arm base position controller +position_controller: + mode: POSITION + mode_handle: joint_mode + type: pr_ros_controllers/JointGroupPositionController + joints: [j2n6s200_joint_1, j2n6s200_joint_2, j2n6s200_joint_3, + j2n6s200_joint_4, j2n6s200_joint_5, j2n6s200_joint_6] + +# whole-arm base effort controller +effort_controller: + mode: EFFORT + mode_handle: joint_mode + type: pr_ros_controllers/JointGroupEffortController + joints: [j2n6s200_joint_1, j2n6s200_joint_2, j2n6s200_joint_3, + j2n6s200_joint_4, j2n6s200_joint_5, j2n6s200_joint_6] + +# whole-arm base trajectory controller trajectory_controller: + mode: TRAJECTORY type: velocity_controllers/JointTrajectoryController joints: [j2n6s200_joint_1, j2n6s200_joint_2, j2n6s200_joint_3, j2n6s200_joint_4, j2n6s200_joint_5, j2n6s200_joint_6] @@ -39,15 +65,22 @@ trajectory_controller: j2n6s200_joint_5: {p: 3, d: 0, i: 0, i_clamp: 1} j2n6s200_joint_6: {p: 3, d: 0, i: 0, i_clamp: 1} -# Optional controller that might be useful for testing. -# Should do the same thing as trajectory_controller, but this is -# the lab's rewd_controllers implementation -rewd_trajectory_controller: - type: rewd_controllers/JointTrajectoryController +# whole-arm base trajectory controller +move_until_touch_topic_controller: + mode: TRAJECTORY + type: rewd_controllers/MoveUntilTouchTopicController + # Forque Sensor + forcetorque_wrench_name: /forque/forqueSensor + forcetorque_tare_name: /forque/bias_controller/trigger + # FingerVision + # forcetorque_wrench_name: /fingervision/fv_3_l/wrench + # forcetorque_tare_name: /fingervision/fingerVisionTaring + sensor_force_limit: 50 + sensor_torque_limit: 5 joints: [j2n6s200_joint_1, j2n6s200_joint_2, j2n6s200_joint_3, j2n6s200_joint_4, j2n6s200_joint_5, j2n6s200_joint_6] + control_type: velocity constraints: - stopped_velocity_tolerance: 1.0 j2n6s200_joint_1: goal: 0.02 trajectory: 0.05 @@ -73,31 +106,17 @@ rewd_trajectory_controller: j2n6s200_joint_4: {p: 3, d: 0, i: 0, i_clamp: 1} j2n6s200_joint_5: {p: 3, d: 0, i: 0, i_clamp: 1} j2n6s200_joint_6: {p: 3, d: 0, i: 0, i_clamp: 1} - control_type: velocity - -j2n6s200_hand_controller: - type: velocity_controllers/JointTrajectoryController - joints: [j2n6s200_joint_finger_1, j2n6s200_joint_finger_2] - constraints: - stopped_velocity_tolerance: 1.0 - gains: # Required because we're controlling a velocity interface - j2n6s200_joint_finger_1: {p: 1, d: 0, i: 0, i_clamp: 1} - j2n6s200_joint_finger_2: {p: 1, d: 0, i: 0, i_clamp: 1} -move_until_touch_topic_controller: - type: rewd_controllers/MoveUntilTouchTopicController - # Forque Sensor - forcetorque_wrench_name: /forque/forqueSensor - forcetorque_tare_name: /forque/bias_controller/trigger - # FingerVision - # forcetorque_wrench_name: /fingervision/fv_3_l/wrench - # forcetorque_tare_name: /fingervision/fingerVisionTaring - sensor_force_limit: 50 - sensor_torque_limit: 5 +# Optional controller that might be useful for testing. +# Should do the same thing as trajectory_controller, but this is +# the lab's rewd_controllers implementation +rewd_trajectory_controller: + mode: TRAJECTORY + type: rewd_controllers/JointTrajectoryController joints: [j2n6s200_joint_1, j2n6s200_joint_2, j2n6s200_joint_3, j2n6s200_joint_4, j2n6s200_joint_5, j2n6s200_joint_6] - control_type: velocity constraints: + stopped_velocity_tolerance: 1.0 j2n6s200_joint_1: goal: 0.02 trajectory: 0.05 @@ -123,5 +142,36 @@ move_until_touch_topic_controller: j2n6s200_joint_4: {p: 3, d: 0, i: 0, i_clamp: 1} j2n6s200_joint_5: {p: 3, d: 0, i: 0, i_clamp: 1} j2n6s200_joint_6: {p: 3, d: 0, i: 0, i_clamp: 1} + control_type: velocity + +############################################## + +# gripper base velocity controller +hand_velocity_controller: + mode: VELOCITY + type: pr_ros_controllers/JointGroupVelocityController + joints: [j2n6s200_joint_finger_1, j2n6s200_joint_finger_2] + +# gripper base position controller +hand_position_controller: + mode: POSITION + type: pr_ros_controllers/JointGroupPositionController + joints: [j2n6s200_joint_finger_1, j2n6s200_joint_finger_2] + +# gripper base effort controller +hand_effort_controller: + mode: EFFORT + type: pr_ros_controllers/JointGroupEffortController + joints: [j2n6s200_joint_finger_1, j2n6s200_joint_finger_2] + +hand_controller: + mode: TRAJECTORY + type: velocity_controllers/JointTrajectoryController + joints: [j2n6s200_joint_finger_1, j2n6s200_joint_finger_2] + constraints: + stopped_velocity_tolerance: 1.0 + gains: # Required because we're controlling a velocity interface + j2n6s200_joint_finger_1: {p: 1, d: 0, i: 0, i_clamp: 1} + j2n6s200_joint_finger_2: {p: 1, d: 0, i: 0, i_clamp: 1} diff --git a/include/libada/Ada.hpp b/include/libada/Ada.hpp index 5043bbc..7072588 100644 --- a/include/libada/Ada.hpp +++ b/include/libada/Ada.hpp @@ -404,7 +404,7 @@ class Ada final : public aikido::robot::Robot // Names of the trajectory executors std::string mArmTrajectoryExecutorName; - const std::string mHandTrajectoryExecutorName = "j2n6s200_hand_controller"; + const std::string mHandTrajectoryExecutorName = "hand_controller"; // Collision resolution. double mCollisionResolution; diff --git a/launch/default.launch b/launch/default.launch index fe90f77..87dbc34 100644 --- a/launch/default.launch +++ b/launch/default.launch @@ -1,31 +1,35 @@ - - + + - + + + + output="screen" + if="$(eval arg('version') == 2)" /> - + - @@ -34,13 +38,13 @@ args="0 0 0 0 0 0 1 map world 10"/> - + - + @@ -48,11 +52,20 @@ + + + + + args="--demo-type $(arg detector)" output="screen" cwd="node" unless="$(eval arg('detector') == 'false' )"/> + output="screen" cwd="node" if="$(eval arg('detector') == 'false' )"/> diff --git a/src/AdaHand.cpp b/src/AdaHand.cpp index f885011..5d3d014 100644 --- a/src/AdaHand.cpp +++ b/src/AdaHand.cpp @@ -419,7 +419,7 @@ AdaHand::createTrajectoryExecutor(const dart::dynamics::SkeletonPtr& robot) else { // TODO (k):need to check trajectory_controller exists? - std::string serverName = "j2n6s200_hand_controller/follow_joint_trajectory"; + std::string serverName = "hand_controller/follow_joint_trajectory"; return std::make_shared( *mNode, serverName,