67、abb_ros2(PickNikRobotics)学习笔记(2)--- 显示机器人

1、建立功能包

cd Ros2/irb1200_5_90_2026/src

ros2 pkg create abb_irb1200_support --build-type ament_cmake

2、文件架构

(1)、在功能包下新建launch,rviz2,meshes,urdf文件夹。

(2)、将abb_ros2-humble\robot_specific_config\abb_irb1200_support\urdf文件夹下的irb1200_5_90.xacro、 irb1200_5_90_macro.xacro 和irb1200.ros2_control.xacro文件拷贝到abb_irb1200_support/urdf文件夹中

(3)、将abb_ros2-humble\abb_resources\urdf文件夹中的common_colours.xacro和common_materials.cacro文件拷贝到abb_irb1200_support/urdf文件夹中。

(4)、将abb_ros2-humble\robot_specific_config\abb_irb1200_support\meshes\irb1200_5_90文件夹下的collision和visual文件夹拷贝到abb_irb1200_support/meshes文件夹中

(5)、修改irb1200_5_90_macro.xacro文件(主要是修改路径

cpp 复制代码
<?xml version="1.0"?>
<robot xmlns:xacro="http://ros.org/wiki/xacro">
  <xacro:include filename="$(find abb_irb1200_support)/urdf/common_materials.xacro"/>

  <xacro:macro name="abb_irb1200_5_90" params="prefix">
    <!-- link list -->
    <link name="${prefix}base_link">
      <!-- See note 1 in package.xml about the inertial and mass values -->
      <inertial>
        <mass value="13.7742"/>
        <origin xyz="-0.028986 0.000596 0.11273"/>
        <inertia ixx="0.101998" ixy="0.000495482" ixz="0.000311158" iyy="0.13969" iyz="-0.000245375" izz="0.130433"/>
      </inertial>
      <collision name="collision">
        <geometry>
          <mesh filename="package://abb_irb1200_support/meshes/collision/base_link.stl"/>
        </geometry>
      </collision>
      <visual name="visual">
        <geometry>
          <mesh filename="package://abb_irb1200_support/meshes/visual/base_link.dae"/>
        </geometry>
        <xacro:material_abb_yellow />
      </visual>
    </link>
    <link name="${prefix}link_1">
      <!-- See note 1 in package.xml about the inertial and mass values -->
      <inertial>
        <mass value="11.8419"/>
        <origin xyz="0.000877 -0.000631 -0.062883"/>
        <inertia ixx="0.11194" ixy="-4.54988e-05" ixz="0.000280961" iyy="0.0915159" iyz="-0.000109905" izz="0.0876456"/>
      </inertial>
      <collision name="collision">
        <geometry>
          <mesh filename="package://abb_irb1200_support/meshes/collision/link_1.stl"/>
        </geometry>
      </collision>
      <visual name="visual">
        <geometry>
          <mesh filename="package://abb_irb1200_support/meshes/visual/link_1.dae"/>
        </geometry>
        <xacro:material_abb_yellow />
      </visual>
    </link>
    <link name="${prefix}link_2">
      <!-- See note 1 in package.xml about the inertial and mass values -->
      <inertial>
        <mass value="17.5394"/>
        <origin xyz="-0.000928 -0.000497 0.250051"/>
        <inertia ixx="0.493558" ixy="1.32136e-05" ixz="0.000209024" iyy="0.462939" iyz="-0.00179901" izz="0.0894214"/>
      </inertial>
      <collision name="collision">
        <geometry>
          <mesh filename="package://abb_irb1200_support/meshes/collision/link_2.stl"/>
        </geometry>
      </collision>
      <visual name="visual">
        <geometry>
          <mesh filename="package://abb_irb1200_support/meshes/visual/link_2.dae"/>
        </geometry>
        <xacro:material_abb_yellow />
      </visual>
    </link>
    <link name="${prefix}link_3">
      <!-- See note 1 in package.xml about the inertial and mass values -->
      <inertial>
        <mass value="7.46365"/>
        <origin xyz="0.099588 0.001143 0.032333"/>
        <inertia ixx="0.0252424" ixy="0.000142737" ixz="-0.00565542" iyy="0.0906438" iyz="0.000142213" izz="0.0825079"/>
      </inertial>
      <collision name="collision">
        <geometry>
          <mesh filename="package://abb_irb1200_support/meshes/collision/link_3.stl"/>
        </geometry>
      </collision>
      <visual name="visual">
        <geometry>
          <mesh filename="package://abb_irb1200_support/meshes/visual/link_3.dae"/>
        </geometry>
        <xacro:material_abb_yellow />
      </visual>
    </link>
    <link name="${prefix}link_4">
      <!-- See note 1 in package.xml about the inertial and mass values -->
      <inertial>
        <mass value="2.74436"/>
        <origin xyz="0.381678 0.001261 0.005168"/>
        <inertia ixx="0.00573099" ixy="-0.000131119" ixz="0.000380232" iyy="0.0118352" iyz="-2.26565e-05" izz="0.0114428"/>
      </inertial>
      <collision name="collision">
        <geometry>
          <mesh filename="package://abb_irb1200_support/meshes/collision/link_4.stl"/>
        </geometry>
      </collision>
      <visual name="visual">
        <geometry>
          <mesh filename="package://abb_irb1200_support/meshes/visual/link_4.dae"/>
        </geometry>
        <xacro:material_abb_yellow />
      </visual>
    </link>
    <link name="${prefix}link_5">
      <!-- See note 1 in package.xml about the inertial and mass values -->
      <inertial>
        <mass value="0.62953"/>
        <origin xyz="0.011197 -0.001056 0.000109"/>
        <inertia ixx="0.000502815" ixy="-1.03173e-05" ixz="-8.74347e-08" iyy="0.00108856" iyz="2.07657e-07" izz="0.000918873"/>
      </inertial>
      <collision name="collision">
        <geometry>
          <mesh filename="package://abb_irb1200_support/meshes/collision/link_5.stl"/>
        </geometry>
      </collision>
      <visual name="visual">
        <geometry>
          <mesh filename="package://abb_irb1200_support/meshes/visual/link_5.dae"/>
        </geometry>
        <xacro:material_abb_yellow />
      </visual>
    </link>
    <link name="${prefix}link_6">
      <!-- See note 1 in package.xml about the inertial and mass values -->
      <inertial>
        <mass value="0.137"/>
        <origin xyz="-0.00706 -0.00017 -1.32E-06" rpy="0 0 0"/>
        <inertia ixx="0.001" ixy="0" ixz="0" iyy="0.001" iyz="0" izz="0.001"/>
      </inertial>
      <!-- Meshlab calculated values (below) make gazebo crash when rotating this joint. -->
      <!-- <inertial>
        <mass value="0.00686711"/>
        <origin xyz="-0.00250976 -1.89e-06 0.00010218"/>
        <inertia ixx="1.3517e-06" ixy="-1.21316e-11" ixz="9.18065e-12" iyy="6.89813e-07" iyz="-1.21534e-10" izz="6.90097e-07"/>
      </inertial> -->
      <collision name="collision">
        <geometry>
          <mesh filename="package://abb_irb1200_support/meshes/collision/link_6.stl"/>
        </geometry>
      </collision>
      <visual name="visual">
        <geometry>
          <mesh filename="package://abb_irb1200_support/meshes/visual/link_6.dae"/>
        </geometry>
        <xacro:material_abb_yellow />
      </visual>
    </link>
    <!-- end of link list -->

    <!-- joint list -->
    <joint type="revolute" name="${prefix}joint_1">
      <origin xyz="0 0 0.3991" rpy="0 0 0"/>
      <axis xyz="0 0 1"/>
      <parent link="${prefix}base_link"/>
      <child link="${prefix}link_1"/>
      <!-- See note 2 in package.xml about effort limits and dynamics values -->
      <limit effort="1000" lower="-2.967" upper="2.967" velocity="5.027"/>
      <dynamics damping="50.0" friction="1.0"/>
    </joint>
    <joint type="revolute" name="${prefix}joint_2">
      <origin xyz="0 0 0" rpy="0 0 0"/>
      <axis xyz="0 1 0"/>
      <parent link="${prefix}link_1"/>
      <child link="${prefix}link_2"/>
      <!-- See note 2 in package.xml about effort limits and dynamics values -->
      <limit effort="1000" lower="-1.745" upper="2.269" velocity="4.189"/>
      <dynamics damping="50.0" friction="1.0"/>
    </joint>
    <joint type="revolute" name="${prefix}joint_3">
      <origin xyz="0 0 0.448" rpy="0 0 0"/>
      <axis xyz="0 1 0"/>
      <parent link="${prefix}link_2"/>
      <child link="${prefix}link_3"/>
      <!-- See note 2 in package.xml about effort limits and dynamics values -->
      <limit effort="1000" lower="-3.491" upper="1.222" velocity="5.236"/>
      <dynamics damping="10.0" friction="1.0"/>
    </joint>
    <joint type="revolute" name="${prefix}joint_4">
      <origin xyz="0 0 0.042" rpy="0 0 0"/>
      <axis xyz="1 0 0"/>
      <parent link="${prefix}link_3"/>
      <child link="${prefix}link_4"/>
      <!-- See note 2 in package.xml about effort limits and dynamics values -->
      <limit effort="1000" lower="-4.712" upper="4.712" velocity="6.981"/>
      <dynamics damping="5.0" friction="1.0"/>
    </joint>
    <joint type="revolute" name="${prefix}joint_5">
      <origin xyz="0.451 0 0" rpy="0 0 0"/>
      <axis xyz="0 1 0"/>
      <parent link="${prefix}link_4"/>
      <child link="${prefix}link_5"/>
      <!-- See note 2 in package.xml about effort limits and dynamics values -->
      <limit effort="1000" lower="-2.269" upper="2.269" velocity="7.069"/>
      <dynamics damping="2.0" friction="1.0"/>
    </joint>
    <joint type="revolute" name="${prefix}joint_6">
      <origin xyz="0.082 0 0" rpy="0 0 0"/>
      <axis xyz="1 0 0"/>
      <parent link="${prefix}link_5"/>
      <child link="${prefix}link_6"/>
      <!-- See note 2 in package.xml about effort limits and dynamics values -->
      <limit effort="1000" lower="-6.283" upper="6.283" velocity="10.472"/>
      <dynamics damping="1.0" friction="1.0"/>
    </joint>
    <!-- end of joint list -->

    <!-- ROS-Industrial 'base' frame- base_link to ABB World Coordinates transform -->
    <link name="${prefix}base" />
    <joint name="${prefix}base_link-base" type="fixed">
      <origin xyz="0 0 0" rpy="0 0 0"/>
      <parent link="${prefix}base_link"/>
      <child link="${prefix}base"/>
    </joint>

    <!-- ROS-Industrial 'flange' frame- attachment point for EEF models -->
    <link name="${prefix}flange"/>
    <joint type="fixed" name="${prefix}joint_6-flange">
      <origin xyz="0 0 0" rpy="0 0 0"/>
      <parent link="${prefix}link_6"/>
      <child link="${prefix}flange"/>
    </joint>

    <!-- ROS-Industrial 'tool0' frame- all-zeros tool frame -->
    <link name="${prefix}tool0" />
    <joint name="${prefix}link_6-tool0" type="fixed">
      <origin xyz="0 0 0" rpy="0 ${radians(90)} 0" />
      <parent link="${prefix}flange" />
      <child link="${prefix}tool0" />
    </joint>
  </xacro:macro>
</robot>
相关推荐
码农的小菜园1 天前
gradle常用指令使用笔记
笔记
鸟电波1 天前
硬件笔记——示波器篇
笔记
Don.TIk1 天前
SpringCloud学习笔记
笔记·学习·spring cloud
red_redemption1 天前
自由学习记录(131)
学习
Shining05961 天前
推理引擎方向(二)《大模型原理与结构》
人工智能·rnn·深度学习·学习·其他·大模型·infinitensor
PHOSKEY1 天前
光子精密闪测仪检测机器人谐波减速器部件,赋予AI执行柔顺运动
人工智能·机器人
WJSKad12351 天前
ECA瓶颈改进YOLOv26通道注意力与残差学习深度融合突破
深度学习·学习·yolo
咕噜咪1 天前
OpenLayers 入门教程:从零开始学习Web地图开发
前端·学习
cd11840511 天前
AutoCAD Electrical 2020学习笔记
笔记·学习
ADHD多动联盟1 天前
当孩子上课小动作多,如何有效改善学习困难?
学习·学习方法·玩游戏