Burger机器人Gazebo仿真添加Kinect
kinect_gazebo.xacro
<?xml version="1.0"?> <robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="kinect_camera"> <xacro:macro name="kinect_camera" params="prefix:=camera"> <!-- Create kinect reference frame --> <!-- Add mesh for kinect --> <link name="${prefix}_link"> <origin xyz="0 0 0" rpy="0 0 0"/> <visual> <origin xyz="0 0 0" rpy="0 0 ${M_PI/2}"/> <geometry> <mesh filename="package://turtlebot3_description/meshes/kinect.dae" scale="0.4 0.4 0.4" /> </geometry> </visual> <collision> <geometry> <box size="0.07 0.3 0.09"/> </geometry> </collision> </link> <joint name="${prefix}_optical_joint" type="fixed"> <origin xyz="0 0 0" rpy="-1.5708 0 -1.5708"/> <parent link="${prefix}_link"/> <child link="${prefix}_frame_optical"/> </joint> <link name="${prefix}_frame_optical"/> <gazebo reference="${prefix}_link"> <sensor type="depth" name="${prefix}"> <always_on>true</always_on> <update_rate>20.0</update_rate> <camera> <horizontal_fov>${60.0*M_PI/180.0}</horizontal_fov> <image> <format>R8G8B8</format> <width>640</width> <height>480</height> </image> <clip> <near>0.05</near> <far>8.0</far> </clip> </camera> <plugin name="kinect_${prefix}_controller" filename="libgazebo_ros_openni_kinect.so"> <cameraName>${prefix}</cameraName> <alwaysOn>true</alwaysOn> <updateRate>10</updateRate> <imageTopicName>rgb/image_raw</imageTopicName> <depthImageTopicName>depth/image_raw</depthImageTopicName> <pointCloudTopicName>depth/points</pointCloudTopicName> <cameraInfoTopicName>rgb/camera_info</cameraInfoTopicName> <depthImageCameraInfoTopicName>depth/camera_info</depthImageCameraInfoTopicName> <frameName>${prefix}_frame_optical</frameName> <baseline>0.1</baseline> <distortion_k1>0.0</distortion_k1> <distortion_k2>0.0</distortion_k2> <distortion_k3>0.0</distortion_k3> <distortion_t1>0.0</distortion_t1> <distortion_t2>0.0</distortion_t2> <pointCloudCutoff>0.4</pointCloudCutoff> </plugin> </sensor> </gazebo> </xacro:macro> </robot>
修改turtlebot3_burger.urdf.xacro文件
<?xml version="1.0" ?> <robot name="turtlebot3_burger" xmlns:xacro="http://ros.org/wiki/xacro"> <xacro:include filename="$(find turtlebot3_description)/urdf/common_properties.xacro"/> <xacro:include filename="$(find turtlebot3_description)/urdf/turtlebot3_burger.gazebo.xacro"/> <xacro:include filename="$(find turtlebot3_description)/urdf/kinect_gazebo.xacro"/> <xacro:property name="kinect_offset_x" value="0.0" /> <xacro:property name="kinect_offset_y" value="0.0" /> <xacro:property name="kinect_offset_z" value="0.1" /> <xacro:property name="M_PI" value="3.14159" /> <xacro:kinect_camera prefix="camera"/> <joint name="kinect_frame_joint" type="fixed"> <origin xyz="${kinect_offset_x} ${kinect_offset_y} ${kinect_offset_z}" rpy="0 0 0" /> <parent link="base_link"/> <child link="camera_link"/> </joint> <link name="base_footprint"/> <joint name="base_joint" type="fixed"> <parent link="base_footprint"/> <child link="base_link"/> <origin xyz="0.0 0.0 0.010" rpy="0 0 0"/> </joint> <link name="base_link"> <visual> <origin xyz="-0.032 0 0.0" rpy="0 0 0"/> <geometry> <mesh filename="package://turtlebot3_description/meshes/bases/burger_base.stl" scale="0.001 0.001 0.001"/> </geometry> <material name="light_black"/> </visual> <collision> <origin xyz="-0.032 0 0.070" rpy="0 0 0"/> <geometry> <box size="0.140 0.140 0.143"/> </geometry> </collision> <inertial> <origin xyz="0 0 0" rpy="0 0 0"/> <mass value="8.2573504e-01"/> <inertia ixx="2.2124416e-03" ixy="-1.2294101e-05" ixz="3.4938785e-05" iyy="2.1193702e-03" iyz="-5.0120904e-06" izz="2.0064271e-03" /> </inertial> </link> <joint name="wheel_left_joint" type="continuous"> <parent link="base_link"/> <child link="wheel_left_link"/> <origin xyz="0.0 0.08 0.023" rpy="-1.57 0 0"/> <axis xyz="0 0 1"/> </joint> <link name="wheel_left_link"> <visual> <origin xyz="0 0 0" rpy="1.57 0 0"/> <geometry> <mesh filename="package://turtlebot3_description/meshes/wheels/left_tire.stl" scale="0.001 0.001 0.001"/> </geometry> <material name="dark"/> </visual> <collision> <origin xyz="0 0 0" rpy="0 0 0"/> <geometry> <cylinder length="0.018" radius="0.033"/> </geometry> </collision> <inertial> <origin xyz="0 0 0" /> <mass value="2.8498940e-02" /> <inertia ixx="1.1175580e-05" ixy="-4.2369783e-11" ixz="-5.9381719e-09" iyy="1.1192413e-05" iyz="-1.4400107e-11" izz="2.0712558e-05" /> </inertial> </link> <joint name="wheel_right_joint" type="continuous"> <parent link="base_link"/> <child link="wheel_right_link"/> <origin xyz="0.0 -0.080 0.023" rpy="-1.57 0 0"/> <axis xyz="0 0 1"/> </joint> <link name="wheel_right_link"> <visual> <origin xyz="0 0 0" rpy="1.57 0 0"/> <geometry> <mesh filename="package://turtlebot3_description/meshes/wheels/right_tire.stl" scale="0.001 0.001 0.001"/> </geometry> <material name="dark"/> </visual> <collision> <origin xyz="0 0 0" rpy="0 0 0"/> <geometry> <cylinder length="0.018" radius="0.033"/> </geometry> </collision> <inertial> <origin xyz="0 0 0" /> <mass value="2.8498940e-02" /> <inertia ixx="1.1175580e-05" ixy="-4.2369783e-11" ixz="-5.9381719e-09" iyy="1.1192413e-05" iyz="-1.4400107e-11" izz="2.0712558e-05" /> </inertial> </link> <joint name="caster_back_joint" type="fixed"> <parent link="base_link"/> <child link="caster_back_link"/> <origin xyz="-0.081 0 -0.004" rpy="-1.57 0 0"/> </joint> <link name="caster_back_link"> <collision> <origin xyz="0 0.001 0" rpy="0 0 0"/> <geometry> <box size="0.030 0.009 0.020"/> </geometry> </collision> <inertial> <origin xyz="0 0 0" /> <mass value="0.005" /> <inertia ixx="0.001" ixy="0.0" ixz="0.0" iyy="0.001" iyz="0.0" izz="0.001" /> </inertial> </link> <joint name="imu_joint" type="fixed"> <parent link="base_link"/> <child link="imu_link"/> <origin xyz="-0.032 0 0.068" rpy="0 0 0"/> </joint> <link name="imu_link"/> <joint name="scan_joint" type="fixed"> <parent link="base_link"/> <child link="base_scan"/> <origin xyz="-0.032 0 0.172" rpy="0 0 0"/> </joint> <link name="base_scan"> <visual> <origin xyz="0 0 0.0" rpy="0 0 0"/> <geometry> <mesh filename="package://turtlebot3_description/meshes/sensors/lds.stl" scale="0.001 0.001 0.001"/> </geometry> <material name="dark"/> </visual> <collision> <origin xyz="0.015 0 -0.0065" rpy="0 0 0"/> <geometry> <cylinder length="0.0315" radius="0.055"/> </geometry> </collision> <inertial> <mass value="0.114" /> <origin xyz="0 0 0" /> <inertia ixx="0.001" ixy="0.0" ixz="0.0" iyy="0.001" iyz="0.0" izz="0.001" /> </inertial> </link> </robot>
加载模型文件
turtlebot3_description/meshes文件夹
作者:kay 出处:https://www.cnblogs.com/kay2018/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 如果文中有什么错误,欢迎指出。以免更多的人被误导。 |