gazebo创建机器人模型01

gazebo创建机器人模型01

基本集成流程

跟着赵老师学习了一下gazebo中机器人仿真,在此做个记录。

1.创建功能包

创建新功能包,导入依赖包:urdf、xacro、gazebo_ros、gazebo_ros_control、gazebo_plugins

2.urdf文件编写

其层级关系为:

robot
	link
		visual -->可视化部分
			geometry
			origin
			material
		 collision -->连杆的碰撞属性
		 	geometry
		 	origin
		 inertial -->连杆的惯性矩阵
		 	origin
		 	mass
		 	inertia
	gazebo
		material

如果是标准几何体,直接复制 visual 的 geometry 和 origin 标签到 collision 下即可。
惯性矩阵 inertial 中的 origin为设置重心的偏移,如果连杆质量均匀,xyz=0 0 0 即可。其他参数有 质量 mass 和惯性不同维度惯性值 inertia 。
inertia为不同维度上的惯性值,此处随便给了几个值,实际机器人需要合理设置。
visual 中的颜色设置在gazebo中不能继续使用了,需要在 gazebo 自身的颜色设置标签中进行设置。

<!-- 
    创建一个机器人模型(盒状即可),显示在 Gazebo 中 
-->

<robot name="mycar">
    <link name="base_link">
        <visual>
            <geometry>
                <box size="0.5 0.2 0.1" />
            </geometry>
            <origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
            <material name="yellow">
                <color rgba="0.5 0.3 0.0 1" />
            </material>
        </visual>
        <!--1.设置碰撞参数 -->
        <collision>
            <geometry>
                <box size="0.5 0.2 0.1" />
            </geometry>
            <origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
        </collision>
        <inertial>
            <origin xyz="0 0 0" /> 
            <mass value="6" />
            <inertia ixx="1" ixy="0" ixz="0" iyy="1" iyz="0" izz="1" />
        </inertial>
    </link>
    <gazebo reference="base_link">
        <material>Gazebo/Black</material>
    </gazebo>

</robot>

3.集成到gazebo

创建一个launch文件,填写如下内容
1.在参数服务器中载入 urdf ,这一步与 rviz 中是一致的
2.启动 gazebo 仿真环境,直接包含gazebo 中 empty world 环境
3.在 gazebo 中添加机器人模型
手动添加模型的方法如下:

rosrun gazebo_ros spawn_model -urdf -model car(加载模型的名字) -param robot_description(加载的机器人模型是从参数服务器中robot_description中获取的)

将上述手动添加的方法集成到launch文件中

<launch>
    <!-- 1. 需要在参数服务器中载入 urdf -->
    <param name="robot_description" textfile="$(find urdf02_gazebo)/urdf/demo01_helloworld.urdf" />
    <!-- 2. 需要启动 gazebo 仿真环境 -->
    <include file="$(find gazebo_ros)/launch/empty_world.launch" />
    <!-- 3. 在gazebo 中添加机器人模型 -->
    <node pkg="gazebo_ros" type="spawn_model" name="spawn_model" args="-urdf -model car -param robot_description" />
</launch>

总结:
1.必须使用 collision 标签,仿真环境必然涉及碰撞检测,collision提供碰撞检测的依据。
2.必须使用 inertial 标签,此标签标准了当前机器人某个刚体部分的惯性矩镇,用于一些力学仿真相关的计算。
3.颜色设置,也需要重新使用 gazebo 标签标注,因为之前的颜色设置为了方便调试包含透明度,仿真环境下没有此选项,在 visual 中可以不进行颜色设置。
4. inertial 惯性矩阵的计算后期对其进行封装,可输入参数调用。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用 `roslaunch` 启动机器人模型前,需要先安装 Gazebo机器人模型相关的包,例如: ``` sudo apt-get install ros-<distro>-gazebo-ros-pkgs ros-<distro>-gazebo-ros-control sudo apt-get install ros-<distro>-turtlebot3-* ``` 其中 `<distro>` 是 ROS 版本号,例如 `melodic`。 接下来,创建一个 launch 文件,例如 `turtlebot3_gazebo.launch`,内容如下: ```xml <launch> <!-- 启动 Gazebo --> <include file="$(find gazebo_ros)/launch/empty_world.launch"> <arg name="world_name" value="$(find turtlebot3_gazebo)/worlds/turtlebot3_world.world"/> <arg name="paused" value="false"/> <arg name="use_sim_time" value="true"/> <arg name="gui" value="true"/> <arg name="headless" value="false"/> </include> <!-- 启动机器人模型 --> <arg name="model" default="burger"/> <arg name="x" default="0"/> <arg name="y" default="0"/> <arg name="z" default="0"/> <arg name="yaw" default="0"/> <include file="$(find turtlebot3_gazebo)/launch/turtlebot3.launch.xml"> <arg name="model" value="$(arg model)"/> <arg name="x_pos" value="$(arg x)"/> <arg name="y_pos" value="$(arg y)"/> <arg name="z_pos" value="$(arg z)"/> <arg name="yaw" value="$(arg yaw)"/> </include> </launch> ``` 这个 launch 文件首先启动 Gazebo,然后再启动机器人模型。其中 `world_name` 指定了 Gazebo 的场景,`model` 指定了要启动的机器人模型类型(例如 `burger` 或 `waffle`),`x`、`y`、`z` 和 `yaw` 则指定了机器人模型在场景中的初始位置和姿态。 最后,在终端中运行以下命令启动机器人模型: ``` roslaunch turtlebot3_gazebo turtlebot3_gazebo.launch ``` 注意,需要使用正确的包名和 launch 文件名。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值