Agregue el controlador robotiq 2f 140 gripper_controller en el entorno de simulación de la glorieta
Entorno de construcción:
ubuntu: 20.04
ros: Nonetic
sensor: robotiq_ft300
gripper: robotiq_2f_140_gripper
UR: UR3
reasentido: D435i
El entorno de simulación rviz y gazebo de ur3, sensor de fuerza, pinza robotiq, realsense se configuran a través de los siguientes blogs
ubuntu20.04 configura el entorno de simulación del brazo robótico UR
ur3+robotiq ft sensor+robotiq 2f 140 configura el entorno de simulación rviz
ur3+robotiq ft sensor+robotiq 2f 140 configura el entorno de simulación del mirador
ur3+robotiq ft sensor+robotiq 2f 140+ realsense d435i configura rviz, entorno de simulación de mirador
Después de configurar realsense en el entorno de simulación a través del blog anterior , abrí el tema publicado y encontré que no hay ningún tema de pinzas.
Después de comparar robotiq/robotiq_2f_140_gripper_gazebo/launch/robotiq_2f_140_bringup.launch
con el archivo, se encuentra que solo hay el controlador del brazo robótico (como se muestra en la figura a continuación), y no hay un controlador con pinzasuniversal_robot/ur_gazebo/launch/ur3_bringup.launch
ur3_bringup.launch
Encuentre robotiq_2f_140_bringup.launch
el controlador de la pinza central (como se muestra a continuación)
Luego agréguelo al ur3_bringup.launch
archivo (tenga en cuenta que se agrega de acuerdo con el método de carga de los dos controladores de archivos, en lugar de simplemente copiar el código en el cuadro)
El código al que me estoy ur3_bringup.launch
uniendo es el siguiente
<!-- Load Gripper controller settings -->
<rosparam file="$(find robotiq_2f_140_gripper_gazebo)/config/robotiq_2f_140_gripper_controllers.yaml" command="load"/>
<!-- Load and start the gripper controllers listed in the 'controllers' arg. -->
<node name="gripper_controller_spawner" pkg="controller_manager" type="spawner"
args="gripper_controller" output="screen" respawn="false" />
ur3_bringup.launch
El código completo es el siguiente
<?xml version="1.0"?>
<launch>
<!--Robot description and related parameter files -->
<arg name="robot_description_file" default="$(dirname)/inc/load_ur3.launch.xml" doc="Launch file which populates the 'robot_description' parameter."/>
<arg name="joint_limit_params" default="$(find ur_description)/config/ur3/joint_limits.yaml"/>
<arg name="kinematics_params" default="$(find ur_description)/config/ur3/default_kinematics.yaml"/>
<arg name="physical_params" default="$(find ur_description)/config/ur3/physical_parameters.yaml"/>
<arg name="visual_params" default="$(find ur_description)/config/ur3/visual_parameters.yaml"/>
<!-- Controller configuration -->
<arg name="controller_config_file" default="$(find ur_gazebo)/config/ur3_controllers.yaml" doc="Config file used for defining the ROS-Control controllers."/>
<arg name="controllers" default="joint_state_controller eff_joint_traj_controller" doc="Controllers that are activated by default."/>
<arg name="stopped_controllers" default="joint_group_eff_controller" doc="Controllers that are initally loaded, but not started."/>
<!-- robot_state_publisher configuration -->
<arg name="tf_prefix" default="" doc="tf_prefix used for the robot."/>
<arg name="tf_pub_rate" default="125" doc="Rate at which robot_state_publisher should publish transforms."/>
<!-- Gazebo parameters -->
<arg name="paused" default="false" doc="Starts Gazebo in paused mode" />
<arg name="gui" default="true" doc="Starts Gazebo gui" />
<!-- Load urdf on the parameter server -->
<include file="$(arg robot_description_file)">
<arg name="joint_limit_params" value="$(arg joint_limit_params)"/>
<arg name="kinematics_params" value="$(arg kinematics_params)"/>
<arg name="physical_params" value="$(arg physical_params)"/>
<arg name="visual_params" value="$(arg visual_params)"/>
</include>
<!-- Robot state publisher -->
<node pkg="robot_state_publisher" type="robot_state_publisher" name="robot_state_publisher">
<param name="publish_frequency" type="double" value="$(arg tf_pub_rate)" />
<param name="tf_prefix" value="$(arg tf_prefix)" />
</node>
<!-- Start the 'driver' (ie: Gazebo in this case) -->
<include file="$(dirname)/inc/ur_control.launch.xml">
<arg name="controller_config_file" value="$(arg controller_config_file)"/>
<arg name="controllers" value="$(arg controllers)"/>
<arg name="gui" value="$(arg gui)"/>
<arg name="paused" value="$(arg paused)"/>
<arg name="stopped_controllers" value="$(arg stopped_controllers)"/>
</include>
<!-- Load Gripper controller settings -->
<rosparam file="$(find robotiq_2f_140_gripper_gazebo)/config/robotiq_2f_140_gripper_controllers.yaml" command="load"/>
<!-- Load and start the gripper controllers listed in the 'controllers' arg. -->
<node name="gripper_controller_spawner" pkg="controller_manager" type="spawner"
args="gripper_controller" output="screen" respawn="false" />
</launch>
Ver el efecto
ejecutar comando
cd ~/catkin_ws
source devel/setup.bash
roslaunch ur_gazebo ur3_bringup.launch
Ahora hay más tema del controlador de pinzas de agarre.
errores encontrados
Después de finalizar la operación directa anterior, encontrará que hay un error en la línea de comando
La razón principal es que universal_robot/ur_gazebo/urdf/ur_macro.xacro
el archivo y robotiq/robotiq_2f_140_gripper_gazebo/urdf/robotiq_arg2f_140_macro.xacro
ambos tienen declaraciones ros_control
como se muestra en la figura a continuación.
Siempre que uno de ellos ros_control
esté comentado, aquí comenté robotiq_arg2f_140_macro.xacro
el del medio, el problema está resuelto y no se informan más errores.