Ask Your Question
1

robot_self_filter: where does it take the URDF? [closed]

asked 2014-06-24 07:57:52 -0500

mark_vision gravatar image

Hi all, finally I managed to migrate this package into Hydro. For those who are wondering why, it's because I don't want to use MoveIt! for now.

If I launch the node, i receive the following WARNING:

[ WARN] [1403614003.986368439]: Some links were included for self mask but they do not exist in the model: lf_upper_leg lf_lower_leg lf_foot rf_upper_leg rf_lower_leg rf_foot lh_upper_leg lh_lower_leg lh_foot rh_upper_leg rh_lower_leg rh_foot
[ WARN] [1403614003.986465197]: No robot links will be checked for self mask
[ WARN] [1403614003.988725771]: No valid URDF frames available, not performing filtering.

Of course the links are existing and probably the missing part is the connection with the URDF which is running because I can see the robot on Rviz but maybe the node is not using it for some reason.

edit retag flag offensive reopen merge delete

Closed for the following reason the question is answered, right answer was accepted by mark_vision
close date 2017-09-27 02:20:11.799039

1 Answer

Sort by ยป oldest newest most voted
1

answered 2015-08-19 11:44:40 -0500

kit_viz gravatar image

Hi, the urdf description is loaded and parsed in robot_self_filter::SelfMask::configure(const std::vector<linkinfo> &links). The urdf is accessed though the parameter "robot_description", so throw that sucker in your launch file like so:

    <launch>
    <!--   <include file="$(find 3dnav_pr2)/launch/pr2_planning_environment.launch" /> -->

        <!-- Robot Model -->
        <arg name="model"     default="<my_robot>" />

        <!-- Robot Self Filter -->
          <node pkg="robot_self_filter" name="robot_self_filter" type="self_filter" respawn="true" output="screen">   
          ...
          </node>

        <!-- Specify URDF file -->
          <param name="robot_description"
                textfile="$(find robot_self_filter)/urdf/$(arg model).urdf"/>
     </launch>

Also, for others, you might get this warning:

[ WARN] [1439998460.539715578]: Self see links need to be an array

when specifying the self_see_links parameter in the launch file. One thing you can try is 1) create a yaml file, 2) add the following array of dictionaries:

self_see_links: [{"name":"l_upper_arm_link","padding":0.02,"scale":0.1},
             {"name":"l_upper_arm_roll_link","padding":0.02,"scale":0.1},
             {"name":"l_elbow_flex_link","padding":0.02,"scale":0.1},
             {"name":"l_elbow_flex_link","padding":0.02,"scale":0.1}]

and 3) load it in the launch file by replacing "< param name="self_see_links" type="string"... />" with the following:

 <!-- Load self_see_links -->
 <rosparam command="load" file="$(find robot_self_filter)/launch/<my_self_see_links>.yaml"/>
edit flag offensive delete link more

Question Tools

1 follower

Stats

Asked: 2014-06-24 07:57:52 -0500

Seen: 458 times

Last updated: Aug 19 '15