ROS学习-9 创建自己的机器人urdf文件+踩过的坑

步骤:

序号要做什么备注
1创建功能包XXX_description,依赖urdf 和 xacrodescription是约定俗成的
2创建urdf文件夹放urdf模型文件
创建config文件夹放rviz的配置文件
创建launch文件夹放launch文件
创建meshes文件夹放外观纹理文件
3编写urdf文件,launch文件urdf文件中千万不要写中文注释,千万别写(别问,问就是掉光头发)

只有左轮的小车

<?xml version="1.0"?>
<robot name="mbot"  >
       
    <link name="base_link">
         <visual>
            <origin xyz="0 0 0" rpy="0 0 0" />    
            <geometry>
                <cylinder length="0.16" radius="0.2"/>
            </geometry>
            <material name="yellow">
                <color rgba="1 0.4 0 0.5"/>
            </material>
         </visual>
    </link>

    <joint name="left_wheel_joint" type="continuous">
        <origin xyz="0 0.25 -0.05" rpy="0 0 0"/>
        <parent link="base_link"/>
        <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.06" length = "0.025"/>
            </geometry>
            <material name="white">
                <color rgba="1 1 1 0.9"/>
            </material>
        </visual>
    </link>

</robot>

launch:

gui

joint_state_publisher

robot_state_publisher

rviz

是固定套路

其中args="-d $(find mbot_description)/config/my_first_urdf.rviz" 你先运行rviz之后添加RobotModel 和tf之后保存成这个名字,下次运行launch文件的时候因为有rviz 的args 所以以前添加的东西都会自动出来,不用每次在去添加。

<launch>
    <!--参数标签 参数的内容是后面的路径 -->
    <param name="robot_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="robot_state_publisher" />

    <!--运行rviz可视化界面 -->
    <node name="rviz" pkg="rviz" type="rviz" args="-d $(find mbot_description)/config/my_first_urdf.rviz" required="true" />

</launch>  

第一次进入rviz之后添加tf和RobotModel

注意 进入rviz之后 fixed frame 改成base_link

报错:no transform from [left_back_wheel] to [base_link]

使用下面指令:

check_urdf *.urdf

查看urdf文件没有问题。

这样是没问题的

如果不行的话看看urdf文件

<?xml version="1.0"?> 这一行很容易出错

ROS问题:no transform from [left_back_wheel] to [base_link]_Linux系统教程_红联Linux门户

另外urdf文件千万别有中文注释

否则

[joint_state_publisher-2] process has died [pid 21605, exit code 1, cmd /opt/ros/melodic/lib/joint_state_publisher/joint_state_publisher __name:=joint_state_publisher __log:=/home/xrh/.ros/log/37a76746-9905-11ec-ad84-4c77cb5faca3/joint_state_publisher-2.log].
log file: /home/xrh/.ros/log/37a76746-9905-11ec-ad84-4c77cb5faca3/joint_state_publisher-2*.log

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值