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

Environment Server's get_trajectory_validity is not being advertised

asked 2011-07-13 03:03:46 -0600

John Hoare gravatar image

updated 2011-07-13 04:56:09 -0600

Using ROS diamondback with our custom arm, I'm trying to get move_arm to work. My current problem is that the environment_server is not advertising a get_trajectory_validity service. I am trying to ignore any obstacles in the environment for now.

Here's the launch file that I am using for the environment service

<launch>

  <node pkg="planning_environment" type="environment_server" output="screen" name="environment_server">
    <param name="allow_valid_collisions" type="bool" value="false" />

    <param name="collision_map_safety_timeout" type="double" value="100000.0" />
    <param name="joint_states_safety_timeout" type="double" value="1.0" />
    <param name="tf_safety_timeout" type="double" value="1.0" />
    <param name="bounding_planes" type="string" value="0 0 1 -0.01" />

    <param name="object_padd" type="double" value="0.04" />
    <param name="pointcloud_padd" type="double" value="0.00" />

    <param name="contacts_to_compute_for_display" type="int" value="50" />
    <param name="joint_state_cache_allowed_difference" type="double" value=".1" />

    <param name="use_collison_map" value="false" />

    <param name="default_robot_padding" value="0.01" />

  </node>
</launch>

The error I get (from move_arm) is:

header: 
  seq: 235
  stamp: 1310568657.618890981
  frame_id: 
level: 2
name: /move_right_arm
msg: waitForService: Service [/environment_server/get_trajectory_validity] has not been advertised, waiting...
file: /tmp/buildd/ros-diamondback-ros-comm-1.4.7/debian/ros-diamondback-ros-comm/opt/ros/diamondback/stacks/ros_comm/clients/cpp/roscpp/src/libros/service.cpp
function: service::exists
line: 80
topics[]
  topics[0]: /rosout
  topics[1]: /allowed_contact_regions_array

I am launching the move_arm node with:

<launch>
  <node pkg="move_arm" type="move_arm_simple_action" output="screen" name="move_right_arm">

    <remap from="robot_description" to="/robot_description" />
    <remap from="joint_state" to="/joint_states" />
    <remap from="filter_trajectory" to="trajectory_filter/filter_trajectory_with_constraints" />
    <!--remap from="filter_trajectory" to="chomp_planner_longrange/filter_trajectory_with_constraints" /-->

    <remap from="arm_ik" to="/arm_kinematics/get_constraint_aware_ik" />
    <remap from="arm_fk" to="/arm_kinematics/get_fk" />

    <remap from="get_trajectory_validity" to="environment_server/get_trajectory_validity" />
    <remap from="get_environment_safety" to="environment_server/get_environment_safety" />
    <remap from="get_execution_safety" to="environment_server/get_execution_safety" />
    <remap from="get_group_info" to="environment_server/get_group_info" />
    <remap from="get_robot_state" to="environment_server/get_robot_state" />
    <remap from="get_state_validity" to="environment_server/get_state_validity" />


    <param name="group" type="string" value="right_arm" />
    <param name="ik_allowed_time" type="double" value="2.0" />
    <param name="trajectory_filter_allowed_time" type="double" value="2.0" />
    <param name="group" type="string" value="right_arm" />
    <!-- <param name="controller_action_name" type="string" value="/r_arm_controller/joint_trajectory_action" /> -->
    <param name="controller_action_name" type="string" value="/right_arm/joint_trajectory_action" />

    <param name="pause_allowed_time" type="double" value="5.0" />

  </node>
</launch>
edit retag flag offensive close merge delete

Comments

Can you post how you launch move_arm, what remapping are done there?
arebgun gravatar image arebgun  ( 2011-07-13 03:21:14 -0600 )edit
I am not seeing the get_trajectory_validity service from the environmental server when I run rosservice list, is that normal?
John Hoare gravatar image John Hoare  ( 2011-07-13 03:50:10 -0600 )edit

2 Answers

Sort by ยป oldest newest most voted
0

answered 2011-07-27 05:25:26 -0600

John Hoare gravatar image

Turns out the problem (as you can see in my posted launch file) is that I spelled "collision" wrong for the use_collision_map parameter. Perhaps it would be nice to add in a way for unused parameters that are specified.

edit flag offensive delete link more
1

answered 2011-07-13 04:47:14 -0600

egiljones gravatar image

This is all in diamondback, correct? (Things are very different on unstable/e-turtle and we have a few new tools that should make getting arm_navigation working on your arm much easier).

In diamondback the environment_server should be advertising this in its local namespace so all your configuration looks correct. Given that you have use_collision_map set to false I expect the problem is in your publishing of the /joint_states topic - the environment server will not turn over and advertise its services until it has received a published value for each of the degrees of freedom specified in your URDF.

Once you've launched the environment server you can see what joints its still waiting on by running rxconsole and setting the logger levels for the environment_server planning_environment level to DEBUG.

edit flag offensive delete link more

Comments

Would a joint_state need to be published for a fixed joint? And yes, it is in diamondback.
John Hoare gravatar image John Hoare  ( 2011-07-13 04:55:27 -0600 )edit
robot_state_publisher node will publish fixed joints based on URDF, it also subscribes to /joint_states to get state information about all moving joints and then publishes all this to TF.
arebgun gravatar image arebgun  ( 2011-07-13 04:59:02 -0600 )edit
You shouldn't need to publish anything about fixed joints on the /joint_states topic - that only specifies the positions of joints that can move. robot_state_publisher also subscribes to this topic and will use it to publish the full tf tree including for fixed joints.
egiljones gravatar image egiljones  ( 2011-07-13 05:17:53 -0600 )edit
I'm getting lots of: TF operating on not fully resolved frame id world, resolving using local prefix messages, is this the likely culprit?
John Hoare gravatar image John Hoare  ( 2011-07-13 06:10:27 -0600 )edit

Question Tools

Stats

Asked: 2011-07-13 03:03:46 -0600

Seen: 428 times

Last updated: Jul 27 '11