当前位置:   article > 正文

ros-rviz中显示urdf模型-再回炉强化(1)_vscode preview urdf怎么用

vscode preview urdf怎么用

ros-rviz中显示urdf模型-再回炉强化(1)

笔者运行工作环境
ubuntu16.04
ros-kinetic

1.在工作空间下创建功能包test_robot_xin

工作空间arm_ws文件夹的src文件夹下创建功能包test_robot_xin,因为机器人显示都是在功能包下运行,不能只是建立在src下的文件夹运行。
在这里插入图片描述

2.创建机器人的描述性文件urdf文件或者urdf.xacro文件

在功能包文件目录下创建urdf文件夹,里边存放机器人的描述性文件。
在这里插入图片描述
在这里插入图片描述
car_robot.urdf文件

<?xml version="1.0"?>
<robot name="robot1">     
    <link name="base_link">
           <visual>
                 <geometry>
                       <box size="0.2 .3 .1"/>
                 </geometry>
            <origin rpy="0 0 0" xyz="0 0 0.05"/>
            <material name="white">
                <color rgba="1 1 1 1"/>
            </material>
           </visual>     
     </link>

     <link name="wheel_1">
           <visual>
                 <geometry>
                       <cylinder length="0.05" radius="0.05"/>
                 </geometry>
            <origin rpy="0 1.5 0" xyz="0.1 0.1 0"/>
               <material name="black">
                <color rgba="0 0 0 1"/>
            </material>
        </visual>
     </link>

     <link name="wheel_2">
           <visual>
                 <geometry>
                       <cylinder length="0.05" radius="0.05"/>
                 </geometry>
            <origin rpy="0 1.5 0" xyz="-0.1 0.1 0"/>
               <material name="black"/>
           </visual>
     </link>

     <link name="wheel_3">
           <visual>
                 <geometry>
                       <cylinder length="0.05" radius="0.05"/>
                 </geometry>
            <origin rpy="0 1.5 0" xyz="0.1 -0.1 0"/>
               <material name="black"/>
           </visual>
     </link>

     <link name="wheel_4">
           <visual>
                 <geometry>
                       <cylinder length="0.05" radius="0.05"/>
                 </geometry>
            <origin rpy="0 1.5 0" xyz="-0.1 -0.1 0"/>
               <material name="black"/>
           </visual>
     </link>

     <joint name="base_to_wheel1" type="fixed">
           <parent link="base_link"/>
           <child link="wheel_1"/>
           <origin xyz="0 0 0"/>
     </joint>

     <joint name="base_to_wheel2" type="fixed">
           <parent link="base_link"/>
           <child link="wheel_2"/>
           <origin xyz="0 0 0"/>
     </joint>

     <joint name="base_to_wheel3" type="fixed">
           <parent link="base_link"/>
           <child link="wheel_3"/>
           <origin xyz="0 0 0"/>
     </joint>

     <joint name="base_to_wheel4" type="fixed">
           <parent link="base_link"/>
           <child link="wheel_4"/>
           <origin xyz="0 0 0"/>
     </joint>
</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

3.创建机器人的启动文件launch文件

在功能包的文件目录下创建launch文件夹,在launch文件夹下创建launch启动文件。
在这里插入图片描述
在这里插入图片描述
display_car.launch

<?xml version="1.0"?>
<launch>
	<arg name="model" />
	<arg name="gui" default="False" />
	<param name="robot_description" textfile="$(find test_robot_xin)/urdf/car_robot.urdf" />
	<param name="use_gui" value="$(arg gui)"/>
	<node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" ></node>
	<node name="robot_state_publisher" pkg="robot_state_publisher" type="state_publisher" />
	<node name="rviz" pkg="rviz" type="rviz" args="-d $(find test_robot_xin)/urdf.rviz" />
</launch>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

注意,若是模型文件为urdf.xacro,需要将launch文件加一句代码,否则无法识别出xacro文件,或者将xacro通过命令rosrun xacro xacro.py mrobot.urdf.xacro > mrobot.urdf转换为urdf文件。在gazebo中也是如此。

    <arg name="limited" default="false" doc="If true, limits joint range [-PI, PI] on all joints." />
    <arg name="transmission_hw_interface" default="hardware_interface/PositionJointInterface" />

    <param unless="$(arg limited)" name="robot_description" command="$(find xacro)/xacro --inorder '$(find ur3)/urdf/ur3_robot.urdf.xacro' transmission_hw_interface:=$(arg transmission_hw_interface)" />
    <param if="$(arg limited)" name="robot_description" command="$(find xacro)/xacro --inorder '$(find ur3)/urdf/ur3_joint_limited_robot.urdf.xacro' transmission_hw_interface:=$(arg transmission_hw_interface)" /> 
  • 1
  • 2
  • 3
  • 4
  • 5

4.启动launch文件

在launch文件夹下打开终端

roslaunch display_car.launch
  • 1

在这里插入图片描述
打开rviz时没有模型显示出来的,需要手动添加模型,点击左下角的add,添加robotmodel,可以看到模型显示出来了。
在这里插入图片描述
在这里插入图片描述

5.选择fixed frame选项

此时看到rviz中的左侧,还提示报错状态,是因为还没有选择小车固定架的位置,选择左侧的fixed frame选项中,下拉菜单,选择whlee,此时小车不在报错了。
在这里插入图片描述

6.在此基础上就可以进行moveit,生成description文件,然后可以进行运动控制了

其基本思想为:

第一步:编写urdf文件(此文件可以时sw插件直接生成)
第二步:将模型文件 显示在rviz中
第三步:借助moveit_assistant生成description文件,利用moveit进行规划控制

7.注意事项

首先一定在工作空间的功能包环境下完成这些工作。
其次需要创建的代码以及功能包的命名需要一致,不然容易出问题,这些需要自己感受才能体会出出来。

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

闽ICP备14008679号