赞
踩
给每个link都添加<collision> <inertia>
如果joint type="fixed"则默认在gazebo中不显示。
- <?xml version="1.0"?>
- <robot name="materials" xmlns:xacro="http://ros.org/wiki/xacro">
-
- <xacro:macro name="default_inertial" params="mass">
- <inertial>
- <mass value="${mass}" />
- <inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0" />
- </inertial>
- </xacro:macro>
- <material name="blue">
- <color rgba="0 0 0.8 1"/>
- </material>
-
- <material name="white">
- <color rgba="1 1 1 1"/>
- </material>
-
- <link name="base_link">
- <visual>
- <geometry>
- <cylinder length="0.6" radius="0.2"/>
- </geometry>
- <material name="blue"/>
- </visual>
-
- <collision>
- <geometry>
- <cylinder radius="0.2" length="0.6"/>
- </geometry>
- </collision>
- <xacro:default_inertial mass="10"/>
-
- </link>
-
- <link name="right_leg">
- <visual>
- <geometry>
- <box size="0.6 0.1 0.2"/>
- </geometry>
- <origin rpy="0 1.57075 0" xyz="0 0 -0.3"/>
- <material name="white"/>
- </visual>
-
- <collision>
- <geometry>
- <box size="0.6 0.1 0.2"/>
- </geometry>
- </collision>
- <xacro:default_inertial mass="10"/>
-
- </link>
-
- <joint name="base_to_right_leg4" type="fixed">
- <parent link="base_link"/>
- <child link="right_leg"/>
- <origin xyz="0 -0.22 0.25"/>
- </joint>
-
- <link name="left_leg">
- <visual>
- <geometry>
- <box size="0.6 0.1 0.2"/>
- </geometry>
- <origin rpy="0 1.57075 0" xyz="0 0 -0.3"/>
- <material name="white"/>
-
- </visual>
- <collision>
- <geometry>
- <box size="0.6 0.1 0.2"/>
- </geometry>
- </collision>
- <xacro:default_inertial mass="10"/>
- </link>
-
- <gazebo reference="right_leg">
- <material>Gazebo/Orange</material>
- </gazebo>
-
- <joint name="base_to_left_leg" type="continuous">
- <parent link="base_link"/>
- <child link="left_leg"/>
- <origin xyz="0 0.22 0.25"/>
- </joint>
-
- <gazebo>
- <plugin name="gazebo_ros_control" filename="libgazebo_ros_control.so">
- <robotNamespace>/</robotNamespace>
- </plugin>
- </gazebo>
- </robot>

- <launch>
-
- <!-- these are the arguments you can pass this launch file, for example paused:=true -->
- <arg name="paused" default="false"/>
- <arg name="use_sim_time" default="true"/>
- <arg name="gui" default="true"/>
- <arg name="headless" default="false"/>
- <arg name="debug" default="false"/>
- <arg name="model" default="$(find urdf_tutorial)/urdf/04-materials.urdf"/>
-
- <!-- We resume the logic in empty_world.launch, changing only the name of the world to be launched -->
- <include file="$(find gazebo_ros)/launch/empty_world.launch">
- <arg name="debug" value="$(arg debug)" />
- <arg name="gui" value="$(arg gui)" />
- <arg name="paused" value="$(arg paused)"/>
- <arg name="use_sim_time" value="$(arg use_sim_time)"/>
- <arg name="headless" value="$(arg headless)"/>
- </include>
-
- <param name="robot_description" command="$(find xacro)/xacro --inorder $(arg model)" />
-
- <!-- push robot_description
- <param name="robot_description" command="$(find xacro)/xacro.py $(arg model)" />
- to factory and spawn robot in gazebo -->
- <node name="urdf_spawner" pkg="gazebo_ros" type="spawn_model"
- args="-z 1.0 -unpause -urdf -model robot -param robot_description" respawn="false" output="screen" />
-
- <node pkg="robot_state_publisher" type="robot_state_publisher" name="robot_state_publisher">
- <param name="publish_frequency" type="double" value="30.0" />
- </node>
-
- </launch>

如果是xacro文件,
<param name="robot_description" command="$(find xacro)/xacro.py demo.xacro" />
如果是urdf文件
<param name="robot_description" command="$(find xacro)/xacro --inorder demo.urdf" />
$ rosdep install --from-paths src --ignore-src -y
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。