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

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>

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>

注意,若是模型文件为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)" /> 

4.启动launch文件

在launch文件夹下打开终端

roslaunch display_car.launch

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

5.选择fixed frame选项

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

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

其基本思想为:

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

7.注意事项

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

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
好的,以下是在ROS使用RViz打开urdf文件模型的具体详细步骤: 1. 首先,确保你已经安装了ROSRViz,并且已经成功创建了一个ROS工作空间。 2. 在你的ROS工作空间创建一个新的包,用于存放你的URDF文件和RViz配置文件。可以使用以下命令创建一个新的包: ``` catkin_create_pkg my_robot_description urdf rviz ``` 3. 在urdf文件夹创建一个新的URDF文件,命名为my_robot.urdf,将你的机器人模型描述放在这个文件。 4. 编写一个launch文件,用于启动RViz并加载你的机器人模型。创建一个名为my_robot_rviz.launch的文件,并将以下内容复制粘贴到文件: ``` <launch> <!-- Start RViz --> <node name="rviz" pkg="rviz" type="rviz" args="-d $(find my_robot_description)/rviz/my_robot.rviz"/> <!-- Load URDF into parameter server --> <param name="robot_description" command="$(find xacro)/xacro --inorder '$(find my_robot_description)/urdf/my_robot.urdf'"/> <!-- Start robot_state_publisher --> <node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher"/> </launch> ``` 5. 在rviz文件夹创建一个名为my_robot.rvizRViz配置文件,用于配置RViz显示。在这个文件,你可以设置机器人的颜色、材质、关节控制器等信息。 6. 打开一个终端窗口,运行以下命令启动RViz: ``` roslaunch my_robot_description my_robot_rviz.launch ``` 7. RViz将启动并加载你的机器人模型。你可以通过拖动、缩放、旋转等方式来查看和操作机器人模型。 希望这些步骤能够帮助你成功地在RViz打开你的URDF文件模型

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

求知小菜鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值