From 56b046b4c6546b8143c3036b3fb01828592174ad Mon Sep 17 00:00:00 2001 From: Olivier Stasse <ostasse@laas.fr> Date: Mon, 25 Sep 2017 15:26:06 +0200 Subject: [PATCH] Fix wrong type of interface provided if EFFORT mode is switch on. Add proper launch files for effor in simulation. --- .../src/roscontrol-sot-controller.cpp | 10 ++++++++-- .../config/sot_talos_params_gazebo_effort.yaml | 13 +++++++++++++ .../sot_talos_controller_gazebo_effort.launch | 13 +++++++++++++ 3 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 talos_roscontrol_sot_talos/config/sot_talos_params_gazebo_effort.yaml create mode 100644 talos_roscontrol_sot_talos/launch/sot_talos_controller_gazebo_effort.launch diff --git a/talos_roscontrol_sot/src/roscontrol-sot-controller.cpp b/talos_roscontrol_sot/src/roscontrol-sot-controller.cpp index 56b1de4..98d90ea 100644 --- a/talos_roscontrol_sot/src/roscontrol-sot-controller.cpp +++ b/talos_roscontrol_sot/src/roscontrol-sot-controller.cpp @@ -31,7 +31,7 @@ DebugFile << x << std::endl; \ DebugFile.close();} -#define RESERDEBUG4() +#define RESETDEBUG4() #define ODEBUG4FULL(x) #define ODEBUG4(x) @@ -50,6 +50,7 @@ namespace talos_sot_controller simulation_mode_(false), control_mode_(POSITION) { + RESETDEBUG4(); } void RCSotController:: @@ -662,7 +663,12 @@ namespace talos_sot_controller getHardwareInterfaceType() const { //return type_name_; - return talos_hardware_interface::internal::demangledTypeName<talos_hardware_interface::PositionJointInterface>(); + if (control_mode_==POSITION) + return talos_hardware_interface::internal:: + demangledTypeName<talos_hardware_interface::PositionJointInterface>(); + else if (control_mode_==EFFORT) + return talos_hardware_interface::internal:: + demangledTypeName<talos_hardware_interface::EffortJointInterface>(); } diff --git a/talos_roscontrol_sot_talos/config/sot_talos_params_gazebo_effort.yaml b/talos_roscontrol_sot_talos/config/sot_talos_params_gazebo_effort.yaml new file mode 100644 index 0000000..5a9cb80 --- /dev/null +++ b/talos_roscontrol_sot_talos/config/sot_talos_params_gazebo_effort.yaml @@ -0,0 +1,13 @@ +sot_controller: + libname: libsot-pyrene-controller.so + simulation_mode: gazebo + joint_names: [ leg_left_1_joint, leg_left_2_joint, leg_left_3_joint, leg_left_4_joint, leg_left_5_joint, leg_left_6_joint, + leg_right_1_joint, leg_right_2_joint, leg_right_3_joint, leg_right_4_joint, leg_right_5_joint, leg_right_6_joint, + torso_1_joint,torso_2_joint, + arm_left_1_joint, arm_left_2_joint, arm_left_3_joint, arm_left_4_joint, arm_left_5_joint, arm_left_6_joint, arm_left_7_joint, gripper_left_joint, + arm_right_1_joint, arm_right_2_joint, arm_right_3_joint, arm_right_4_joint, arm_right_5_joint, arm_right_6_joint, arm_right_7_joint, gripper_right_joint, + head_1_joint, head_2_joint ] + map_rc_to_sot_device: { motor-angles: motor-angles , + joint-angles: joint-angles, velocities: velocities, + torques: torques, cmd-joints: control, cmd-effort: control } + control_mode: EFFORT diff --git a/talos_roscontrol_sot_talos/launch/sot_talos_controller_gazebo_effort.launch b/talos_roscontrol_sot_talos/launch/sot_talos_controller_gazebo_effort.launch new file mode 100644 index 0000000..9f5f1f5 --- /dev/null +++ b/talos_roscontrol_sot_talos/launch/sot_talos_controller_gazebo_effort.launch @@ -0,0 +1,13 @@ +<launch> + + <!-- Sot Controller configuration --> + <rosparam command="load" file="$(find talos_roscontrol_sot_talos)/config/sot_talos_params_gazebo_effort.yaml"/> + <rosparam command="load" file="$(find talos_roscontrol_sot_talos)/config/sot_talos_controller.yaml" /> + + <!-- Spawn walking controller --> + <node name="sot_controller_spawner" + pkg="talos_controller_manager" type="spawner" output="screen" + args="sot_controller" /> + +</launch> + -- GitLab