当前位置:   article > 正文

创建机器人urdf模型并在rviz中展示(利用roboware studio)_5)创建机器人的urdf文件,在rviz中显示并移动机器人。 详细记录移动机器人模型设计

5)创建机器人的urdf文件,在rviz中显示并移动机器人。 详细记录移动机器人模型设计

注:本文利用roboware studio工具建立urdf模型

创建机器人描述功能包

右键单击工作空间catkin_ws/src文件夹,点击新建ROS包,将功能包命名为mrobot_description,如下:
在这里插入图片描述
手动添加功能包依赖项,打开CMakeLists.txt文件,如图所示添加urdf、xacro
在这里插入图片描述
在功能包中新建四个文件夹,分别为
urdf:用于存放机器人模型的urdf或者xacro文件。
meshes:用于放置urdf中引用的模型渲染文件。
launch:用于保存相关启动文件。
config:用于保存rviz的配置文件。
在这里插入图片描述

创建机器人底盘描述文件mrobot_chassis.urdf

这个机器人底盘模型有7个link和6个joint。7个link包括1个机器人底板、2个电机、2个驱动轮和2个万向轮;6个joint负责将驱动轮、万向轮、电机安装在底板上,并设置相应的连接方式。
在mrobot_description/urdf文件夹下新建mrobot_chassis.urdf文件,如下:

<?xml version="1.0" ?>
<robot name="mrobot_chassis">

    <link name="base_link">
        <visual>
            <origin xyz=" 0 0 0" rpy="0 0 0" />
            <geometry>
                <cylinder length="0.005" radius="0.13"/>
            </geometry>
            <material name="yellow">
                <color rgba="1 0.4 0 1"/>
            </material>
        </visual>
    </link>

    <joint name="base_left_motor_joint" type="fixed">
        <origin xyz="-0.055 0.075 0" rpy="0 0 0" />        
        <parent link="base_link"/>
        <child link="left_motor" />
    </joint>

    <link name="left_motor">
        <visual>
            <origin xyz="0 0 0" rpy="1.5707 0 0" />
            <geometry>
                <cylinder radius="0.02" length = "0.08"/>
            </geometry>
            <material name="gray">
                <color rgba="0.75 0.75 0.75 1"/>
            </material>
        </visual>
    </link>

    <joint name="left_wheel_joint" type="continuous">
        <origin xyz="0 0.0485 0" rpy="0 0 0"/>
        <parent link="left_motor"/>
        <child link="left_wheel_link"/>
        <axis xyz="0 1 0"/>
    </joint>

    <link name="left_wheel_link">
        <visual>
            <origin xyz="0 0 0" rpy="1.5707 0 0" />
            <geometry>
                <cylinder radius="0.033" length = "0.017"/>
            </geometry>
            <material name="white">
                <color rgba="1 1 1 0.9"/>
            </material>
        </visual>
    </link>

    <joint name="base_right_motor_joint" type="fixed">
        <origin xyz="-0.055 -0.075 0" rpy="0 0 0" />        
        <parent link="base_link"/>
        <child link="right_motor" />
    </joint>

    <link name="right_motor">
        <visual>
            <origin xyz="0 0 0" rpy="1.5707 0 0" />
            <geometry>
                <cylinder radius="0.02" length = "0.08" />
            </geometry>
            <material name="gray">
                <color rgba="0.75 0.75 0.75 1"/>
            </material>
        </visual>
    </link>

    <joint name="right_wheel_joint" type="continuous">
        <origin xyz="0 -0.0485 0" rpy="0 0 0"/>
        <parent link="right_motor"/>
        <child link="right_wheel_link"/>
        <axis xyz="0 1 0"/>
    </joint>

    <link name="right_wheel_link">
        <visual>
            <origin xyz="0 0 0" rpy="1.5707 0 0" />
            <geometry>
                <cylinder radius="0.033" length = "0.017"/>
            </geometry>
            <material name="white">
                <color rgba="1 1 1 0.9"/>
            </material>
        </visual>
    </link>

    <joint name="front_caster_joint" type="fixed">
        <origin xyz="0.1135 0 -0.0165" rpy="0 0 0"/>
        <parent link="base_link"/>
        <child link="front_caster_link"/>
    </joint>

    <link name="front_caster_link">
        <visual>
            <origin xyz="0 0 0" rpy="1.5707 0 0"/>
            <geometry>
                <sphere radius="0.0165" />
            </geometry>
            <material name="black">
                <color rgba="0 0 0 0.95"/>
            </material>
        </visual>
    </link>

</robot>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108

在检查并解析新建的urdf文件之前,需要先对工作空间进行编译:

cd ~/catkin_ws
catkin_make
  • 1
  • 2

urdf提供了一些命令行工具,可以帮助我们检查、梳理模型文件,需要在终端进行独立安装,命令如下:
$ sudo apt-get install liburdfdom-tools
安装完成后,检查并解析上述新建的urdf文件的命令如下(注:在check_urdf命令之前,需要进入urdf所在文件夹):

cd ~/catkin_ws
source ./devel/setup.bash
cd
cd ~/catkin_ws/src/mrobot_description/urdf
check_urdf mrobot_chassis.urdf
  • 1
  • 2
  • 3
  • 4
  • 5

若一切正常,会出现如下信息
在这里插入图片描述

建立launch命令文件

在mrobot_description/launch文件夹下新建display_mrobot_chassis_urdf.launch文件,如下:

<launch>
	<param name="robot_description" textfile="$(find mrobot_description)/urdf/mrobot_chassis.urdf" />

	<!-- 设置GUI参数,显示关节控制插件 -->
	<param name="use_gui" value="true"/>
	
	<!-- 运行joint_state_publisher节点,发布机器人的关节状态  -->
	<node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" />
	
	<!-- 运行robot_state_publisher节点,发布tf  -->
	<node name="robot_state_publisher" pkg="robot_state_publisher" type="state_publisher" />
	
	<!-- 运行rviz可视化界面 -->
	<node name="rviz" pkg="rviz" type="rviz" args="-d $(find mrobot_description)/config/mrobot_urdf.rviz" required="true" />
</launch>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

在这里插入图片描述

在rviz中显示机器人底盘模型

打开ros,编译一下mrobot_description功能包,然后设置环境变量,运行launch文件,命令如下:
roscore

cd ~/catkin_ws
catkin_make
source ./devel/setup.bash
roslaunch mrobot_description display_mrobot_chassis_urdf.launch
  • 1
  • 2
  • 3
  • 4

运行成功后,显示如下。这里不仅启动了rviz,还出现了一个叫joint_state_publisher的UI,这是因为我们在启动文件中启动了joint_state_publisher节点,该节点可以发布每个joint(除了fixed)的状态,拖动控制条可以改变轮子的运动状态。
在这里插入图片描述
不过此时并没有出现模型,并且还有错误,修改如下:
在Global Options中的Fixed Frame下拉菜单中选择base_link,点击Add选项,添加RobotModel,如图
在这里插入图片描述
修改后如下
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/700196
推荐阅读
  

闽ICP备14008679号