Open
Description
Is your feature request related to a problem? Please describe.
The franka_ros package is currently included as a submodule due to pending features and fixes awaiting integration into the upstream repository. To maintain compatibility with our specific use case, we rely on a custom branch located here. This branch contains several pull requests (PRs) essential for seamless operation but has yet to be merged into the upstream [develop] branch (https://github.com/frankaemika/franka_ros/tree/develop). Below, we'd like to list the required PRs and some optional enhancements.
Required Pull Requests
- feat(franka_gazebo): implement
set_franka_model_configuration
service frankaemika/franka_ros#226: Needed to allow users to set the robot joint positions. - feat(franka_gazebo): add physics engine launch argument frankaemika/franka_ros#211: Needed to allow users to use the
put_robot_in_world
launch file to start Gazebo using the dart physics engine. This engine is preferred when doing effort control since it is more stable than the ODE physics engine (see franka_ros/issues/160 for more information). - Fix gazebo joint collision check bug frankaemika/franka_ros#227: Required to address inaccuracies in collision checking within the upstream repository (Issue #363).
- fix(franka_gazebo): fix
tau_ext
internal controller bug frankaemika/franka_ros#228: Necessary to correct the external force calculation, which currently contains errors in the upstream (Issue #364). - fix(franka_gazebo): fix 'set_franka_model_configuration' srv frankaemika/franka_ros#380: Needed due to a bug that was accidentally introduced in feat(franka_gazebo): implement
set_franka_model_configuration
service frankaemika/franka_ros#226.
Nice to Have Enhancements
- chore: remove cmake minium version deprecation warning frankaemika/franka_ros#354: Resolves the CMake minimum version warning.
- refactor(franka_gazebo): remove FrankaHWSim robot namespace warning frankaemika/franka_ros#366: Eliminates a redundant robot namespace warning.
- Some improvements to efficiency frankaemika/franka_ros#290: Enhances performance in both
franka_gazebo
andfranka_control
. - Fix various issues in TriggerRate frankaemika/franka_ros#292: Ensures a fixed simulation rate.
- Remove enforcement of C++14 standard frankaemika/franka_ros#370: Resolves a version incompatibility issue specific to Ubuntu 22.04.
Some upstream problems that still exist and negatively affect this project
- [bug] Gazebo gripper control is broken frankaemika/franka_ros#172: The simulated gripper is implemented suboptimal in franka_ros.
- Gripper PID gains need improvement for the
/franka_gripper/gripper_action/goal
Action to set the gripper width accurately when the gripper is vertical (see this and this comment). - Additionally, there is a need to enhance the functionality of the
/franka_gripper/gripper_action/goal
action. The gripperAction currently has a limitation—it can only grasp objects when the gripper width is explicitly specified. On the other hand, the grasp action can grasp things but cannot set a desired gripper width. In reinforcement learning, it would be advantageous for the robot to autonomously learn and set the gripper width while grasping objects, even without prior knowledge of the object size.
- Gripper PID gains need improvement for the
- [bug] Gazebo simulation effort/velocity control gravity compensation contains drift frankaemika/franka_ros#233: The gravity compensation for the simulated panda in franka_ros is dysfunctional, leading to unintended drift when utilizing effort controllers with an attached hand.
Proposed Solution
Once all the mentioned PRs have been successfully merged into the upstream repository, we can use the official binary package for franka_ros
.