Post

基于激光雷达实现目标跟随功能

基于激光雷达实现目标跟随功能

基于激光雷达传感器的物体跟随

1.实验原理

激光雷达通过发射激光束并接收反射信号来测量周围环境的距离信息,生成二维或三维点云数据,可以反馈周边物体的距离,在机器人中应用非常广泛。以下为三个任务:

  • 任务1:实现小车周边最近物体的识别 30cm内存在障碍,小车停止不做任何处理,30cm-80cm有多个障碍,寻找到离机器人最近的障碍物,机器人移动靠近障碍物,30cm时停下处理障碍(如果有机械臂,机械臂操作障碍物,如移开,拾取)
  • 任务2:确立小车的运动方向
  • 任务3:设计一个功能包,实现动态跟随 机器人软件设计本着一个基本原则:先在仿真系统中运行验证,然后将功能包拷贝到移动机器人平台上验证。

    2.在仿真环境下实现跟随功能(45分钟)

  • 创建空间(已有该空间可以跳过) 首先运行仿真环境
    1
    
    ros2 launch omni_gazebo simulation.py
    

    在仿真环境中插入物体,使物体与小车之间存在一定距离,同时查看激光话题, 确认雷达数据是否正常。

    1
    
    ros2 topic echo /scan
    

    查看tf坐标关系

    1
    
    ros2 run tf2_tools view_frames
    

    该指令会在当前文件夹生成pdf文件,打开文件观察坐标之间的关系。

  • 创建python包
    1
    
    ros2 pkg create lidar_follower --build-type ament_python
    
  • 修改 package.xml 在package.xml中添加依赖: ```xml
rclpy sensor_msgs geometry_msgs
1
2
3
4
5
6
7
8
9
- **修改setup.py**
打开 setup.py 文件,把 entry_points 字段改为如下内容并保存:
```xml
   entry_points={
        'console_scripts': [  
           'follower = lidar_follower.
           :main',
        ],
    },
  • 编译 进入空间
    1
    2
    
    cd ~/ros2_ws
    colcon build
    

    2.真实小车上运行

    将虚拟机上的功能包拷贝到树莓派相应工程里,假定虚拟机上的功能包为 follow_me,树莓派的工程名称为tbot,将follow_me文件夹拷贝到tbot/src目录下 编译运行

    1
    2
    3
    
    colcon build
    source install/setup.bash
    ros2 run XXX XXX(xxx代表功能包)
    
This post is licensed under CC BY 4.0 by the author.