目录

  • 1 智能移动机器人-基础篇
    • 1.1 第一讲 坐标变换(5课时)
    • 1.2 第二讲 ROS基本概念(3课时)
      • 1.2.1 实训
    • 1.3 第三讲-编写简单的订阅者和发布者节点(4课时)
      • 1.3.1 实训
      • 1.3.2 实训2
    • 1.4 第四讲 ROS服务及编程(2课时)
    • 1.5 第五讲 ROS坐标变换工具TF(4课时))
    • 1.6 第六讲 ROS参数及应用(2课时))
    • 1.7 第七讲 运动学模型及航迹推算(4课时)
      • 1.7.1 实训1.7.1
    • 1.8 第八讲 URDF机器人建模及应用(4课时))
      • 1.8.1 实训1.8.1
    • 1.9 第九讲 QT-ROS交互界面应用开发(4课时)
  • 2 智能移动机器人-提高篇
    • 2.1 第一讲 栅格地图及应用(2课时)
    • 2.2 第二讲 局部路径规划及避障(6课时)
    • 2.3 第三讲 运动学模型的概率表示(2课时)
    • 2.4 spark实验5-激光雷达信息处理-标定
    • 2.5 第四讲 激光雷达及其测量模型(4课时)
    • 2.6 第五讲 蒙特卡洛定位(MCL)(4课时)
    • 2.7 第六讲 并发定位与建图(SLAM)(4课时)
    • 2.8 第七讲 自主导航(6课时)
    • 2.9 第八讲 Librviz可视化应用开发(4课时)(4课时)
  • 3 实训篇-SparkT移动机器人(室内)
    • 3.1 SparkT移动机器人介绍
    • 3.2 演示视频
    • 3.3 相关工具及资料下载
    • 3.4 spark实验1-控制spark移动
    • 3.5 spark实验2-编写节点控制spark移动
      • 3.5.1 python版本
    • 3.6 spark实验3-并发定位与建图
    • 3.7 spark实验4-机器人定位与导航
    • 3.8 spark实验6-基于激光雷达的行人检测与跟踪
    • 3.9 spark实验7-机械臂抓取
    • 3.10 2023年夺宝奇兵大赛培训资料
    • 3.11 2024年夺宝奇兵半自动赛培训
      • 3.11.1 半自动赛程序设计方法2024年7月3日
    • 3.12 2024年夺宝奇兵自动任务赛培训
      • 3.12.1 代码框架(noetic版本)
      • 3.12.2 代码框架(kinetic版本)
      • 3.12.3 自动赛讲解视频2024年6月29日
      • 3.12.4 ROS下QT界面开发2024年6月30日
      • 3.12.5 目标识别与机械臂抓取7月1日
      • 3.12.6 自动赛思路讲解(2024,.7.3)结课
      • 3.12.7 基于大模型的辅助开发(python)
        • 3.12.7.1 案例1:激光雷达数据订阅与发布
        • 3.12.7.2 案例2:激光雷达与地图匹配程度计算
        • 3.12.7.3 案例3:基于Web的机器人远程控制
        • 3.12.7.4 案例4:ROS的QT界面应用开发
        • 3.12.7.5 案例5:ROS下语音识别及QT界面
        • 3.12.7.6 案例6:从摄像头获取图像数据并进行二维码识别
        • 3.12.7.7 案例7:Gazebo仿真
        • 3.12.7.8 案例8:基于RGBD的行人识别与跟踪
    • 3.13 spark实验-基于teb-local-planner的导航
    • 3.14 Spark实验-利用rf2o提高定位精度
  • 4 室外自主导航车(AGV)-实训篇
    • 4.1 AGV本体介绍
    • 4.2 实训项目1-AGV建模(URDF)
    • 4.3 实训项目2-AGV运动学模型及航迹推算
    • 4.4 实训项目3-AGV运动控制
    • 4.5 实训项目4-基于GPS的点对点导航
    • 4.6 实训项目5-基于GPS的循迹
    • 4.7 实训项目6-基于三维激光雷达(点云)的障碍物检测与避障
    • 4.8 实训项目7-基于深度相机(RGBD)的目标识别与跟踪
  • 5 智能机器人技术实践上课录屏
    • 5.1 实训项目1-2024年9月3日
spark实验6-基于激光雷达的行人检测与跟踪

课程同步视频:

基于激光雷达的行人检测:编写节点,对激光雷达信息进行分段分析,设计简单的行人检测算法,确定行人在相对于机器人的位姿。控制机器人转向行人,然后移动靠近行人。

前提:要求已经完成了实验2(spark机器人控制(2)--编写节点完成对机器人的控制)及实验5(激光雷达标定)。

步骤1:

新建一个终端,进入simple_nodes包(注,此处改为自己所建立的包)

$roscd simple_nodes

注:执行上述指令后,当前目录应该为~/ros_tut/src/simple_nodes$,在此基础上继续执行以下指令

$cd src

步骤2:

将follow_me01.cpp下载(拷贝至该当前目录,拷贝的方法,通过scp命令:台式机与spark联通后,cmd启动台式机终端,转到follow_me01.cpp文件所在的目录,通过下面的指令进行复制:

scp follow_me01.cpp spark@10.42.0.1:~/ros_tut/src/simple_nodes/src   

按提示输入yes,密码输入spark  )

拷贝成功后,在spark机器人端通过ls命令可以看到follow_me01.cpp

$cd  ..

$gedit  CMakeLists.txt

将下面的两行加入到文件末尾,然后保存文件并退出编辑

add_executable(follow_me01 src/follow_me01.cpp)
target_link_libraries(follow_me01 ${catkin_LIBRARIES})

$cd ~/ros_tut

$catkin_make

构建成功后继续后面的步骤,否则根据提示信息修改源程序,再通过步骤1来构建。

步骤2:测试节点

新开一个终端,启动机器人建图节点

$roslaunch spark_slam 2d_slam.launch

确保机器人在一个比较空阔的地方,周围1米内没有障碍。


$rosrun simple_nodes follow_me01 0.4 1


走近机器人约0.8m处,观测机器人的行为以及follow_me01执行终端的提示。

步骤3:开放性扩展。follow_me01对行人的检测并不是十分准确,修改其逻辑或设计新的行人检测算法(或更好的特征)来进行更精确的行人检测及跟踪。

步骤4:开发性扩展。查阅基于激光雷达的行人检测与跟踪的相关文献,对现有研究进行综述总结,实现并改进。

结合自己的设计提出新的算法。