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

本文详细介绍了在ROS环境下使用RVIZ显示URDF模型的步骤,包括创建功能包、编写URDF文件、设置launch文件及启动过程。通过实践操作,读者可学会如何在RVIZ中正确显示机器人模型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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.注意事项

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

### 配置和使用 UR5 机械臂 要在 RViz 和 Gazebo 中成功配置和使用 UR5 机械臂,需要完成一系列设置步骤。以下是详细的说明: #### 1. 安装必要的 ROS 包 为了支持 UR5 的仿真功能,必须先安装相关的 ROS 包。这些包通常包括 `universal_robot` 套件以及一些控制器插件。 - 使用以下命令来安装核心套件: ```bash sudo apt-get install ros-noetic-universal-robot ``` - 如果尚未安装所需的控制器插件,则可以通过以下命令安装它们[^2]: ```bash sudo apt-get install ros-noetic-effort-controllers sudo apt-get install ros-noetic-joint-trajectory-controller sudo apt-get install ros-noetic-trac-ik-kinematics-plugin ``` #### 2. 下载并加载 URDF 文件 UR5 的运动学描述由其 `.urdf` 文件定义。可以从官方资源库或其他可信来源获取该文件[^1]。如果已经克隆了 `universal_robot` 库,则可以直接找到对应的 `.xacro` 文件(扩展版的 `.urdf`),它位于路径 `/path/to/universal_robot/ur_description/urdf/`. 要生成最终的 `.urdf` 文件,可以运行如下命令: ```bash roslaunch ur_gazebo ur5.launch ``` 此启动脚本会自动解析 `.xacro` 并将其转换为可用的 `.urdf` 格式。 #### 3. 启动 Gazebo 环境 Gazebo 是用于物理仿真的工具,在其中可以模拟 UR5 的行为及其与其他传感器设备(如 Realsense 或 Aruco)的交互[^1]。执行以下命令以启动带有 UR5 的 Gazebo 场景: ```bash roslaunch ur_gazebo ur5_no_gui.launch ``` 这将在无图形界面的情况下初始化机器人模型。如果有需求展示 GUI 则可替换为其他带可视化选项的 launch 文件。 #### 4. 设置 RViz 可视化 RViz 提供了一个强大的三维场景查看器,允许观察者实时监控机器人的状态变化。确保已正确发布 TF 数据流以便于渲染关节位置信息[^2]。 创建一个新的 RViz 实例并通过添加相应组件来进行调试: ```bash rosrun rviz rviz -d $(rospack find ur_bringup)/rviz/ur.rviz ``` 上述命令将加载预设好的配置文件,其中包括固定框架的选择、相机视角调整以及其他必要参数设定。 #### 5. 整合 MoveIt! 进行规划控制 MoveIt! 是一款高级移动操作软件框架,能够实现复杂的轨迹规划任务。对于 UR5 来说,集成过程相对简单直截了当[^2]: - 克隆仓库到工作空间目录下; - 构建项目依赖关系; - 执行特定的 move_group 测试节点验证基本动作序列可行性。 最后一步可通过下面这条指令达成目标效果演示目的: ```bash roslaunch ur_moveit_config demo.launch sim:=true ``` --- ### 注意事项 在整个过程中可能会遇到各种各样的挑战比如缺少某些关键模块或者版本冲突等问题都需要逐一排查解决才能顺利完成整个流程。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

求知小菜鸟

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

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

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

打赏作者

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

抵扣说明:

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

余额充值