ROS學習記錄(一)————創建簡單的機器人模型smartcar


     這是我在古月居上找的(http://www.guyuehome.com/243),但直接運行的話,沒辦法跑起來,我也是查了好多博客和日志,才實現最后的功能的,所以,記錄下來,以備后用吧,也歡迎其他和我一樣學習ROS的同學和我一塊兒討論交流。我采用的是易科機器人實驗室的ubuntu12.04-amd64-ros-exbot-h2-14052版本。我在網上找過好多教程,發現好多大牛日志都是純自己安裝的版本,不是發行版,所以,有用發行版的同志,可以參考我的。

下載地址是:

http://blog.exbot.net/archives/702 

里面都裝好了。言歸正傳,繼續:

step1創建硬件描述包

$ cd ~/catkin_ws/src
$catkin_create_pkg  smartcar_description  std_msgs rospy roscpp urdf 

step2 建立urdf,launch命令文件 

   step2.1建立urdf命令文件

              在 smartcar_description 文件夾下建立 urdf 文件夾,創建智能車的描述文件smartcar.urdf

$cd smartcar_description
$mkdir urdf
$cd urdf
$touch smartcar.urdf

              接下來打開新建的 smartcar_description文件夾下,再打開 urdf 文件夾里創建的描述文件smartcar.urdf然后把下面的代碼粘到里面。(這條不是在終端中進行的,而且像windows系統中打開“我的電腦”那樣,一步步打開文件夾)

<?xml version="1.0"?>
    <robot name="smartcar">


        <link name="base_link">
        <visual>

            <geometry>
                <box size="0.25 .16 .05"/>
            </geometry>

            <origin rpy="0 0 1.57075" xyz="0 0 0"/>
            <material name="blue">
                <color rgba="0 0 .8 1"/>
             </material>
        </visual>
        </link>
        
    <link name="right_front_wheel">

    <visual>
        
        <geometry>
            <cylinder length=".02" radius="0.025"/>
        </geometry>

         <material name="black">
            <color rgba="0 0 0 1"/>
        </material>

    </visual>
    </link>


    <joint name="right_front_wheel_joint" type="continuous">
    <axis xyz="0 0 1"/>
    <parent link="base_link"/>
    <child link="right_front_wheel"/>
    <origin rpy="0 1.57075 0" xyz="0.08 0.1 -0.03"/>
    <limit effort="100" velocity="100"/>
    <joint_properties damping="0.0" friction="0.0"/>
    </joint>

    <link name="right_back_wheel">
        <visual>
            <geometry>
                <cylinder length=".02" radius="0.025"/>
            </geometry>

            <material name="black">
                <color rgba="0 0 0 1"/>
            </material>
        </visual>
    </link>


    <joint name="right_back_wheel_joint" type="continuous">
        <axis xyz="0 0 1"/>
        <parent link="base_link"/>
        <child link="right_back_wheel"/>
        <origin rpy="0 1.57075 0" xyz="0.08 -0.1 -0.03"/>
        <limit effort="100" velocity="100"/>
    <joint_properties damping="0.0" friction="0.0"/>
    </joint>

    <link name="left_front_wheel">

        <visual>

            <geometry>
                <cylinder length=".02" radius="0.025"/>
            </geometry>
            <material name="black">
                <color rgba="0 0 0 1"/>
            </material>
        </visual>
    </link>


    <joint name="left_front_wheel_joint" type="continuous">
        <axis xyz="0 0 1"/>
        <parent link="base_link"/>
        <child link="left_front_wheel"/>
        <origin rpy="0 1.57075 0" xyz="-0.08 0.1 -0.03"/>
        <limit effort="100" velocity="100"/>

    <joint_properties damping="0.0" friction="0.0"/>
    </joint>



    <link name="left_back_wheel">
        <visual>

            <geometry>

            <cylinder length=".02" radius="0.025"/>
            </geometry>
            <material name="black">

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

            </material>
        </visual>
    </link>


    <joint name="left_back_wheel_joint" type="continuous">
        <axis xyz="0 0 1"/>
        <parent link="base_link"/>
        <child link="left_back_wheel"/>
        <origin rpy="0 1.57075 0" xyz="-0.08 -0.1 -0.03"/>
        <limit effort="100" velocity="100"/>
    <joint_properties damping="0.0" friction="0.0"/>
    </joint>

    <link name="head">
        <visual>
            <geometry>
                <box size=".02 .03 .03"/>
            </geometry>

            <material name="white">
                <color rgba="1 1 1 1"/>
            </material>
        </visual>
    </link>

    <joint name="tobox" type="fixed">
        <parent link="base_link"/>
        <child link="head"/>
    <origin xyz="0 0.08 0.025"/>
    </joint>
</robot>

                      step2.2建立launch文件

                                 在 smartcar_description 文件夾下建立 launch 文件夾,創建智能車的描述文件base.urdf.rviz.launch(和打開smartcar.urdf做法一樣)

base.urdf.rviz.launch,

先進行創建:

$cd ../smartcar_description
$mkdir launch
$cd launch
$touch base.urdf.rviz.launch

描述代碼如下,把這段代碼粘到新建的base.urdf.rviz.launch里面(和打開smartcar.urdf做法一樣):

<launch>
    <arg name="model"/>
    <arg name="gui" default="False"/>
    <param name="robot_description" textfile="$(find smartcar_description)/urdf/smartcar.urdf"/>
    <param name="use_gui" value="$(arg gui)"/>
    <node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher">
    </node>

    <node name="robot_state_publisher" pkg="robot_state_publisher" type="state_publisher"/>

    <node name="rviz" pkg="rviz" type="rviz" args="-d $(find urdf_tutorial)/urdf.rviz"/>
</launch>

step 3檢驗效果

在終端中輸入顯示命令:

$roslaunch smartcar_description base.urdf.rviz.launch

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM