Gazebo-Ros搭建小车和场景并运行slam算法进行建图1 -- 搭建机器人模型

Gazebo-Ros搭建小车和场景并运行slam算法进行建图1 – 搭建机器人模型

1.创建工作空间

$ mkdir -p test_ws/src
$ cd cd test_ws/src/

创建机器人描述功能包,并添加依赖
$ catkin_create_pkg myrobot_description urdf xacro

$ cd myrobot_description
$ mkdir urdf
$ mkdir launch
$ mkdir config

2.创建机器人描述文件my_robot.urdf

$ cd urdf

使用你熟悉的编辑器创建my_robot.urdf文件
$ gedit my_robot.urdf

 加入以下内容:(使用时请删除注释,第一行要定格写,否则会检测xml格式出错)
 
 <?xml version="1.0" ?>
<robot name="my_robot">

<!-- 机器人主体 圆柱体 -->
    <link name="base_link">
        <visual>
	    <origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
            <geometry>
                <cylinder length="0.16" radius="0.20" />
            </geometry>
	    <material name="orange">
                <color rgba="1 0.4 0 1"/>
            </material>
        </visual>
    </link>

<!-- 左轮 圆柱体,连接到机器人主体上 -->
    <joint name="left_wheel_joint" type="continuous">
        <origin xyz="0 0.19 -0.05" rpy="0 0 0"/>
        <parent link="base_link"/>
        <child link="left_wheel_link"/>
        <axis xyz="0 1 0"/>
    </joint>

    <link name="left_wheel_link">
        <visual>
            <origin xyz="0 0 0" rpy="1.5707 0 0" />
            <geometry>
                <cylinder radius="0.06" length = "0.025"/>
            </geometry>
        </visual>	
    </link>

<!-- 右轮 圆柱体,连接到机器人主体上 -->
    <joint name="right_wheel_joint" type="continuous">
        <origin xyz="0 -0.19 -0.05" rpy="0 0 0"/>
        <parent link="base_link"/>
        <child link="right_wheel_link"/>
        <axis xyz="0 1 0"/>
    </joint>

    <link name="right_wheel_link">
        <visual>
            <origin xyz="0 0 0" rpy="1.5707 0 0" />
            <geometry>
                <cylinder radius="0.06" length = "0.025"/>
            </geometry>
        </visual>
    </link>

<!-- 支撑轮前轮 圆柱体,连接到机器人主体上 -->
    <joint name="front_caster_joint" type="continuous">
        <origin xyz="0.18 0 -0.095" rpy="0 0 0"/>
        <parent link="base_link"/>
        <child link="front_caster_link"/>
        <axis xyz="0 1 0"/>
    </joint>

    <link name="front_caster_link">
        <visual>
            <origin xyz="0 0 0" rpy="0 0 0"/>
            <geometry>
                <sphere radius="0.015" />
            </geometry>
        </visual>
    </link>

<!-- 支撑轮后轮 圆柱体,连接到机器人主体上 -->
    <joint name="back_caster_joint" type="continuous">
        <origin xyz="-0.18 0 -0.095" rpy="0 0 0"/>
        <parent link="base_link"/>
        <child link="back_caster_link"/>
        <axis xyz="0 1 0"/>
    </joint>

    <link name="back_caster_link">
        <visual>
            <origin xyz="0 0 0" rpy="0 0 0"/>
            <geometry>
                <sphere radius="0.015" />
            </geometry>
        </visual>
    </link>

<!-- 相机 长方体,连接到机器人主体上 -->
    <link name="camera_link">
        <visual>
            <origin xyz=" 0 0 0 " rpy="0 0 0" />
            <geometry>          
                <box size="0.02 0.05 0.03" />
            </geometry>
            <material name="black">
                <color rgba="0 0 0 0.95"/>
            </material>
        </visual>
    </link>

    <joint name="camera_joint" type="fixed">
        <origin xyz="0.17 0 0.095" rpy="0 0 0"/>
        <parent link="base_link"/>
        <child link="camera_link"/>
    </joint>

<!-- 雷达 正方体,连接到机器人主体上 -->
    <link name="laser_link">
	<visual>
	   <origin xyz=" 0 0 0 " rpy="0 0 0" />
	   <geometry>
		<cylinder length="0.05" radius="0.05"/>
	   </geometry>
	   <material name="black"/>
	</visual>
    </link>

    <joint name="laser_joint" type="fixed">
        <origin xyz="0 0 0.105" rpy="0 0 0"/>
        <parent link="base_link"/>
        <child link="laser_link"/>
    </joint>

</robot>


3.创建launch文件,利用rviz查看创建的机器人模型

$ cd ../launch

使用你熟悉的编辑器创建display_my_robot.launch文件
$ gedit display_my_robot.launch

  加入以下内容:
 
 <launch>
   <!-- 加载的参数名字叫robot_description,具体内容是urdf相关模型的路径 -->
	<param name="robot_description" textfile="$(find myrobot_description)/urdf/my_robot.urdf" />
	<!-- 设置GUI参数,显示关节控制插件 -->
	<param name="use_gui" value="true"/>
	<!-- 运行joint_state_publisher节点,发布机器人的关节状态  -->
	<node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" />
	<!-- 运行robot_state_publisher节点,发布tf  -->
	<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />
	<!-- 运行rviz可视化界面,保存每次打开之后的相关插件,保存到config文件夹下面 -->
	<node name="rviz" pkg="rviz" type="rviz" args="-d $(find myrobot_description)/config/mbot_urdf.rviz" required="true" />
</launch>

4.编译,运行luanch文件查看机器人模型

进入到工作空间的根目录(从上一步过来会在 test_ws/src/myrobot_description/launchm目录下,要回到test_ws下进行编译)
$ cd ../../..
$ catkin_make
$ source devel/setup.bash

如果没有问题,运行如下命令可打开rviz
$ roslaunch myrobot_description display_my_robot.launch

第一次打开 正常显示还需要(如下图)
1.FixedFrame 选择base_link;2.左下角 Add 选择RobotModel
关闭rviz时,在弹出窗口选择保存配置,下次打开就不需要重复上述步骤了

在这里插入图片描述

此时会看到机器人:

在这里插入图片描述
Gazebo-Ros搭建小车和场景并运行slam算法进行建图2–搭建场境(world)

  • 2
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值