目录

  • 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日
第六讲 并发定位与建图(SLAM)(4课时)

1、SLAM基本原理


2、SLAM实验

实验目的:掌握基于激光雷达的移动机器人SLAM的基本步骤,理解launch文件的基本写法,认识栅格地图。

步骤1:开启机器人并进行连接

(0)如果机器人电量不足,请充电(用输出电压为19V充电器)

(1)开启机器人,记录其热点名称(spark-xxx)及IP地址(一般为10.42.0.1)

(2)启动笔记本或台式电脑,通过无线网卡连接机器人热点(spark-xxx)

(3)在笔记本或台式电脑上启动VNCViewer,通过机器人IP连接到机器人。

步骤2:

  开启一个终端,执行以下指令

  roslaunch spark_slam 2d_slam.launch

成功启动后,在rviz可视化界面可以看到类似上面的界面,其中,地图上红色点为激光雷达检测到物体的标识点。灰色为检测到的空地。黑色为障碍物的位置。

步骤3:遥控机器人移动

另开一个终端,执行下面指令:

rosrun spark_teleop keyboard_control.sh

通过键盘遥控机器人移动

观测步骤2中rviz界面的地图变化情况

步骤4:保存地图

新开一个终端,执行下面的指令

       rosrun map_server map_saver -f mymap01

     (注:其中,mymap01为地图的名字,请根据自己的喜好更改)

    保存后通过ls可以看到mymap01.pgm和mymap01.yaml两个文件,

可以在文件管理器显示mymap01.pgm(图片(显示实验报告),通过cat mymap01.yaml显示地图的信息。写入实验报告。

  步骤5:通过rqt_graph来显示ROS计算图

  rosrun rqt_graph rqt_graph
把所看到的计算图截图,写入实验报告。

  步骤6:查看并了解launch文件

   新开一个终端,

 roscd spark_slam

 cd launch

 cat 2d_slam.launch

显示2d_slam.launch文件,阅读该文件,并写入实验报告。

  步骤7:建图比赛(选作)

  每个小组控制一台机器人,对环境进行建图。规则:(1)要求操作员只看电脑屏幕(不看机器人)。(2)机器人碰到障碍物时停止建图(保存地图)。(3)地图范围最大的获胜。(对碰到障碍物的情形进行分析和思考)