使用urdf创建机器人模型,并在rviz中显示

实现中参考啦这篇博客:https://blog.csdn.net/qq_26565435/article/details/8820646

感谢开源的力量。

 

第一步,新建一个功能包:

catkin_create_pkg mrobot_description urdf xacro

第二步,在功能包mrobot_description 里面新建4个文件夹,命名为urdf,meshes,launch,config

第三步,在urdf文件夹里面新建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>

 

第四步:使用check_urdf mrobot_chassis.urdf 命令检查模型,以下为没有错误时候到输出:

robot name is: mrobot_chassis

---------- Successfully Parsed XML ---------------

root Link: base_link has 3 child(ren)

child(1): left_motor

child(1): left_wheel_link

child(2): right_motor

child(1): right_wheel_link

child(3): front_caster_link

第五步:生成pdf文件,urdf_to_graphiz mrobot_chassis.urdf,使用evince命令查看pdf文件。

 

使用urdf创建机器人模型,并在rviz中显示

第六步:编写launch文件,命名为 dispaly_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>

 

第七步:编译和运行

cd ~/catkin_ws

catkin_make

source ./devel/setup.bash

roslaunch mrobot_description display_mrobot_chassis_urdf.launch

 

当打开之后,首先看到啦错误如下:

使用urdf创建机器人模型,并在rviz中显示
看到错误,是有个功能包没有安装,但是不影响打开到模型。如果看不到模型,把在Global Options中的Fixed Frame下拉菜单中选择base_link,点击Add选项,添加RobotModel,便可以成功显示啦。

使用urdf创建机器人模型,并在rviz中显示

 

因为上述没有功能包,使用命令安装:sudo apt-get install ros-kinetic-joint-state-publisher-gui

安装完成之后,再一次运行模型。可以看到右上角多了一个ui界面,可以控制*转动。

使用urdf创建机器人模型,并在rviz中显示