美文网首页
ROS 从新开始3D仿真四轮小车和导航运动 一

ROS 从新开始3D仿真四轮小车和导航运动 一

作者: 打出了枫采 | 来源:发表于2019-04-21 11:20 被阅读0次

    Linux环境:

    Vmware 虚拟机安装 Ubuntu 12.04 (4GB/40GB以上)
    :最新版本的Vmware 虚拟机支持快速配置虚拟机,安装很方便

    ROS安装参考:

    (书中第一章有介绍,也可上ROSWiki上查阅)
    执行如下命令即可,update下载需要约一个小时,下载完后执行安装
    sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu precise main" > /etc/apt/sources.list.d/ros-latest.list'

    wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
    sudo apt-get update
    sudo apt-get install ros-hydro-desktop-full
    sudo rosdep init
    rosdep update
    echo "source /opt/ros/hydro/setup.bash" >> ~/.bashrc
    source ~/.bashrc

    小车3D模型创建

    ROS开发 workpace初始化
    按步骤执行以下命令即可
    cd ~;mkdir dev;cd dev --- 在个人目录下创建dev目录,后续所有开发都在此目录下
    mkdir -p testCarBot/src --- 创建workspace,根目录为 TestCarBot,初始化必须要有src子目录,下一步才能执行
    cd testCarBot/src; catkin_init_workspace

    myCar pkg创建
    catkin_create_pkg myCar --- 包创建,会生成myCar包目录
    cd myCar;mkdir launch;mkdir urdf --- myCar包目录下创建launch以及urdf子目录,用于存放后续文件

    小车模型urdf
    urdf目录下创建mycar.urdf文件
    执行cd urdf;vim mycar.urdf然后将下面内容拷贝,保存

    <robot name="Robot1">
        <link name="base_link">
            <visual>
                <geometry>
                    <box size="0.2 .3 .1"/>
                </geometry>
                <origin rpy="0 0 0" xyz="0 0 0.05"/>
                <material name="white">
                    <color rgba="1 1 1 1"/>
                </material>
            </visual>
        </link>
        <link name="wheel_1">
            <visual>
                <geometry>
                    <cylinder length="0.05" radius="0.05"/>
                </geometry>
                <origin rpy="0 1.5 0" xyz="0.1 0.1 0"/>
                <material name="black">
                    <color rgba="0 0 0 1"/>
                </material>
            </visual>
        </link>
        <link name="wheel_2">
            <visual>
                <geometry>
                    <cylinder length="0.05" radius="0.05"/>
                </geometry>
                <origin rpy="0 1.5 0" xyz="-0.1 0.1 0"/>
                <material name="black"/>
            </visual>
        </link>
        <link name="wheel_3">
            <visual>
                <geometry>
                    <cylinder length="0.05" radius="0.05"/>
                </geometry>
                <origin rpy="0 1.5 0" xyz="0.1 -0.1 0"/>
                <material name="black"/>
            </visual>
        </link>
        <link name="wheel_4">
            <visual>
                <geometry>
                    <cylinder length="0.05" radius="0.05"/>
                </geometry>
                <origin rpy="0 1.5 0" xyz="-0.1 -0.1 0"/>
                <material name="black"/>
            </visual>
        </link>
        <joint name="base_to_wheel1" type="fixed">
            <parent link="base_link"/>
            <child link="wheel_1"/>
            <origin xyz="0 0 0"/>
        </joint>
        <joint name="base_to_wheel2" type="fixed">
            <parent link="base_link"/>
            <child link="wheel_2"/>
            <origin xyz="0 0 0"/>
        </joint>
        <joint name="base_to_wheel3" type="fixed">
            <parent link="base_link"/>
            <child link="wheel_3"/>
            <origin xyz="0 0 0"/>
        </joint>
        <joint name="base_to_wheel4" type="fixed">
            <parent link="base_link"/>
            <child link="wheel_4"/>
            <origin xyz="0 0 0"/>
        </joint>
    </robot>
    

    小车模型显示准备
    在launch子目录下创建display.launch文件
    cd ..\launch;vim display.launch 然后拷贝下面内容并保存

    <?xml version="1.0"?>
    <launch>
        <arg name="model" />
        <arg name="gui" default="False" />
        <param name="robot_description" textfile="$(arg model)" />
        <param name="use_gui" value="$(arg gui)" />
        <node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" />
        <node name="robot_state_publisher" pkg="robot_state_publisher" type="state_publisher" />
    </launch>
    

    生成小车ROS包
    cd ~/dev/testCarBot;catkin_make --- 切换到工作空间根目录,执行包生成命令
    source ~/dev/testCarBot/devel/setup.sh --- 包环境变量加载
    sudo sh -c 'echo "source ~/dev/testCarBot/devel/setup.sh" >> ~/.bashrc' --- 保证新启动的shell中自动加载自定义包环境变量,ros相关命令能关联该包

    3D显示

    roslaunch myCar display.launch model:="`rospack find myCar`/urdf/mycar.urdf"
    

    上述命令执行后,在另一个shell中执行以下命令进行显示
    rosrun rqt_rviz rqt_rviz

    一切正常,则会启动rviz如下 image.png 点击左下角 Add,选择Robert Model image.png 显示如下,有许多error,车轮颜色也不对 image.png
    是因为Fixed Frame未知,将Fixed Frame 选项改成 base_link,即可修复 image.png
    3D小车模型最终正确显示(有拖拽) image.png

    后续会更新如何做简易运动控制与自动导航

    相关文章

      网友评论

          本文标题:ROS 从新开始3D仿真四轮小车和导航运动 一

          本文链接:https://www.haomeiwen.com/subject/isedgqtx.html