ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

kit_viz's profile - activity

2017-09-27 02:19:56 -0500 received badge  Teacher (source)
2017-09-27 02:19:56 -0500 received badge  Necromancer (source)
2015-08-22 13:22:42 -0500 received badge  Supporter (source)
2015-08-19 16:07:00 -0500 answered a question robot_self_filter: where does it take the URDF?

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"/>