0

最近几天,我在 ROS noetic 上的 Ubuntu 20 上建立了一个与项目相关的 WAM 机器人。一旦我在终端上发送命令“roslaunch barrett_description spawn.launch”,下面会出现一些错误:

这是我的 spawn.launch 文件:

<?xml version="1.0"?>
<launch>
<arg name="paused" default="false"/>
<arg name="gazebo_gui" default="true"/>

  <include file="$(find gazebo_ros)/launch/empty_world.launch">
    <arg name="world_name" default="worlds/empty.world"/>
    <arg name="gui" value="$(arg gazebo_gui)"/>
  </include>
  
<param name="robot_description" command="$(find xacro)/xacro --inorder '$(find barrett_description)/urdf/barrett_model.urdf'"/>
  
<arg name="x" default="0"/>
<arg name="y" default="0"/>
<arg name="z" default="0.5"/>
    
    <node name="wam_spawn" pkg="gazebo_ros" type="spawn_model" output="screen"
          args="-urdf -param robot_description -model wam -x $(arg x) -y $(arg y) -z $(arg z)" />

  <include file="$(find barrett_description)/launch/ros_controllers.launch"/> 
</launch>

这是我的 ros_contollers.launch 文件:

<?xml version="1.0"?>
<launch>
  <rosparam file="$(find barrett_description)/config/ros_controllers.yaml" command="load"/>

  <node name="controller_spawner" pkg="controller_manager" type="spawner" respawn="false"
    output="screen" ns="/" args="joint_state_controller     
    bh_j11_position_controller 
        bh_j21_position_controller 
        bh_j22_position_controller 
        bh_j31_position_controller
    bh_j32_position_controller
    bh_j33_position_controller
    bh_j41_position_controller"/>

  <node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" >
    <!--  <param name="use_gui" value="True"/> -->
  </node> 

  <node name="wam_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher"
    respawn="false" output="screen">
  </node>

</launch>

这是我的 ros_controllers.yaml 文件:

# Simulation settings for using moveit_sim_controllers
moveit_sim_hw_interface:
  joint_model_group: warm
  joint_model_group_pose: upright
# Settings for ros_control_boilerplate control loop
generic_hw_control_loop:
  loop_hz: 300
  cycle_time_error_threshold: 0.01
# Settings for ros_control hardware interface
hardware_interface:
  joints:
    - wam/base_yaw_joint
    - wam/shoulder_pitch_joint
    - wam/shoulder_yaw_joint
    - wam/elbow_pitch_joint
    - wam/wrist_yaw_joint
    - wam/wrist_pitch_joint
    - wam/palm_yaw_joint

     - wam/bhand/finger_1/prox_joint
     - wam/bhand/finger_1/med_joint
     - wam/bhand/finger_1/dist_joint
     - wam/bhand/finger_2/prox_joint
     - wam/bhand/finger_2/med_joint
     - wam/bhand/finger_2/dist_joint
     - wam/bhand/finger_3/med_joint
     - wam/bhand/finger_3/dist_joint
  sim_control_mode: 1  # 0: position, 1: velocity
# Publish all joint states
# Creates the /joint_states topic necessary in ROS
#wam:
joint_state_controller:
  type: joint_state_controller/JointStateController
  publish_rate: 50

bh_j11_position_controller:
  type: position_controllers/JointPositionController
  joint: wam/base_yaw_joint
  pid: {p: 100.0, i: 10.0, d: 1.0}
bh_j21_position_controller:
  type: position_controllers/JointPositionController
  joint: wam/shoulder_pitch_joint
  pid: {p: 100.0, i: 10.0, d: 1.0}
bh_j22_position_controller:
  type: position_controllers/JointPositionController
  joint: wam/shoulder_yaw_joint
  pid: {p: 100.0, i: 10.0, d: 1.0}
bh_j31_position_controller:
  type: position_controllers/JointPositionController
  joint: wam/elbow_pitch_joint
  pid: {p: 100.0, i: 10.0, d: 1.0}
bh_j32_position_controller:
  type: position_controllers/JointPositionController
  joint: wam/wrist_yaw_joint
  pid: {p: 100.0, i: 10.0, d: 1.0}
bh_j33_position_controller:
  type: position_controllers/JointPositionController
  joint: wam/wrist_pitch_joint
  pid: {p: 100.0, i: 10.0, d: 1.0}
bh_j41_position_controller:
  type: position_controllers/JointPositionController
  joint: wam/palm_yaw_joint
  pid: {p: 100.0, i: 10.0, d: 1.0}

我通过 Moveit 自动生成了 WAM Robot URDF 文件。

这个问题困扰了我几天,我不知道如何处理它。希望可以有人帮帮我。谢谢!

4

0 回答 0