ROS知识课堂-5.在Rviz中显示一个盒状机器人

URDF不能单独使用,需要结合Rviz或Gazebo,URDF只是一个文件,需要在Rviz或Gazebo中渲染成图形化的机器人模型,首先演示URDF与Rviz的集成使用。

实现流程:

1准备:新建功能包,导入依赖

创建一个新的功能包,名称自定义,导入依赖包:urdf与xacro

mkdir -p ~/mycar_ws/src

cd ~/mycar_ws/src

catkin_create_pkg mycar_des roscpp urdf tf rviz geometry_msgs xacro

在当前功能包下,再新建几个目录:

urdf: 存储 urdf文件的目录

meshes:机器人模型渲染文件(暂不使用)

config: 配置文件

launch: 存储launch启动文件

cd mycar_des

mkdir urdf meshes config launch rviz

2核心:编写urdf文件

新建一个子级文件夹:urdf(可选),

cd urdf

vim mycar.urdf

文件夹中添加一个mycar.urdf文件,复制如下内容:

<robot name="mycar">
    <link name="base_link">
        <visual>
            <geometry>
                <box size="0.5 0.2 0.1" />
            </geometry>
        </visual>
    </link>
</robot>


3核心:在launch文件集成URDF与Rviz

在launch目录下,新建一个launch文件,

cd launch

vim mycar.launch

该launch文件需要启动Rviz,并导入urdf文件,Rviz启动后可以自动载入解析urdf文件,并显示机器人模型,

核心问题:如何导入urdf文件? 

在ROS中,可以将urdf文件的路径设置到参数服务器,使用的参数名是:robot_description,示例代码如下:

<launch>
 
    <!-- 设置参数 -->
    <param name="robot_description" textfile="$(find mycar_des)/urdf/mycar.urdf" />
 
    <!-- 启动 rviz -->
    <node pkg="rviz" type="rviz" name="rviz" />
 
</launch>

编译

cd ~/mycar_ws/

catkin_make

运行launch文件

roslaunch mycar_des mycar.launch

4Rviz中显示机器人模型

rviz 启动后,会发现并没有盒状的机器人模型,这是因为默认情况下没有添加机器人显示组件,需要手动添加,添加方式如下:添加模型.jpg

Fixed Frame修改为base_link

添加模型2.png

设置完毕后,可以正常显示了

添加模型3.png

    关键词:ROS知识课堂