matthias-mayr / Cartesian-Impedance-Controller

A C++ implementation of Cartesian impedance control for torque-controlled manipulators with ROS bindings.
https://matthias-mayr.github.io/Cartesian-Impedance-Controller/
BSD 3-Clause "New" or "Revised" License
212 stars 32 forks source link

Run in the Gazebo and real panda? #19

Closed mitsui29 closed 6 months ago

mitsui29 commented 6 months ago

Hey, Thanks for your nice project! I wanna try my own low level controller(cartesian impedance controller and so on) in c++ as the controller plugin just like u have done in this project, but for gazebo simulation. This kind of try can let me familiarize with franka robot. I read the doc Franka Control Interface. The reason for opening this issue is that the used interfaces in Franka Gazebo(Franka_HwSim) and real Franka(Franka_Hw) are not the same. Did you run the simulation on the gazebo? Did you run the controller on the real panda? If i want to run my controller on the real panda, should i also change my code for the real panda because of the Interface(Franka_Hw), even though i can run the controller for simulation?I found that you don't use the Franka_Hw in your controller. It's not the same way as the ones I've seen. I am very confused about the kind of issues right now. I'm looking forward to some of the experiences you can share. Thanks a lot for your time! !

matthias-mayr commented 6 months ago

The reason for opening this issue is that the used interfaces in Franka Gazebo(Franka_HwSim) and real Franka(Franka_Hw) are not the same. Did you run the simulation on the gazebo? Did you run the controller on the real panda?

We run the Panda with this package both in Gazebo as well as in my RL software stack SkiREIL directly with DART. We also ran it on the real Panda for some projects.

If i want to run my controller on the real panda, should i also change my code for the real panda because of the Interface(Franka_Hw), even though i can run the controller for simulation

We used the standard interfaces. I would need to look up which ones directly. In none of these cases we needed to change any code. However, this project only needs the information that is exposed with the normal ros_control interface.

One thing you can do is to set up ìiwa_ros with this controller project. iiwa_ros does not use any special interfaces and it would probably be easier to based on that setup.

matthias-mayr commented 6 months ago

I assume this is resolved. If there are other specific question, feel free to reopen.