0

Rosanswers logo

I am trying to run a controller on a joint in gazebo. I can control joints of the Pr2 and the pendulum example. But if I want to control my own urdf then joints are not visible.

rosrun pr2_controller_manager pr2_controller_manager list-joints
Waiting for mechanism statistics message...

Only transmissions and controller manager block should be present in the urdf? My urdf:

    <?xml version="1.0"?>

<robot name="ar_arm">

<link name="world" />

<link name="arm_base"> <inertial> <origin xyz="0.000000 0.000000 0.000990" rpy="0.000000 -0.000000 0.000000"/> <mass value="101.000000" /> <inertia ixx="1.110000" ixy="0.000000" ixz="0.000000" iyy="100.110000" iyz="0.000000" izz="1.010000"/> </inertial> <collision name="arm_base_geom"> <origin xyz="0.000000 0.000000 0.050000" rpy="0.000000 -0.000000 0.000000"/> <geometry> <box size="1.000000 1.000000 0.100000"/> </geometry> </collision> <visual> <origin xyz="0.000000 0.000000 0.050000" rpy="0.000000 -0.000000 0.000000"/> <geometry> <box size="1.000000 1.000000 0.100000"/> </geometry> <material name="Cyan"> <color rgba="0 1 1 1.0"/> </material>
</visual> </link>

<link name="arm_cylinder"> <inertial> <origin xyz="0.000000 0.000000 0.600000" rpy="0.000000 -0.000000 0.000000"/> <mass value="1.000000" /> <inertia ixx="0.110000" ixy="0.000000" ixz="0.000000" iyy="100.110000" iyz="0.000000" izz="1.010000"/> </inertial> <collision name="arm_base_geom_arm_trunk"> <origin xyz="0.000000 0.000000 0.600000" rpy="0.000000 -0.000000 0.000000"/> <geometry> <cylinder radius="0.050000" length="1.00000"/> </geometry> </collision> <visual name="arm_base_geom_arm_trunk_visual" cast_shadows="1"> <origin xyz="0.000000 0.000000 0.650000" rpy="0.000000 -0.000000 0.000000"/> <geometry> <cylinder radius="0.050000" length="1.100000"/> </geometry> <material name="Red"> <color rgba="255 0 0 1"/> </material> </visual> </link>

<link name="arm_shoulder_pan"> <inertial>
<mass value="1.100000"/> <origin xyz="0.045455 0.000000 0.000000" rpy="0.000000 -0.000000 0.000000"/> <inertia ixx="0.011000" ixy="0.000000" ixz="0.000000" iyy="0.022500" iyz="0.000000" izz="0.013500"/> </inertial>

<collision name="arm_shoulder_pan_geom_arm_shoulder"> <origin xyz="0.550000 0.000000 0.050000" rpy="0.000000 -0.000000 0.000000"/> <geometry> <box size="1.000000 0.050000 0.100000"/> </geometry> </collision> <visual name="arm_shoulder_pan_geom_arm_shoulder_visual" cast_shadows="1"> <origin xyz="0.550000 0.000000 0.050000" rpy="0.000000 -0.000000 0.000000"/> <geometry> <box size="1.000000 0.050000 0.100000"/> </geometry> <material name="Cyan"> <color rgba="0 1 1 1.0"/> </material> </visual> </link>

<link name="arm_shoulder_pivot"> <inertial>
<mass value="0.100001"/> <origin xyz="0.045455 0.000000 0.000000" rpy="0.000000 -0.000000 0.000000"/> <inertia ixx="0.011000" ixy="0.000000" ixz="0.000000" iyy="0.022500" iyz="0.000000" izz="0.013500"/> </inertial> <collision name="arm_shoulder_pan_geom"> <origin pose="0.000000 0.000000 0.050000 0.000000 -0.000000 0.000000"/> <geometry> <cylinder radius="0.050000" length="0.100000"/> </geometry> </collision> <visual name="arm_shoulder_pan_geom_visual" cast_shadows="1"> <origin pose="0.050000 0.000000 0.050000" rpy="0.000000 0.000000 0.000000"/> <geometry> <cylinder radius="0.050000" length="0.200000"/> </geometry> <material name="Red"> <color rgba="255 0 0 1"/> </material> </visual> </link>

<link name="arm_elbow_pan"> <inertial> <mass value="1.200000"/> <origin xyz="0.087500 0.000000 0.083333" rpy="0.000000 -0.000000 0.000000"/> <inertia ixx="0.031000" ixy="0.000000" ixz="-0.005000" iyy="0.072750" iyz="0.000000" izz="0.044750"/> </inertial> <collision name="arm_elbow_pan_geom_arm_elbow"> <origin xyz="0.300000 0.000000 0.150000" rpy="0.000000 -0.000000 0.000000"/> <geometry> <box size="0.500000 0.030000 0.100000"/> </geometry> </collision> <visual name="arm_elbow_pan_geom_arm_elbow_visual" cast_shadows="1"> <origin xyz="0.2500000 0.000000 0.000000" rpy="0.000000 0.000000 0.000000"/> <geometry> <box size="0.500000 0.030000 0.100000"/> </geometry> <material name="Cyan"> <color rgba="0 1 1 1.0"/> </material> </visual> </link>

<joint name="arm_base_joint" type="fixed">
<parent link="world"/> <child link="arm_base"/> <axis xyz="0.000000 0.000000 1.00000"> <limit lower="0.000000" upper="0.000000"/> <dynamics damping="10.0" friction="10.0"/> </axis> </joint>

<joint name="arm_base_cylinder" type="fixed">
<parent link="arm_base"/> <child link="arm_cylinder"/> <axis xyz="0.000000 0.000000 1.000000"> <limit lower="0.000000" upper="0.000000"/> <dynamics damping="10.0" friction="10.0"/> </axis> </joint>

<joint name="arm_shoulder_pan_joint" type="continuous"> <parent link="arm_cylinder"/> <child link="arm_shoulder_pan"/> <origin xyz="0.000000 0.000000 1.100000"/> <axis xyz="0.000000 0.000000 1.000000"> <dynamics damping="10.0" friction="10.0"/> </axis> </joint>

<joint name="arm_elbow_fix" type="fixed"> <parent link="arm_shoulder_pan"/> <child link="arm_shoulder_pivot"/> <origin xyz="1.100000 0.000000 0.100000"/> <axis xyz="0.000000 0.000000 1.000000"> <dynamics damping="10.0" friction="10.0"/> </axis> </joint>

<joint name="arm_elbow_pan_joint" type="continuous"> <parent link="arm_shoulder_pivot"/> <child link="arm_elbow_pan"/> <origin xyz="0.00000 0.000000 0.0500000"/> <axis xyz="0.000000 0.000000 1.000000"> <dynamics damping="10.0" friction="10.0"/> </axis> </joint>

<!-- PR2_ACTARRAY --> <controller:gazebo_ros_controller_manager name="gazebo_ros_controller_manager" plugin="libgazebo_ros_controller_manager.so"> <alwaysOn>true</alwaysOn> <updateRate>1000.0</updateRate> </controller:gazebo_ros_controller_manager> <!-- gazebo_ros_p3d for position groundtruth --> <controller:gazebo_ros_p3d name="p3d_link1_controller" plugin="libgazebo_ros_p3d.so"> <alwaysOn>true</alwaysOn> <updateRate>1000.0</updateRate> <bodyName>link1</bodyName> <topicName>link1_pose</topicName> <frameName>map</frameName> <interface:position name="p3d_link1_position"/> </controller:gazebo_ros_p3d> </gazebo> <!-- mechanism controls --> <transmission name="link1_trans" type="pr2_mechanism_model/SimpleTransmission"> <actuator name="link1_motor"/> <joint name="arm_shoulder_pan_joint"/> <mechanicalReduction>1</mechanicalReduction> <motorTorqueConstant>1</motorTorqueConstant> </transmission>

</robot>


Originally posted by davinci on ROS Answers with karma: 2573 on 2013-04-15

Post score: 1

1 Answers1

0

Rosanswers logo

The solution is that you have to but the urdf in the robot description! Although not documented this is required (probably for the p3d).

  <param name="robot_description" command="cat '$(find package)/model/model.urdf'" />

Originally posted by davinci with karma: 2573 on 2013-04-17

This answer was ACCEPTED on the original site

Post score: 0