教程五 ugv02使用雷达教程

来自Waveshare Wiki
跳转至: 导航搜索

ugv02使用教程

功能包简介

雷达在ROS 2移动机器人建图导航中起到了关键的作用,提供了环境感知和定位信息,帮助机器人进行建图、定位、障碍物检测与避障以及路径规划与导航等任务。
1. 建图(Mapping):雷达可以扫描周围环境并获取物体的距离信息。通过将多个扫描数据融合在一起,可以创建机器人周围的环境地图。这些地图可以用于导航、避障和路径规划等任务。
2. 定位(Localization):雷达可以帮助机器人进行定位,即确定机器人在地图中的位置和姿态。通过与地图进行匹配,机器人可以确定自己的位置,并在导航过程中进行准确的定位。
3. 障碍物检测与避障(Obstacle Detection and Avoidance):雷达可以检测周围环境中的障碍物,如墙壁、家具或其他物体。机器人可以利用这些信息来规避障碍物,确保安全导航。
4. 路径规划与导航(Path Planning and Navigation):基于雷达提供的环境地图和定位信息,机器人可以进行路径规划和导航。它可以根据目标位置和当前位置计算出最优路径,并使用雷达数据进行实时障碍物检测和避障,以实现自主导航。


例程

下载功能包

进入ugv02工作目录的src文件夹中

cd ~/ugv02/src

使用git拉取功能包到本地

git clone  https://gitee.com/ldrobotSensorTeam/ldlidar_stl_ros2.git

编辑功能包

查看树莓派已连接的串口

ls -l /dev/ttyUSB*

如果你仅有雷达一个设备连接的话那么雷达的串口就是ttyUSB0,如果你有多个设备,请进行插口拔插,以确定雷达连接的串口号。
修改/ldlidar_stl_ros2/launch/ld19.launch.py文件

#!/usr/bin/env python3
from launch import LaunchDescription
from launch_ros.actions import Node

def generate_launch_description():
  # LDROBOT LiDAR publisher node
  ldlidar_node = Node(
      package='ldlidar_stl_ros2',
      executable='ldlidar_stl_ros2_node',
      name='LD19',
      output='screen',
      parameters=[
        {'product_name': 'LDLiDAR_LD19'},
        {'topic_name': 'scan'},
        # 修改雷达发布坐标
        {'frame_id': 'laser_link'},
        # 修改为你自己的雷达串口号
        {'port_name': '/dev/ttyUSB0'},
        {'port_baudrate': 230400},
        {'laser_scan_dir': True},
        {'enable_angle_crop_func': False},
        {'angle_crop_min': 135.0},
        {'angle_crop_max': 225.0}
      ]
  )

  # base_link to base_laser tf node
  base_link_to_laser_tf_node = Node(
    package='tf2_ros',
    executable='static_transform_publisher',
    name='base_link_to_base_laser_ld19',
    # 雷达中心及方向相对于车辆中心及方向的偏移量
    arguments=['0.05','0','0','1.57','0','0','base_link','laser_link']
  )


  # Define LaunchDescription variable
  ld = LaunchDescription()

  ld.add_action(ldlidar_node)
  ld.add_action(base_link_to_laser_tf_node)

  return ld

编译

返回工作空间并编译

cd ~/ugv02
colcon build

运行测试

进入工作空间

cd ~/ugv02
source ./install/setup.bash

给树莓派雷达串口添加权限(每次树莓派重启后都需运行一次,串口才能被调用)

sudo chmod 777 /dev/ttyUSB0

启动雷达节点

ros2 launch ldlidar_stl_ros2 ld19.launch.py

在装有ubuntu系统及ros2的电脑(虚拟机)中,确保该电脑与树莓派连接了同一个网络或wifi,新开一个终端。
查看电脑与树莓派中的ros2系统是否已正常通信

ros2 topic list

正常情况下你将会看到至少以下两个话题输出
雷达话题发布正常样式.png.png
如果没有这两个话题,请检查网络配置情况
在电脑(虚拟机)中运行rviz2,查看点云信息

rviz2

修改Fixed_Frame为base_link

修改globoal frame为base link.png

点击rviz左下角的add按钮添加控件
在rviz中添加显示机器人坐标轴,底盘框架为base_link

Rviz添加坐标轴.png

修改坐标框架,最好也修改下边的坐标轴大小,此时rviz将显示出一个机器人底盘的坐标系,红色轴为小车正方向,你可以转动小车,观察坐标轴变化。

添加ugv02底盘坐标轴.png

接下来将订阅雷达话题,在rviz中显示点云

添加scan话题.png
2d雷达点云.png

如果在rviz中显示点云较为细小,难以看清,那可以去修改点云的Style为Points

Ld19点云大小修改.png