自动驾驶
yolo5自动驾驶
1、重要!更换U盘的操作指引
2、关闭开机自启动大程序
3、Linux基础
4、YoloV5训练集
5、自动驾驶基础调试(代码解析)
6、自动驾驶特调
7、自动驾驶原理
8、PID算法理论
9、阿克曼运动学分析理论
10、建立运动学模型
常用命令
首次使用
一、原理分析
麦克纳姆轮运动学分析
二、AI大模型
3、AI大模型类型和原理
4、RAG检索增强和模型训练样本
5、具身智能机器人系统架构
6、具身智能玩法核心源码解读
7、配置AI大模型
三、深度相机
2、颜色标定
10、深度相机的基础使用
11、深度相机伪彩色图像
12、深度相机测距
13、深度相机色块体积测算
14、深度相机颜色跟随
15、深度相机人脸跟随
16、深度相机KCF物体跟随
17、深度相机Mediapipe手势跟随
18、深度相机视觉循迹自动驾驶
19、深度相机边缘检测
四、多模态视觉理解
20、多模态语义理解、指令遵循
21、多模态视觉理解
22、多模态视觉理解+自动追踪
23、多模态视觉理解+视觉跟随
24、多模态视觉理解+视觉巡线
25、多模态视觉理解+深度相机距离问答
26、多模态视觉理解+SLAM导航
27、多模态视觉理解+SLAM导航+视觉巡线
28、意图揣测+多模态视觉理解+SLAM导航+视觉功能
五、雷达
8、雷达基础使用
思岚系列雷达
六、建立地图
9、Gmapping建图
cartographer快速重定位导航
RTAB-Map导航
RTAB-Map建图
slam-toolbox建图
cartographer建图
Navigation2多点导航避障
Navigation2单点导航避障
手机APP建图与导航
七、新机器人自动驾驶与调整
多模态视觉理解+SLAM导航
新机器人自动驾驶
场地摆放及注意事项
启动测试
识别调试
无人驾驶的车道保持
无人驾驶路标检测
无人驾驶红绿灯识别
无人驾驶之定点停车
无人驾驶转向决策
无人驾驶之喇叭鸣笛
无人驾驶减速慢行
无人驾驶限速行驶
无人驾驶自主泊车
无人驾驶综合应用
无人驾驶融合AI大模型应用
八、路网规划
路网规划导航简介
构建位姿地图
路网标注
路网规划结合沙盘地图案例
九、模型训练
十、YOLOV11开发
多机通讯配置
汝城县职业中等专业学校知识库-信息中心朱老师编辑
-
+
首页
六、建立地图
slam-toolbox建图
slam-toolbox建图
# slam-toolbox建图 ## 1.slam-toolbox简介 slam-toolbox 是一个基于 ROS 的开源 2D SLAM(同步定位与地图构建)算法包,主要用于移动机器人在未知环境中的建图与定位。它基于**图优化(Graph Optimization)** 框架,结合激光雷达(如 2D LiDAR)和惯性测量单元(IMU)等传感器数据,构建环境的二维栅格地图,并实时更新机器人的位姿。 #### 1.1 核心技术原理 ##### 1.1.1前端处理(激光扫描匹配) * **GICP 算法**:通过迭代计算当前激光扫描与地图的最优匹配,估计机器人的相对位姿变化。相比传统 ICP,GICP 引入概率模型,对离群点更鲁棒。 **鲁棒性是 robustness 的音译,在中文中常常也被表达为健壮性和强壮性,总体来说其可以用于反映一个系统在面临着内部结构或外部环境的改变时也能够维持其功能稳定运行的能力** 该性质广泛地用于包括计算机科学、控制科学与工程、生物学和数学模型等众多领域,在不同的领域中,其具体含义也存在着差异,如计算机软件在输入错误、磁盘故障、网络过载或有意攻击情况下,能否不死机、不崩溃,就是该软件的鲁棒性;一个控制系统在一定(结构,大小)的参数摄动下,维持其某些性能的特性,即为该控制系统的鲁棒性;在细胞遇到了环境变化或遗传变异时,细胞能否正常存活发挥其生物功能即为该细胞系统的鲁棒性 * **运动补偿**:利用 IMU 数据补偿机器人运动过程中的激光扫描畸变,提高动态环境下的匹配精度。 ##### 1.1.2后端优化(图优化) * **位姿图构建**:将机器人的位姿节点和扫描匹配得到的相对位姿约束构成图结构。 * **全局优化**:使用非线性优化算法(如 Ceres Solver)优化位姿图,消除累积误差,实现地图的全局一致性。  github项目地址:[https://github.com/SteveMacenski/slam\_toolbox](https://github.com/SteveMacenski/slam_toolbox) ### 2、程序功能说明 运行程序后,rviz中会显示建图的界面,用键盘或者手柄去控制小车运动,直到建完图。然后运行保存地图的指令保存地图。**(对于阿克曼车型小车如果要建图效果好的话转弯的时候尽量加一些停止动作,不要直接转一个大弯)** ### 3、使用前配置 设置我们的雷达和深度相机类型。 根据小车的车型,雷达类型和camera的类型做如下修改 ``` root@ubuntu:/# cd root@ubuntu:~# vim .bashrc ```  找到这个位置,键盘按一下i按键,修改成对应的相机和雷达型号,这里默认是tmini、nuwa。  修改完成后,保存退出vim,然后执行: `~# source .bashrc`  ### 4、程序启动 #### 4.1、启动命令 启动建图 ``` ros2 launch yahboomcar_nav map_slam_toolbox_launch.py ```  输入指令启动rviz可视化建图 ``` ros2 launch yahboomcar_nav display_map_launch.py ```  程序默认已经开启手柄控制功能,如果用手柄现在能直接连接接收器进行控制,如果要使用键盘进行控制,终端输入 ``` #键盘 ros2 run yahboomcar_ctrl yahboom_keyboard ```  然后控制小车,缓慢的走完需要建图的区域  建图完毕后,输入以下指令保存地图,终端输入 ``` ros2 launch yahboomcar_nav save_map_launch.py map_name:=/home/jetson/yahboomcar_ros2_ws/yahboomcar_ws/src/yahboomcar_nav/maps/yahboomcar map_type:=gridmap ```  会保存一个命名为yahboomcar的地图,这个地图保存在 `~/yahboomcar_ros2_ws/yahboomcar_ws/src/yahboomcar_nav/maps/yahboomcar.yaml` 会有两个文件生成,一个是yahboomcar.pgm,地图如下,我们的主板可以直接双击查看地图  yahboomcar.yaml,看下yaml的内容 ``` image: yahboomcar.pgm mode: trinary resolution: 0.05 origin: [-9.02, -15.5, 0] negate: 0 occupied_thresh: 0.65 free_thresh: 0.25 ``` * image:表示地图的图片,也就是yahboomcar.pgm * mode:该属性可以是trinary、scale或者raw之一,取决于所选择的mode,trinary模式是默认模式 * resolution:地图的分辨率, 米/像素 * origin:地图左下角的 2D 位姿(x,y,yaw), 这里的yaw是逆时针方向旋转的(yaw=0 表示没有旋转)。目前系统中的很多部分会忽略yaw值。 * negate:是否颠倒 白/黑 、自由/占用 的意义(阈值的解释不受影响) * occupied_thresh:占用概率大于这个阈值的的像素,会被认为是完全占用。 * free_thresh:占用概率小于这个阈值的的像素,会被认为是完全自由。 ### 5、查看节点通讯图 终端输入, ``` ros2 run rqt_graph rqt_graph ```  ### 6、查看TF树 终端输入, ``` ros2 run rqt_tf_tree rqt_tf_tree ``` 程序运行完之后,会出现一个tf转换界面  ### 7、slam-toolbox节点详情 `ros2 node info /slam_toolbox` 终端输入上述命令,可以查看到gmapping节点相关的订阅、发布话题 ``` /slam_toolbox Subscribers: /map: nav_msgs/msg/OccupancyGrid /parameter_events: rcl_interfaces/msg/ParameterEvent /scan: sensor_msgs/msg/LaserScan /slam_toolbox/feedback: visualization_msgs/msg/InteractiveMarkerFeedback Publishers: /map: nav_msgs/msg/OccupancyGrid /map_metadata: nav_msgs/msg/MapMetaData /parameter_events: rcl_interfaces/msg/ParameterEvent /pose: geometry_msgs/msg/PoseWithCovarianceStamped /rosout: rcl_interfaces/msg/Log /slam_toolbox/graph_visualization: visualization_msgs/msg/MarkerArray /slam_toolbox/scan_visualization: sensor_msgs/msg/LaserScan /slam_toolbox/update: visualization_msgs/msg/InteractiveMarkerUpdate /tf: tf2_msgs/msg/TFMessage Service Servers: /slam_toolbox/clear_changes: slam_toolbox/srv/Clear /slam_toolbox/describe_parameters: rcl_interfaces/srv/DescribeParameters /slam_toolbox/deserialize_map: slam_toolbox/srv/DeserializePoseGraph /slam_toolbox/dynamic_map: nav_msgs/srv/GetMap /slam_toolbox/get_interactive_markers: visualization_msgs/srv/GetInteractiveMarkers /slam_toolbox/get_parameter_types: rcl_interfaces/srv/GetParameterTypes /slam_toolbox/get_parameters: rcl_interfaces/srv/GetParameters /slam_toolbox/list_parameters: rcl_interfaces/srv/ListParameters /slam_toolbox/manual_loop_closure: slam_toolbox/srv/LoopClosure /slam_toolbox/pause_new_measurements: slam_toolbox/srv/Pause /slam_toolbox/save_map: slam_toolbox/srv/SaveMap /slam_toolbox/serialize_map: slam_toolbox/srv/SerializePoseGraph /slam_toolbox/set_parameters: rcl_interfaces/srv/SetParameters /slam_toolbox/set_parameters_atomically: rcl_interfaces/srv/SetParametersAtomically /slam_toolbox/toggle_interactive_mode: slam_toolbox/srv/ToggleInteractive Service Clients: Action Servers: Action Clients: ```
admin
2025年12月3日 15:57
10
转发
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
Word文件
PDF文档
PDF文档(打印)
分享
链接
类型
密码
更新密码
有效期
AI