修改launch文件

在之前将ouster-32的激光雷达设置成了静态IP。

因为设置了固定的雷达IP,所以就在launch文件中设置其参数,不用在用命令行的方式传入该参数

修改内容如下:

<arg name="sensor_hostname" doc="hostname or IP in dotted decimal form of the sensor"/>

改为

<arg name="sensor_hostname" default="196.168.1.198" doc="hostname or IP in dotted decimal form of the sensor"/>

参数配置

launch文件中有几个参数,可以看下,其原文件如下:

<launch>
  <arg name="ouster_ns" default="ouster" doc="Override the default namespace of all ouster nodes"/>
  <arg name="sensor_hostname" default="196.168.1.198" doc="hostname or IP in dotted decimal form of the sensor"/>
  <arg name="udp_dest" default="" doc="hostname or IP where the sensor will send data packets"/>
  <arg name="lidar_port" default="0" doc="port to which the sensor should send lidar data"/>
  <arg name="imu_port" default="0" doc="port to which the sensor should send imu data"/>
  <arg name="udp_profile_lidar" default=" " doc="lidar packet profile; possible values: {
    LEGACY,
    RNG19_RFL8_SIG16_NIR16_DUAL,
    RNG19_RFL8_SIG16_NIR16,
    RNG15_RFL8_NIR8
    }"/>
  <arg name="lidar_mode" default=" " doc="resolution and rate; possible values: {
    512x10,
    512x20,
    1024x10,
    1024x20,
    2048x10,
    4096x5
    }"/>
  <arg name="timestamp_mode" default=" " doc="method used to timestamp measurements; possible values: {
    TIME_FROM_INTERNAL_OSC,
    TIME_FROM_SYNC_PULSE_IN,
    TIME_FROM_PTP_1588,
    TIME_FROM_ROS_TIME
    }"/>
  <arg name="metadata" default=" " doc="path to write metadata file when receiving sensor data"/>
  <arg name="viz" default="true" doc="whether to run a rviz"/>
  <arg name="rviz_config" default="$(find ouster_ros)/config/viz.rviz" doc="optional rviz config file"/>
  <arg name="tf_prefix" default=" " doc="namespace for tf transforms"/>

  <group ns="$(arg ouster_ns)">
    <node pkg="nodelet" type="nodelet" name="os_nodelet_mgr"
      output="screen" required="true"
      launch-prefix="bash -c 'sleep 2; $0 $@' "
      args="manager"/>
  </group>

  <group ns="$(arg ouster_ns)">
    <node pkg="nodelet" type="nodelet" name="os_node"
      output="screen" required="true"
      launch-prefix="bash -c 'sleep 3; $0 $@' "
      args="load nodelets_os/OusterSensor os_nodelet_mgr">
      <param name="~/sensor_hostname" type="str" value="$(arg sensor_hostname)"/>
      <param name="~/udp_dest" type="str" value="$(arg udp_dest)"/>
      <param name="~/lidar_port" type="int" value="$(arg lidar_port)"/>
      <param name="~/imu_port" type="int" value="$(arg imu_port)"/>
      <param name="~/udp_profile_lidar" type="str" value="$(arg udp_profile_lidar)"/>
      <param name="~/lidar_mode" type="str" value="$(arg lidar_mode)"/>
      <param name="~/timestamp_mode" type="str" value="$(arg timestamp_mode)"/>
      <param name="~/metadata" type="str" value="$(arg metadata)"/>
    </node>
  </group>

  <include file="$(find ouster_ros)/launch/common.launch">
    <arg name="ouster_ns" value="$(arg ouster_ns)"/>
    <arg name="viz" value="$(arg viz)"/>
    <arg name="rviz_config" value="$(arg rviz_config)"/>
    <arg name="tf_prefix" value="$(arg tf_prefix)"/>
    <arg name="timestamp_mode" value="$(arg timestamp_mode)"/>
  </include>

</launch>
  • ouster_ns 不用管,设置命名空间的
  • sensor_hostname 已经改为了静态IP
  • udp_dest 电脑的ip可以不填入,程序会自动获取
  • lidar_port和imu_port 不用动
  • udp_profile_lidar 雷达的数据格式,默认 的是LEGACY
  • lidar_mode 设置分辨率和工作频率,默认是1024x10,代表每个scan有1024个点,雷达输出的频率是10hz
  • timestamp_mode 时间戳的模式

通过网页端查询和配置雷达参数

直接在浏览器中输入雷达IP并回车,就可以登录上雷达。然后点击“Configuration”选项进入雷达配置页面。

Dashboard 界面可以看到些基础的配置
在这里插入图片描述

在Configuration页面上,可以对大多数常用的雷达参数进行配置,设置好后点击右下角那个蓝色的”Apply Config” 按钮即可使当前设置生效(雷达会自动重启一次)。然而,此时如果雷达断电,则新设置的内容会丢失并恢复到之前的数值。为了让新的设置在雷达后续断电重启后仍然有效,则可以再点击那个“Save Active Config”按钮,新的参数值会写死到雷达中。

在这里插入图片描述

雷达输出数据分析

所有数据

查看当前topic消息种类

rostopic list

终端输出

/clicked_point
/initialpose
/move_base_simple/goal
/os_node/imu_packets
/os_node/lidar_packets
/ouster/imu
/ouster/imu_packets
/ouster/lidar_packets
/ouster/nearir_image
/ouster/os_nodelet_mgr/bond
/ouster/points
/ouster/points2
/ouster/range_image
/ouster/reflec_image
/ouster/signal_image
/rosout
/rosout_agg
/tf
/tf_static

imu数据

可以看到ouster 是带有内置imu的
imu消息的名称是 /ouster/imu
查看其消息类型:

rostopic info /ouster/imu

终端输出

Type: sensor_msgs/Imu

Publishers: 
 * /ouster/os_nodelet_mgr (http://JKKC:38655/)

Subscribers: None

雷达数据

查看点云数据类型

rostopic info /ouster/points

终端输出

Type: sensor_msgs/PointCloud2

Publishers: 
 * /ouster/os_nodelet_mgr (http://JKKC:41713/)

Subscribers: 
 * /rviz (http://JKKC:37099/)
 * /ouster/os_nodelet_mgr (http://JKKC:41713/)

查看点云标签

rostopic echo /ouster/points/fields

其中一包数据为:

- 
  name: "x"
  offset: 0
  datatype: 7
  count: 1
- 
  name: "y"
  offset: 4
  datatype: 7
  count: 1
- 
  name: "z"
  offset: 8
  datatype: 7
  count: 1
- 
  name: "intensity"
  offset: 16
  datatype: 7
  count: 1
- 
  name: "t"
  offset: 20
  datatype: 6
  count: 1
- 
  name: "reflectivity"
  offset: 24
  datatype: 4
  count: 1
- 
  name: "ring"
  offset: 26
  datatype: 2
  count: 1
- 
  name: "ambient"
  offset: 28
  datatype: 4
  count: 1
- 
  name: "range"
  offset: 32
  datatype: 6
  count: 1
---

所以在雷达数据中的标签有:

  • x
  • y
  • z
  • intensity
  • t
  • reflectivity
  • ring
  • ambient
  • range

坐标系

在该驱动文件中,启动rviz后,默认有3个tf
在这里插入图片描述

  • os_imu
  • os_sensor
  • os_lidar

这3个方向是不一致的,其中

  • os_imu 和 os_sensor 是以连接点的对面为x轴,左为y轴,上为z轴,满足右手定则
  • os_lidar 是以连接点的方向为x轴,左为y轴,上为z轴,满足右手定则

os_lidar 坐标系
在这里插入图片描述
os_sensor 坐标系
在这里插入图片描述

Rviz显示

驱动包默认的rviz显示
在这里插入图片描述

其中包含了

  • 根据反射率转换成的类似红外图像的图片 reflectivity
  • 将距离转成图形的深度图 range
  • 点云 PointClound2
  • TF