nbfigueroa / franka_interactive_controllers

Control interface built on top of franka_ros that allows controlling the franka robot arm in several joint and Cartesian space impedance control schemes for interactive, safe and reactive (mostly DS-based) motion planning and learning.
MIT License
55 stars 15 forks source link

Undocumented and private dependency: mit_museum_inspection_demo #3

Open JKBehrens opened 1 year ago

JKBehrens commented 1 year ago

Hi @nbfigueroa

thanks for providing this code. I am trying it on my Panda and came across an issue that (find mit_museum_inspection_demo)/config/museum_passiveDS_impedance_control_additional_params.yaml can't be found. I suspect that some other config file might do the job as well for the general public.

Which config yaml should be loaded in franka_interactive_bringup.launch?

Thank you and greetings from Prague! Jan

The complete error:

roslaunch franka_interactive_controllers franka_interactive_bringup.launch 
... logging to /home/ros/.ros/log/22846d08-ca61-11ed-b3f3-65c8103e6fd8/roslaunch-pandart-34793.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

Resource not found: The following package was not found in <arg name="params_yaml_file" value="$(find mit_museum_inspection_demo)/config/museum_passiveDS_impedance_control_additional_params.yaml"/>: mit_museum_inspection_demo
ROS path [0]=/opt/ros/noetic/share/ros
ROS path [1]=/home/ros/panda_ctrl_ws/src/boost_sml
ROS path [2]=/home/ros/panda_ctrl_ws/src/easy_kinesthetic_recording
ROS path [3]=/home/ros/panda_ctrl_ws/src/franka_ros/franka_description
ROS path [4]=/home/ros/panda_ctrl_ws/src/franka_ros/franka_gripper
ROS path [5]=/home/ros/panda_ctrl_ws/src/franka_ros/franka_msgs
ROS path [6]=/home/ros/panda_ctrl_ws/src/franka_ros/franka_hw
ROS path [7]=/home/ros/panda_ctrl_ws/src/franka_ros/franka_control
ROS path [8]=/home/ros/panda_ctrl_ws/src/franka_ros/franka_example_controllers
ROS path [9]=/home/ros/panda_ctrl_ws/src/franka_ros/franka_gazebo
ROS path [10]=/home/ros/panda_ctrl_ws/src/franka_interactive_controllers
ROS path [11]=/home/ros/panda_ctrl_ws/src/franka_ros/franka_ros
ROS path [12]=/home/ros/panda_ctrl_ws/src/franka_ros/franka_visualization
ROS path [13]=/home/ros/panda_ctrl_ws/src/panda_moveit_config
ROS path [14]=/home/ros/panda_ctrl_ws/src/record_ros
ROS path [15]=/opt/ros/noetic/share
The traceback for the exception was written to the log file
JKBehrens commented 1 year ago

I guess it should be: <arg name="params_yaml_file" value="$(find franka_interactive_controllers)/config/passiveDS_impedance_control_additional_params.yaml"/>

ClangWU commented 1 year ago

Hi, Behrens! Have you solved this problem? If so, how did you resolve it? Thank you.

JKBehrens commented 1 year ago

@ClangWU I run the robot like this. Not sure if there were more things to fix.

<?xml version="1.0" ?>
<launch>
  <arg name="robot_ip"            default="172.16.0.2"/>
  <arg name="load_gripper"        default="true" />
  <arg name="use_gripper_gui"     default="true" />
  <arg name="controller"          default="cartesian_pose_impedance"   doc="Which controller should be started? (One of {cartesian_pose, cartesian_twist, passiveDS}_impedance_controller )" />
  <arg name="bringup_rviz"        default="true" />
  <arg name="load_franka_control" default="true" />

  <!-- Bringup franka_interactive_bringup.launch and gravity compensation controller!-->
  <group if="$(arg load_franka_control)">
    <!-- Loads robot control interface -->
    <include file="$(find franka_interactive_controllers)/launch/franka_control_interactive.launch" >
      <arg name="robot_ip" value="$(arg robot_ip)" />
      <arg name="load_gripper" value="$(arg load_gripper)" />
    </include>

    <!-- Start only if cartesian_pose_impedance_controller is set in "controller"-->
    <include file="$(find franka_interactive_controllers)/launch/cartesian_pose_impedance_controller.launch" 
      if="$(eval arg('controller') == 'cartesian_pose_impedance')">
    </include>

    <!-- Start only if cartesian_twist_impedance_controller is set in "controller"-->
    <include file="$(find franka_interactive_controllers)/launch/cartesian_twist_impedance_controller.launch" if="$(eval arg('controller') == 'cartesian_twist_impedance')">
    </include>

    <!-- Start only if passive_ds_impedance_controller is set in "controller"-->
    <include file="$(find franka_interactive_controllers)/launch/passiveDS_impedance_controller.launch" if="$(eval arg('controller') == 'passiveDS_impedance')">
      <arg name="params_yaml_file" value="$(find franka_interactive_controllers)/config/passiveDS_impedance_control_additional_params.yaml"/>
    </include>
  </group>

  <group if="$(arg bringup_rviz)">
    <!-- Convert franka state of EE to Geometry Message PoseStamped!! -->  
    <node name="franka_to_geometry_messages" pkg="franka_interactive_controllers" type="franka_to_geometry_messages.py" respawn="false" output="screen"/>

    <!-- Bring up rqt_reconfigure to modify values -->
    <node name="rqt_reconfigure" pkg="rqt_reconfigure" type="rqt_reconfigure" required="false" />

    <!-- Bring up gripper GUI to control gripper from code -->  
    <node if="$(arg use_gripper_gui)" name="franka_gui_gripper_run" pkg="franka_interactive_controllers" type="franka_gui_gripper_run.py" respawn="false" output="screen"/>

    <!-- Bring up rviz configuration -->
    <node  pkg="rviz" type="rviz" output="screen" name="rviz" args="-d $(find franka_interactive_controllers)/launch/rviz/franka_description.rviz" if="$(arg bringup_rviz)"/>
  </group>

</launch>
Fooddog-player commented 8 months ago

@JKBehrens Thank you very much for your launch file. I also encountered the same problem, which has troubled me for a long time!