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>
相关推荐
学编程的闹钟10 小时前
95【给图片添加跳转链接】
学习
听麟10 小时前
HarmonyOS 6.0+ PC端虚拟仿真训练系统开发实战:3D引擎集成与交互联动落地
笔记·深度学习·3d·华为·交互·harmonyos
9呀10 小时前
【ros2】OccupancyGrid消息里的resolution
人工智能·机器人
EnglishJun10 小时前
Linux系统编程(二)---学习Linux系统函数
linux·运维·学习
im_AMBER10 小时前
Leetcode 115 分割链表 | 随机链表的复制
数据结构·学习·算法·leetcode
熵减纪元10 小时前
人形机器人周末炸场:Atlas后空翻回归、宇树零下47度暴走、中国Bolt跑出10m/s | 2.8日报
人工智能·机器人·人形机器人
一个人旅程~10 小时前
我存在吗?你存在吗?
笔记·程序人生·电脑·ai写作
xqqxqxxq10 小时前
Java IO 核心:BufferedReader/BufferedWriter & PrintStream/PrintWriter 技术笔记
java·笔记·php
硅谷秋水10 小时前
REALM:用于机器人操作泛化能力的真实-仿真验证基准测试
人工智能·机器学习·计算机视觉·语言模型·机器人
小陶的学习笔记11 小时前
python~基础
开发语言·python·学习