最近几天,我在 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 文件。
这个问题困扰了我几天,我不知道如何处理它。希望可以有人帮帮我。谢谢!