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

gazebo seg fault error #3

Closed kaviyachandran closed 1 year ago

kaviyachandran commented 1 year ago

Hi Matthias, Thank you for the controller. I am trying to use it with IIWA. when I launch gazebo with the impedance controller with the command 'roslaunch iiwa_gazebo iiwa_gazebo.launch controller:=CartesianImpedance_trajectory_controller', I get seg fault and the process dies. I am using ros-noetic.

error_controller

Do you have any inputs on what might be causing the issue?

Thank you

matthias-mayr commented 1 year ago

Great to to see the interest.

Assuming that you use iiwa_ros, you most likely are facing the same issue as @anubhav-dogra in #1. Right now iiwa_ros has an inconsistent build configuration.

The whole setup needs to be built without any SIMD instructions. That also includes the iiwa_ros dependencies. If you've followed the latest build instructions, as a last step these changes in needs to be applied.. If you use the real robot with it, make sure to build the FRI lib without SIMD as well. You can read a bit more in the other issue.

Let me know if that fixed the issue.

anubhav-dogra commented 1 year ago

Try using the commands to upgrade your system first with sudo apt update and sudo apt upgrade which removed the gzserver error in my case. I'm using ROS Noetic just to clarify. This is followed by instructions or steps mentioned by @matthias-mayr in the coment above for the perfect gazebo simulation using iiwa_ros and CartesianImpedance_trajectory_controller.

kaviyachandran commented 1 year ago

Hi Matthias,

Thanks for your reply. I want the controller for a different robot so I am working on adapting it to my requirements. I will cite your work for sure :).

I was building RBDyn and other dependencies with -DCMAKE_CXX_FLAGS="-march=native -faligned-new" . I was following iiwa_ros repo. When I rebuilt without these flags, the error is gone. I am closing this issue.

matthias-mayr commented 1 year ago

Great to hear. Do you have something else than a Panda or iiwa? In principal it should work with any torque-controlled robot, but I am just aware of those two.

I was building RBDyn and other dependencies with -DCMAKE_CXX_FLAGS="-march=native -faligned-new" . I was following iiwa_ros repo. When I rebuilt without these flags, the error is gone. I am closing this issue.

Yes, that caused us a lot of trouble as well. It's also not really apparent why it crashes until you know.

kaviyachandran commented 1 year ago

I am working on an end effector impedance controller for PR2

matthias-mayr commented 1 year ago

hm. Does the PR2 have a joint torque interface? If it is position or velocity-controlled, you'd probably want to use this repo: https://github.com/fzi-forschungszentrum-informatik/cartesian_controllers

kaviyachandran commented 1 year ago

Thank you Mathias. I will check it out :)

matthias-mayr commented 1 year ago

@kaviyachandran It turns out that the PR2 has a torque control interface. Pretty cool robot :-) The documentation says

Controller manager has an update step which is called by the realtime loop at 1khz which receives measured motor torques and positions and sends desired motor torques for the next cycle.

Then you should actually be able to use this repo. I also saw this project, but it's been untouched for 8 years now.