学习笔记35-- 仿真时用到的d435以及16线雷达在urdf中定义以及launch注意点

环境:ubuntu16.04 ros-kinetics gazebo7.16

来源:仿真有d435以及16线雷达的urdf编写

注意,urdf采用的是.xacro编写的

d435_16vel.urdf.xacro:

<?xml version="1.0"?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="robot">
    <xacro:arg name="gpu" default="false"/>
    <xacro:property name="gpu" value="$(arg gpu)"/>
......
<xacro:include filename="$(find realsense2_description)/urdf/_d435.urdf.xacro" />//把深度相机d435模型文件的存放路径包含进来(这包可以从d435官方驱动安装有下载)

<xacro:include filename="$(find velodyne_description)/urdf/VLP-16.urdf.xacro"/>//加载16线雷达的路径(这个gazebo里面自带的,不需要再次下载来使用)
......
    <!--d435-->
  <sensor_d435 parent="base_link" name="d435_01">//d435_01连接在base_link上面
     <origin xyz="0.3 0 0" rpy="0 0 0"/>//相对与base_link坐标系的坐标定义
  </sensor_d435>
......
<!--vlp-16-->
    <VLP-16 parent="base_link" name="vel_16" topic="/vel_16_points" hz="10" samples="440" gpu="${gpu}"
            min_range="0.1" max_range="70" min_angle="0" max_angle="3.14" noise="0.008">//依次定义,16线雷达链接的父link为base_link;自定义的名称为vel_16;
            //发出的topic为/vel_16_points;更新的频率为10hz;
            //每个线平面的射线条数为440;不使用gpu;量程范围0.1米到70m;
            //扫射范围自身坐标系0到180度;雷达噪声为0.008
        <origin xyz="0.6 0 0" rpy="0 0 0"/>//定义雷达以base_link为坐标系的定义坐标
</VLP-16>
........
</robot>

Launch文件加载注意点:
d435_16vel.launch:

<launch>
<!-- Spawn a robot into Gazebo -->
<param name="robot_description" command="$(find xacro)/xacro '$(find rpy)/urdf/d435_16vel.urdf.xacro' use_nominal_extrinsics:=true --inorder"/>//引用到上面这些模型时候,添加use_nominal_extrinsics:=true语句;
//目前测试过,d435必须添加,而16线雷达不要求,
//可能是16线雷达属于gazebo自带模型的原因
........

</launch>

如果launch文件不设置上面标签,会出现如下报错:

Undefined substitution argument use_nominal_extrinsics None

d435包下载链接:https://github.com/IntelRealSense/realsense-ros

如果想要完整测试玩玩,可以查找我的这个博客(https://blog.csdn.net/qq_45701501/article/details/107521623),然后根据上面,补充一下里面文件,基本上就可以仿真使用了.

############
好记性不如烂笔头
–20200730

猜你喜欢

转载自blog.csdn.net/qq_45701501/article/details/107684016
今日推荐