• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

ros机器人编程实践(16.1)- 仿真SmartCar之搭建模型

人工智能 布剪刀石头 1464次浏览 0个评论

前言

之前用turtlebot仿真过巡线机器人,但是turtlebot略显笨重,为了纪念下本科参加的飞思卡尔,尝试着做一套ROS的仿真SmartCar。

创建工作空间

创建工作目录,工作空间为SmartCar_ws,资源文件夹src

mkdir -p ~/SmartCar_ws/src

  初始化工作空间  

cd ~/SmartCar_ws/src
catkin_init_workspace 

 

创建SmartCar代码包

创建SmartCar包

cd ~/SmartCar_ws/src
catkin_create_pkg smartcar rospy geometry_msgs

 

创建智能车模型描述文件

创建智能车模型描述文件夹smartcar_description

cd ~/SmartCar_ws/src
roscreate-pkg smartcar_description urdf

  在模型描述文件夹下创建智能车的描述文件SmartCar.urdf

cd ~/SmartCar_ws/src/smartcar_description
mkdir urdf
cd ~/SmartCar_ws/src/smartcar_description/urdf
sudo gedit SmartCar.urdf

  贴上下列代码:

<?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 .5 .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>

  这个模型描述不是重点,不详细讲含义,想了解含义可以手动修改里面的参数看看形状变化即可知道。建立的模型样子如下图:   ros机器人编程实践(16.1)- 仿真SmartCar之搭建模型   创建描述文件的launch文件夹   cd ~/SmartCar_ws/src/smartcar_description mkdir launch cd ~/SmartCar_ws/src/smartcar_description/launch sudo gedit base.urdf.rviz.launch  

编译工程

编译

cd ~/SmartCar_ws
catkin_make

  source环境变量

source ./devel/setup.bash

 

展示模型

运行launch文件

roslaunch smartcar_description base.urdf.rviz.launch

  运行成功自动打开rviz如图:   ros机器人编程实践(16.1)- 仿真SmartCar之搭建模型   点击左下角的Add添加我们想看的控件选择RobotModel点击OK:   ros机器人编程实践(16.1)- 仿真SmartCar之搭建模型   显示如下图:   ros机器人编程实践(16.1)- 仿真SmartCar之搭建模型  

修改配置

修改左侧一栏中Fixed Frame右边的选项框为   ros机器人编程实践(16.1)- 仿真SmartCar之搭建模型   展示如下图:   ros机器人编程实践(16.1)- 仿真SmartCar之搭建模型


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明ros机器人编程实践(16.1)- 仿真SmartCar之搭建模型
喜欢 (0)

您必须 登录 才能发表评论!

加载中……