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,