教程 | 阿克曼结构移动机器⼈的gazebo仿真(四)

第四章、手撸阿克曼小车URDF代码

01前言

上节说到通过twist消息控制从solidworks导出的阿克曼小⻋,但后续的开发⼯作中发现了从SW导出的模型做仿真有⼀些弊端,导致仿真的效果并不理想,所以博主准备⼿写⼀个urdf代码,并通过模型替代法来实现tianracer的仿真,本次写的urdf⽂件是基于tianracer小⻋1:1⽐例来编写的,⽅便后续的模型替换⼯作。

02创建小车功能包

在⼯作空间内创建racebot_description功能包:

catkin_create_pkg racebot_description roscpp rospy std_msgs

在该⼯作空间下创建config、launch、rviz_config、scripts、urdf等⽂件夹,此时准备⼯作已经做完。

03配置创建环境

我们需要创建⼀个URDF⽂件与能让模型在rviz中显⽰的launch⽂件,⽅便我们创造模型。以创建小⻋base_link模型为例:

在urdf⽂件夹中创建racebot.urdf⽂件,⾸先创建base_link,由于根link不能包含碰撞属性,否则gazebo仿真中会报错,所以我们将base_footprint作为根link,并且将base_footprint设置为小⻋贴到地⾯的位置,由于该小⻋是1:1仿真tianracer的,所以base_link在base_footprint正上⽅32mm处,如下代码所⽰:

<?xml version="1.0" encoding="utf-8"?>
<robot name="racebot">
    <link name="base_footprint">
    </link>
    <link name="base_link">
        <visual>
            <geometry>
                <box size="0.28 0.1 0.03"/>        
            </geometry>
            <origin xyz="0 0 0" rpy="0 0 0" />
            <material name="yellow">
                <color rgba="0.8 0.3 0.1 0.5" />
            </material>
        </visual>
        <collision>
            <geometry>
                <box size="0.28 0.1 0.03" />
            </geometry>
            <origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
        </collision>
    </link>
    <joint name="base_link_joint" type="fixed">
        <parent link="base_footprint" />
        <child link="base_link"/>
        <origin xyz="0 0 0.032" rpy="0 0 0" />
    </joint>
</robot>

接着在launch⽂件夹中创建⼀个可以将小⻋模型在rviz中显⽰的launch⽂件racebot_rviz.launch,并且能够加载上述urdf⽂件:

<?xml version="1.0" encoding="UTF-8"?>
<launch>
    <!-- 将 urdf 文件内容设置进参数服务器 -->
    <param name="robot_description" textfile="$(find racebot_description)/urdf/racebot.urdf" />
    <!-- 启动 rivz -->
    <!-- <node pkg="rviz" type="rviz" name="rviz_test" args="-d $(find racebot_description)/config/racebot.rviz" /> -->
    <node pkg="rviz" type="rviz" name="rviz" args="" /> 
    <!-- 启动机器人状态和关节状态发布节点 -->
    <node pkg="robot_state_publisher" type="robot_state_publisher" name="robot_state_publisher" />
    <node pkg="joint_state_publisher" type="joint_state_publisher" name="joint_state_publisher" />
    <!-- 启动图形化的控制关节运动节
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值