URDF机器人建模第一天

URDF文件是机器人模型描述格式,一个完整的机器人模型是由一系列link和joint组成。

建模过程:

  1. 创建机器人功能包mbot_description,以及依赖文件urdf和xacro,

~/catkin_ws/src$ catkin_create_pkg mbot_description urdf xacro

cd   ~/catkin_ws/

catkin_make   #编译

source devel/setup.bash  #设置环境变量

  1. 创建新文件夹:

urdf:存放机器人模型的URDF文件或xacro文件;

config:保存rviz配置文件;并在rviz文件夹下放置rviz的配置文件mbot_urdf.rviz;

launch:保存相关启动文件;

meshes:放置URDF中引用的模型渲染文件。

  1. 在mbot_base.urdf文件中使用一系列link和joint对机器人外形进行描述,依次加入车体、车轮、激光雷达、kinect等部件。

<?xml version="1.0" ?>

<robot name="mbot_base">

    <link name="base_link">

        <visual>

            <origin xyz=" 0 0 0" rpy="0 0 0" />

            <geometry>

                <cylinder length="0.16" radius="0.20"/>

            </geometry>

            <material name="yellow">

                <color rgba="1 0.4 0 1"/>

            </material>

        </visual>

    </link>

</robot>

安装命令:sudo apt-get install liburdfom-tools

检查模型~check_urdf mbot_base.urdf(在urdf文件下打开终端)

编译后进行验证,并用urdf_to_graphiz mbot_base.urdf生成pdf文件,可以看到模型的整体结构图。

  1. 编写launch文件,调用mbot_base.urdf文件,

<launch>

<param name="mbot_description" textfile="$(find mbot_description)/urdf/mbot_base.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>

运行~roslaunch mbot_description display_mbot_base_urdf.launch

出错:模型没有出来

参考博文http://lijianxun.cn/2019/12/179

2、xacro优化urdf模型

(1)xacro文件优势:

精简模型代码:创建宏定义、文件包含

提供可编程接口:常量、变量、数学计算、条件语句

(2)xacro模型显示方法

方法一:将xacro文件转换成urdf文件后显示

命令:rosrun xacro xacro.py mbot.xacro > mbot.urdf

方法二:直接调用xacro文件解析器

在launch文件中加入

<arg name= "model" default="$(find xacro)/xacro --inorder'$(find mbot_description)/

urdf/xacro/mbot.xacro'"/>

         <param name="robot_description" command="$(arg model)"/>

3、配置Arbotix控制器

(1)创建launch文件

在launch文件中, 加入Arbotix和要调用的文件。

(2)创建配置文件

controllers{

//加入你要控制的信息

}

(3)启动仿真器

4、Gazebo物理仿真环境搭建

(1)在xacro文件中为所有的joint和link添加惯性属性(collision)和矩阵参数(cylinder)

(2)为link添加gazebo标签

(3)为joint添加传动装置(transmission)

(4)添加Gazebo控制器插件(plugin)

5、rosbag 数据记录与回放

(1)首先启动例程所有节点:

roscore

rosrun turtlelesim turtlelesim_node

rosrun turtlelesim turtle_teleop_key

(2)查看ROS系统中到底存在哪些话题:

rostopic list -v

(3)打包文件到指定文件夹:

mkdir ~/bagfiles

cd ~/bagfiles

rosbag record -a

产生一个以时间命名的.bag为后缀的文件,就产生了数据记录文件。

(4)回放数据,查看数据记录文件的详细信息:

rosbag info

(5) 回放记录的话题数据:

rosbag play

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值