教程五 ugv02使用雷达教程
ugv02使用教程
- 序章 基于ros2开发ugv02功能目录
- 教程一 树莓派基于ros2开发ugv02底盘初始化操作
- 教程二 基于vscode的树莓派远程开发教程
- 教程三 底盘控制教程
- 教程四 手柄遥控教程
- 教程五 ugv02使用雷达教程
- 教程六 cartographer建图教程
- 教程七 nav2导航教程
- 教程八 建图与导航同时进行教程
功能包简介
雷达在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
正常情况下你将会看到至少以下两个话题输出
如果没有这两个话题,请检查网络配置情况
在电脑(虚拟机)中运行rviz2,查看点云信息
rviz2
修改Fixed_Frame为base_link
点击rviz左下角的add按钮添加控件
在rviz中添加显示机器人坐标轴,底盘框架为base_link
修改坐标框架,最好也修改下边的坐标轴大小,此时rviz将显示出一个机器人底盘的坐标系,红色轴为小车正方向,你可以转动小车,观察坐标轴变化。
接下来将订阅雷达话题,在rviz中显示点云
如果在rviz中显示点云较为细小,难以看清,那可以去修改点云的Style为Points