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>
相关推荐
bitbrowser13 小时前
giffgaff突然停用?先分清闲置停用和长期境外断开
笔记
九硕智慧建筑一体化厂家14 小时前
数字化管控落地,直流照明构筑安全照明体系
运维·人工智能·笔记·安全·智慧城市
小席是个热心肠14 小时前
AI相关的自我学习
java·人工智能·学习
AI云海14 小时前
天幕红尘笔记
笔记
M-Robots echo16 小时前
安全机制架构解析:M-Robots 分层安全体系,筑牢机器人设备运行底座
机器人·ros·鸿蒙·开源社区·m-robots
何事误红尘16 小时前
Mqtt学习笔记(一):Mosquitto服务器搭建、MQTTX安装测试
学习
青山是哪个青山16 小时前
LangChain 学习笔记(三):LangSmith 调试与监控
笔记·学习·langchain
那年窗外下的雪.18 小时前
AIDC 学习日志 第 04 天 BGP Underlay 基础与路由选择
服务器·学习·php
蒸蒸yyyyzwd18 小时前
cpp选手备战后端学习笔记day6 秋招笔试题
笔记·学习
weixin_4462608520 小时前
AVA-Encoder:面向智能体原生视频表征学习框架
学习·音视频