diff --git a/CHANGELOG.md b/CHANGELOG.md index 2406a786ebe140f929bfb335abd9a8379700a766..8a91451e5c29e8172f574c4be4be8d29311dd15f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,8 +4,15 @@ Requires `libfranka` >= 0.6.0 - * Fixed joint velocity and acceleration limits for MoveIt - * Fixed limits in `franka_hw` + * **BREAKING** Updated joint limits in URDF + * **BREAKING** Fixed velocity, acceleration and jerk limits in `franka_hw` + * Allow to configure rate limiting, filtering and internal controller in `franka_control_node` + * **BREAKING** Enabled limiting and low-pass filtering by default (`franka_control_node.yaml`) + * Publish desired joint state in `/joint_state_desired` + * Removed `effort_joint_trajectory_controller` from `default_controllers.yaml` + * **BREAKING** Fixes for MoveIt: + * Fixed joint velocity and acceleration limits in `joint_limits.yaml` + * Use desired joint state for move group ## 0.5.0 - 2018-06-28 diff --git a/franka_control/config/default_controllers.yaml b/franka_control/config/default_controllers.yaml index 533a31c51359428a4a14f797bd2db5e52640befd..28b48056c767ed1cb3d69afab4abf38a25730b0c 100644 --- a/franka_control/config/default_controllers.yaml +++ b/franka_control/config/default_controllers.yaml @@ -25,41 +25,6 @@ position_joint_trajectory_controller: panda_joint7: goal: 0.05 -effort_joint_trajectory_controller: - type: effort_controllers/JointTrajectoryController - joints: - - panda_joint1 - - panda_joint2 - - panda_joint3 - - panda_joint4 - - panda_joint5 - - panda_joint6 - - panda_joint7 - constraints: - goal_time: 0.5 - panda_joint1: - goal: 0.05 - panda_joint2: - goal: 0.05 - panda_joint3: - goal: 0.05 - panda_joint4: - goal: 0.05 - panda_joint5: - goal: 0.05 - panda_joint6: - goal: 0.05 - panda_joint7: - goal: 0.05 - gains: - panda_joint1: {p: 100, d: 10, i: 0, i_clamp: 1} - panda_joint2: {p: 100, d: 10, i: 0, i_clamp: 1} - panda_joint3: {p: 100, d: 10, i: 0, i_clamp: 1} - panda_joint4: {p: 100, d: 10, i: 0, i_clamp: 1} - panda_joint5: {p: 100, d: 10, i: 0, i_clamp: 1} - panda_joint6: {p: 100, d: 10, i: 0, i_clamp: 1} - panda_joint7: {p: 100, d: 10, i: 0, i_clamp: 1} - franka_state_controller: type: franka_control/FrankaStateController publish_rate: 30 # [Hz] diff --git a/franka_example_controllers/launch/move_to_start.launch b/franka_example_controllers/launch/move_to_start.launch index a33d162cb68a1fd4b72482bc2799358cb1ad7415..d27edf44a0803fad7310c5d7046007e66413d831 100644 --- a/franka_example_controllers/launch/move_to_start.launch +++ b/franka_example_controllers/launch/move_to_start.launch @@ -5,7 +5,6 @@ <include file="$(find franka_control)/launch/franka_control.launch"> <arg name="robot_ip" value="$(arg robot_ip)" /> <arg name="load_gripper" value="false" /> - <arg name="publish_desired_values" value="true" /> </include> <include file="$(find panda_moveit_config)/launch/panda_moveit.launch"> <arg name="load_gripper" value="false" /> diff --git a/franka_hw/src/franka_hw.cpp b/franka_hw/src/franka_hw.cpp index 965694ff147bba5165b6386f7fe6e9aa98696072..5baa80590c98741e9a1c93ddc8f62f598af5b554 100644 --- a/franka_hw/src/franka_hw.cpp +++ b/franka_hw/src/franka_hw.cpp @@ -29,7 +29,7 @@ FrankaHW::FrankaHW(const std::array<std::string, 7>& joint_names, pose_cartesian_command_( {1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0}), velocity_cartesian_command_({0.0, 0.0, 0.0, 0.0, 0.0, 0.0}) { - for (size_t i = 0; i < joint_names_.size(); ++i) { + for (size_t i = 0; i < joint_names_.size(); i++) { hardware_interface::JointStateHandle joint_handle_q_d( joint_names_[i], &robot_state_.q_d[i], &robot_state_.dq_d[i], &robot_state_.tau_J[i]); @@ -59,8 +59,8 @@ FrankaHW::FrankaHW(const std::array<std::string, 7>& joint_names, joint_limits_interface::SoftJointLimits soft_limits; joint_limits_interface::JointLimits joint_limits; - for (auto joint_name : joint_names_) { - int joint_index(std::stoi(joint_name.substr(joint_name.size() - 1)) - 1); + for (size_t i = 0; i < joint_names_.size(); i++) { + const std::string& joint_name = joint_names_[i]; auto urdf_joint = urdf_model.getJoint(joint_name); if (!urdf_joint) { ROS_ERROR_STREAM("FrankaHW: Could not get joint " << joint_name << " from urdf"); @@ -74,9 +74,9 @@ FrankaHW::FrankaHW(const std::array<std::string, 7>& joint_names, if (joint_limits_interface::getSoftJointLimits(urdf_joint, soft_limits)) { if (joint_limits_interface::getJointLimits(urdf_joint, joint_limits)) { - joint_limits.max_acceleration = franka::kMaxJointAcceleration[joint_index]; + joint_limits.max_acceleration = franka::kMaxJointAcceleration[i]; joint_limits.has_acceleration_limits = true; - joint_limits.max_jerk = franka::kMaxJointJerk[joint_index]; + joint_limits.max_jerk = franka::kMaxJointJerk[i]; joint_limits.has_jerk_limits = true; joint_limits_interface::PositionJointSoftLimitsHandle position_limit_handle( position_joint_interface_.getHandle(joint_name), joint_limits, soft_limits); diff --git a/panda_moveit_config/launch/panda_control_moveit_rviz.launch b/panda_moveit_config/launch/panda_control_moveit_rviz.launch index 8d91dcbea6ea58c79e53ad8688033d8e37a98ec8..7c1d0bb247432f0530575181d5ec29f22795366e 100644 --- a/panda_moveit_config/launch/panda_control_moveit_rviz.launch +++ b/panda_moveit_config/launch/panda_control_moveit_rviz.launch @@ -6,7 +6,6 @@ <include file="$(find franka_control)/launch/franka_control.launch" > <arg name="robot_ip" value="$(arg robot_ip)" /> <arg name="load_gripper" value="$(arg load_gripper)" /> - <arg name="publish_desired_values" value="true" /> </include> <include if="$(arg load_gripper)" file="$(find franka_gripper)/launch/franka_gripper.launch" >