• 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
    相信坚持的力量!
  • 相关阅读:
    Luogu P1020 导弹拦截
    洛谷 p1196 带权并查集
    gradle 语法基础
    Codeforces Round #542 div.2 C
    我了解的字符编码
    洛谷p3374 树状数组1
    树状数组2
    线段树模板 求区间和, 区间加法,乘法更新
    洛谷 p1886 滑动窗口
    HDOJ.1251
  • 原文地址:https://www.cnblogs.com/duijinglianxinduijingxiuxing/p/6716339.html
Copyright © 2020-2023  润新知