justagist / franka_ros_interface

A ROS/Python API for controlling and managing the Franka Emika Panda robot (real and simulated).
http://justagist.github.io/franka_ros_interface
Apache License 2.0
167 stars 59 forks source link

catkin build issue #29

Closed Sission closed 3 years ago

Sission commented 3 years ago

HI! I suffered a catkin build issue:

franks_ros : 0.7.1 libfranka:0.7.0 franka_ros_interface: master

It is weird because I found "NE_T_EE" in the msg folder. However, I still got the following error. Could you help?

error: ‘struct franka::RobotState’ has no member named ‘NE_T_EE’; did you mean ‘O_T_EE’? static_assert(sizeof(robotstate.NE_T_EE) == sizeof(robotstate.O_T_EE), ^~~ O_T_EE /home/airlab/catkin_ws/src/franka_ros_interface/franka_interface/src/robot_state_controller.cpp:369:63: error: ‘struct franka::RobotState’ has no member named ‘F_T_NE’; did you mean ‘F_T_EE’? publisher_frankastate.msg_.F_T_NE[i] = robotstate.F_T_NE[i]; ^~ F_T_EE /home/airlab/catkin_ws/src/franka_ros_interface/franka_interface/src/robot_state_controller.cpp:370:64: error: ‘struct franka::RobotState’ has no member named ‘NE_T_EE’; did you mean ‘O_T_EE’? publisher_frankastate.msg_.NE_T_EE[i] = robotstate.NE_T_EE[i]; ^~~ O_T_EE /home/airlab/catkin_ws/src/franka_ros_interface/franka_interface/src/robot_state_controller.cpp: In member function ‘void franka_interface::CustomFrankaStateController::publishTransforms(const ros::Time&)’: /home/airlab/catkin_ws/src/franka_ros_interface/franka_interface/src/robot_state_controller.cpp:474:74: error: ‘struct franka::RobotState’ has no member named ‘F_T_NE’; did you mean ‘F_T_EE’? tf::StampedTransform stamped_transform(convertArrayToTf(robotstate.F_T_NE), time, ^~ F_T_EE /home/airlab/catkin_ws/src/franka_ros_interface/franka_interface/src/robot_state_controller.cpp:480:76: error: ‘struct franka::RobotState’ has no member named ‘NE_T_EE’; did you mean ‘O_T_EE’? stamped_transform = tf::StampedTransform(convertArrayToTf(robotstate.NE_T_EE), time, ^~~ O_T_EE

Sission commented 3 years ago

Hi I also raised this issue in your panda_simulator repository. I am sorry for that. I think it is better to close that one and comment here.

I am certain that i am using franka_ros v0.7.1:

xxxx@Airlab:~/catkin_ws/src/franka_ros$ git branch -a
* (HEAD detached at 0.7.1)
  kinetic-devel
  remotes/origin/HEAD -> origin/kinetic-devel
  remotes/origin/develop
  remotes/origin/disconnect_api_beta
  remotes/origin/kinetic-devel
  remotes/origin/lunar-devel
  remotes/origin/melodic-devel
  remotes/origin/multi_panda_beta
  remotes/origin/noetic-devel

However, it still cannot catkin build... same error..

justagist commented 3 years ago

Try a clean build of your workspace by removing all broken builds. You can do this by removing the 'build' and 'devel' directories in the catkin workspace.

Sission commented 3 years ago

Thank you so much for your help. I understand that. However, I do not think it is the issue. My workspace only have franka_ros, libfranka and your repositories. I tried to remove all your packages and did catkin_make -DCMAKE_BUILD_TYPE=Release -DFranka_DIR:PATH=/path/to/libfranka/build It works fine. I can use $ roslaunch franka_control franka_control.launch robot_ip:=xxxx $ roslaunch panda_moveit_config panda_moveit.launch to control the real robot. However, it can not catkin build after I add your packages..

Sission commented 3 years ago
xxx:~/catkin_ws/src$ ls
franka_panda_description  orocos_kinematics_dynamics  panda_simulator
franka_ros                panda_moveit_config
franka_ros_interface      panda_robot
xxxx:~/catkin_ws/src$ cd franka_ros
xxxx:~/catkin_ws/src/franka_ros$ git branch -a
* (HEAD detached at 0.7.1)
  kinetic-devel
  remotes/origin/HEAD -> origin/kinetic-devel
  remotes/origin/develop
  remotes/origin/disconnect_api_beta
  remotes/origin/kinetic-devel
  remotes/origin/lunar-devel
  remotes/origin/melodic-devel
  remotes/origin/multi_panda_beta
  remotes/origin/noetic-devel
xxxx:~/catkin_ws/src/franka_ros$ cd ../franka_ros_interface/
xxxx:~/catkin_ws/src/franka_ros_interface$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/doc_src
  remotes/origin/gh-pages
  remotes/origin/master
  remotes/origin/v0.6.0-dev
  remotes/origin/v0.7.1-dev
xxxx:~/catkin_ws/src/franka_ros_interface$ cd ../panda_simulator
xxxx:~/catkin_ws/src/panda_simulator$ git branch -a
* melodic-devel
  remotes/origin/HEAD -> origin/melodic-devel
  remotes/origin/kinetic-devel
  remotes/origin/melodic-devel
xxxx:~/catkin_ws/src/panda_simulator$ 

I really appreciate your help. If you still believe it is my workspace problem, I can close this issue and thank you very much for your help.

justagist commented 3 years ago

I just tried a clean build and did not face any issue. I am not sure why it fails for you if you are indeed using the specified versions.

justagist commented 3 years ago

I just noticed that you said you're using v0.7.0 of libfranka! The README explains that you have to use the release version of the library, which is 0.8.0. The missing robot state variables are only introduced from this version.

Sission commented 3 years ago

damn it! That is my bad! Sorry! The FCI says franka_ros can work with libfranka >=0.6.0... I guess I have to use the older version then. My robot doesn't support >=4.0.0 version. Thank you very much!

justagist commented 3 years ago

You are right, the FCI documentation does say that.. I should probably make it explicit that v0.7.1 of this repo requires libfranka 0.8.0. P.S. If you can, I would recommend you update the firmware of the robot to >=4.0.0.

Sission commented 3 years ago

Thanks! I contacted them but they told me that my robot is too old that it can not be upgrade to >= 4.0.0.. SAD

Sission commented 3 years ago

Hi! Just want to let you know that everything works after changing to v0.6.0. I have a question: Does your package provide some nodes can visualize the robot in Gazebo real-time while controlling a real robot?

justagist commented 3 years ago

Not in Gazebo, but the robot can be visualised in RViz realtime.