-
Notifications
You must be signed in to change notification settings - Fork 58
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
panda_gazebo_ros_control_plugin does not provide a working EffortJointInterface #25
Comments
panda_gazebo_ros_control_plugin
does not provide a working EffortJointInterface
This package has a custom control plugin that it uses instead of the default gazebo_ros_control. The plugin uses the custom PandaRobotHWSim interface that is defined for this package instead of DefaultRobotHWSim (gazebo's native hw interface, which provides the
It is possible to define custom controllers in python over the low-level controllers that are defined. But if you wish to define your own low-level controllers directly, then this package may not be suitable for you.
Again, since this package uses a custom control plugin, it is not possible to use the default ros controllers (such as effort_controllers/JointTrajectoryController) together with the custom controllers defined in the plugin. However, I have defined a trajectory server to emulate the behaviour of this controller which is needed for MoveIt, and this works as required when using the API. If you wish to define custom controllers and bypass the utilities provided by the franka_ros_interface package, then you can use the default interface provided by gazebo, which is easier to use. In this case, you can use erdalpekel's |
Thank you for pointing to gazebo_panda. For anyone interested, I prepared an initial version of a custom Gazebo plugin that retains default behavior of the In combination with |
That is fantastic! I'll definitely try it out at some point soon. Thanks for sharing! |
When I launch the simulator using panda_world.launch
panda_gazebo_ros_control_plugin
gets loaded instead of default gazeboros_control
plugin.It seems to provide
EffortJointInterface
for ros_control plugins. Correct me if I'm wrong.Let's say I have a plugin which uses this interface
class TestController : public controller_interface::MultiInterfaceController<hardware_interface::EffortJointInterface>
.As usual I get the joint handles
joint_handles[i] = effort_joint_interface->getHandle(joint_names[i]))
.They can be used for getting the for example the joint position with
joint_handles_[i].getPosition()
, but when I try to set effort withjoint_handles_[i].setCommand(tau[i])
the robot does not move.The same code works on the real robot and in an older revision of a similar project.
For this reason I'm unable to run the simulator with a variety of other ros controllers.
If you load the following yaml to the paramter server:
And start
panda_arm_controller
with:rosrun controller_manager spawner panda_arm_controller
you can use
rqt-joint-trajectory-controller
GUI to move the robot in erdalpekel'spanda_simulation
, but not in this project.The text was updated successfully, but these errors were encountered: