(二)基于虚拟机ubuntu18的机器人系统仿真(rviz、urdf、xacro)-机器人

描述:创建一个四轮圆柱状机器人模型,机器人参数如下,底盘为圆柱状,半径 10cm(可自定义),高 8cm(可自定义),四轮由两个驱动轮和两个万向支撑轮组成,两个驱动轮半径为 3.25cm(可自定义),轮胎宽度1.5cm(可自定义),两个万向轮为球状,半径 0.75cm(可自定义),底盘离地间距为 1.5cm(与万向轮直径一致-根据自己定义即可)

效果如下:

步骤实现

  1. 新建 urdf (demo_02.urdf)文件,并与 launch (demo_02.launch)文件集成

  2. 搭建底盘

  3. 在底盘上添加两个驱动轮

  4. 在底盘上添加两个万向轮

步骤一:新建功能包,导入依赖,创建相应的文件

1.mkdir -p urdf_rviz/src
2.cd urdf_rviz/src
3.catkin_create_pkg urdf_rviz urdf xacro
4.cd urdf_rviz/src/urdf_rviz
    4.1 mkdir urdf  //存储 urdf 文件的目录
    4.2 mkdir meshes //机器人模型渲染文件
    4.3 mkdir config //配置文件
    4.4 mkdir launch //存储 launch 启动文件

步骤二:创建urdf文件

1.cd urdf文件下
    1.1 mkdir urdf
    1.2 mkdir xacro
2.cd 1.1的urdf文件下:
    touch demo_02.urdf //新建.urdf文件
    

2.1基本框架(在demo_02.urdf文件中编辑)

<robot name="mycar">
    <!-- 设置 base_footprint  -->
    <link name="base_footprint">
        <visual>
            <geometry>
                <sphere radius="0.001" />
            </geometry>
        </visual>
    </link>
</robot>

2.2底盘搭建(在demo_02.urdf文件中编辑)

<!-- 
        参数
            形状:圆柱 
            半径:10     cm 
            高度:8      cm 
            离地:1.5    cm

    -->
    <link name="base_link">
        <visual>
            <geometry>
                <cylinder radius="0.1" length="0.08" />
            </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>
    </link>

    <joint name="base_link2base_footprint" type="fixed">
        <parent link="base_footprint" />
        <child link="base_link"/>
        <origin xyz="0 0 0.055" />
    </joint>

2.3添加驱动轮(在demo_02.urdf文件中编辑)

<!-- 添加驱动轮 -->
    <!--
        驱动轮是侧翻的圆柱
        参数
            半径: 3.25 cm
            宽度: 1.5  cm
            颜色: 黑色
        关节设置:
            x = 0
            y = 底盘的半径 + 轮胎宽度 / 2
            z = 离地间距 + 底盘长度 / 2 - 轮胎半径 = 1.5 + 4 - 3.25 = 2.25(cm)
            axis = 0 1 0
    -->
    <link name="left_wheel">
        <visual>
            <geometry>
                <cylinder radius="0.0325" length="0.015" />
            </geometry>
            <origin xyz="0 0 0" rpy="1.5705 0 0" />
            <material name="black">
                <color rgba="0.0 0.0 0.0 1.0" />
            </material>
        </visual>

    </link>

    <joint name="left_wheel2base_link" type="continuous">
        <parent link="base_link" />
        <child link="left_wheel" />
        <origin xyz="0 0.1 -0.0225" />
        <axis xyz="0 1 0" />
    </joint>


    <link name="right_wheel">
        <visual>
            <geometry>
                <cylinder radius="0.0325" length="0.015" />
            </geometry>
            <origin xyz="0 0 0" rpy="1.5705 0 0" />
            <material name="black">
                <color rgba="0.0 0.0 0.0 1.0" />
            </material>
        </visual>

    </link>

    <joint name="right_wheel2base_link" type="continuous">
        <parent link="base_link" />
        <child link="right_wheel" />
        <origin xyz="0 -0.1 -0.0225" />
        <axis xyz="0 1 0" />
    </joint>

2.4添加万向轮(在demo_02.urdf文件中编辑)

<!-- 添加万向轮(支撑轮) -->
    <!--
        参数
            形状: 球体
            半径: 0.75 cm
            颜色: 黑色

        关节设置:
            x = 自定义(底盘半径 - 万向轮半径) = 0.1 - 0.0075 = 0.0925(cm)
            y = 0
            z = 底盘长度 / 2 + 离地间距 / 2 = 0.08 / 2 + 0.015 / 2 = 0.0475 
            axis= 1 1 1

    -->
    <link name="front_wheel">
        <visual>
            <geometry>
                <sphere radius="0.0075" />
            </geometry>
            <origin xyz="0 0 0" rpy="0 0 0" />
            <material name="black">
                <color rgba="0.0 0.0 0.0 1.0" />
            </material>
        </visual>
    </link>

    <joint name="front_wheel2base_link" type="continuous">
        <parent link="base_link" />
        <child link="front_wheel" />
        <origin xyz="0.0925 0 -0.0475" />
        <axis xyz="1 1 1" />
    </joint>

    <link name="back_wheel">
        <visual>
            <geometry>
                <sphere radius="0.0075" />
            </geometry>
            <origin xyz="0 0 0" rpy="0 0 0" />
            <material name="black">
                <color rgba="0.0 0.0 0.0 1.0" />
            </material>
        </visual>
    </link>

    <joint name="back_wheel2base_link" type="continuous">
        <parent link="base_link" />
        <child link="back_wheel" />
        <origin xyz="-0.0925 0 -0.0475" />
        <axis xyz="1 1 1" />
    </joint>

步骤三:创建launch文件(demo_02.launch)

在launch文件夹下创建demo_02.launch
1.touch demo_02.launch
2.编写touch demo_02.launch内容
<launch>
    <!-- 将 urdf 文件内容设置进参数服务器 -->
    <param name="robot_description" textfile="$(find urdf_rviz)/urdf/urdf/demo_02.urdf" />

    <!-- 启动 rivz -->
     <node pkg="rviz" type="rviz" name="rviz" />
    <!--node pkg="rviz" type="rviz" name="rviz_test" args="-d $(find urdf_rviz)/config/my_car.rviz" /-->

    <!-- 启动机器人状态和关节状态发布节点 -->
    <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" />

    <!-- 启动图形化的控制关节运动节点 -->
    <!--node pkg="joint_state_publisher_gui" type="joint_state_publisher_gui" name="joint_state_publisher_gui" /-->

</launch>

步骤四:

4.1编译功能包

在urdf文件下:
    catkin_make

4.2运行

roslaunch urdf_rviz demo_02.urdf

步骤五:rviz显示

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

步骤刘:rviz显示优化

重复启动launch文件时,Rviz 之前的组件配置信息不会自动保存,需要重复执行步骤五的操作,为了方便使用,可以使用如下方式优化:

保存至config文件下,命名:my_car.rviz。在demo_2.launch文件中添加:

<node pkg="rviz" type="rviz" name="rviz_test" args="-d $(find urdf_rviz)/config/my_car.rviz" />

再启动时,就可以包含之前的组件配置了,使用更方便快捷。

  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是基于虚拟机Ubuntu系统安装Ubuntu系统的步骤: 1.首先,你需要下载Ubuntu镜像文件。你可以在Ubuntu官方网站上下载最新版本的Ubuntu镜像文件。下载完成后,将其存放在你的计算机中。 2.启动VMware软件,点击“新建虚拟机”按钮。 3.在虚拟机创建向导中,选择“典型(推荐)”安装选项。 4.在“选择安装媒介”选项中,选择“使用ISO映像文件”选项,并浏览到你下载的Ubuntu镜像文件所在的位置。 5.在“选择操作系统”选项中,选择“Linux”作为操作系统,并选择“Ubuntu”作为版本。 6.在“虚拟机名称和位置”选项中,输入你希望虚拟机的名称,并选择一个存放虚拟机文件的位置。 7.在“虚拟处理器”选项中,选择一个合适的处理器配置。 8.在“内存”选项中,选择一个合适的内存容量。 9.在“网络类型”选项中,选择“桥接网络”或者“NAT”网络。 10.在“磁盘容量”选项中,选择一个合适的磁盘容量。 11.在“完成虚拟机向导”选项中,点击“完成”按钮。 12.启动虚拟机,并按照Ubuntu的安装向导进行安装。 13.在Ubuntu的安装向导中,选择你希望安装Ubuntu的语言,并点击“继续”按钮。 14.在“安装类型”选项中,选择“安装Ubuntu”并点击“继续”按钮。 15.在“安装过程”选项中,选择你的时区,并设置键盘布局。 16.在“用户信息”选项中,输入你的用户名和计算机名称,并设置一个密码。 17.在“安装程序”选项中,等待Ubuntu系统的安装过程完成。 18.安装完成后,重启虚拟机,你就可以在基于虚拟机Ubuntu系统中使用Ubuntu系统了。 这样,你就可以在基于虚拟机Ubuntu系统中安装Ubuntu系统了。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值