自动驾驶
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开发
多机通讯配置
汝城县职业中等专业学校知识库-信息中心朱老师编辑
-
+
首页
六、建立地图
9、Gmapping建图
9、Gmapping建图
### 1、算法简介 * gmapping只适用于单帧二维激光点数小于1440的点,如果单帧激光点数大于1440,那么就会出现【[mapping-4] process has died】 这样的问题。 * Gmapping是基于滤波SLAM框架的常用开源SLAM算法。 * Gmapping基于RBpf粒子滤波算法,即时定位和建图过程分离,先进行定位再进行建图。 * Gmapping在RBpf算法上做了两个主要的改进:改进提议分布和选择性重采样。 优点:Gmapping可以实时构建室内地图,在构建小场景地图所需的计算量较小且精度较高。 缺点:随着场景增大所需的粒子增加,因为每个粒子都携带一幅地图,因此在构建大地图时所需内存和计算量都会增加。因此不适合构建大场景地图。并且没有回环检测,因此在回环闭合时可能会造成地图错位,虽然增加粒子数目可以使地图闭合但是以增加计算量和内存为代价。  ### 2、程序功能说明 运行程序后,rviz中会显示建图的界面,用键盘或者手柄去控制小车运动,直到建完图。然后运行保存地图的指令保存地图。 ## 3、机器人键盘控制 ### 3.1、按键说明 #### 3.1.1、方向控制 | 【i】或【I】 | 【 linear,0】 | 【u】 或【U】 | 【linear,angular】 | |---------|---------------|----------|----------------------| | 【,】 | 【-linear,0】 | 【o】 或【O】 | 【linear,- angular】 | | 【j】或【J】 | 【0, angular】 | 【m】或【M】 | 【- linear,- angular】 | | 【l】或【L】 | 【0,- angular】 | 【.】 | 【 - linear,angular】 | #### 3.1.2 速度控制 | 按键 | 速度变化 | 按键 | 速度变化 | |-----|---------------|-----|---------------| | 【q】 | 线速度和角速度都增加10% | 【z】 | 线速度和角速度都减少10% | | 【w】 | 仅线速度增加10% | 【x】 | 仅线速度减少10% | | 【e】 | 仅角速度增加10% | 【c】 | 仅角速度减少10% | | 【t】 | 线速度X轴/Y轴方向切换 | 【s】 | 停止键盘控制 | | 订阅话题 | 类型 | 描述 | |--------------|------------------------|---------------------------| | tf | tf/tfMessage | 用于激光雷达坐标系、基坐标系、里程计坐标系之间转换 | | scan | sensor_msgs/LaserScan | 激光雷达扫描数据 | | 发布话题 | 类型 | 描述 | | map_metadata | nav_msgs/MapMetaData | 发布地图Meta数据 | | map | nav_msgs/OccupancyGrid | 发布地图栅格数据 | | ~entropy | std_msgs/Float64 | 发布机器人姿态分布熵的估计 | | 服务 | 类型 | 描述 | | dynamic_map | nav_msgs/GetMap | 获取地图数据 |  ### 4、程序启动 #### 4.1、启动命令 1、 启动建图 ```启动建图 ros2 launch yahboomcar_nav map_gmapping_launch.py ```  **输入指令启动rviz可视化建图** ```启动rviz可视化建图 ros2 launch yahboomcar_nav display_map_launch.py ```  程序默认已经开启手柄控制功能,如果用手柄现在能直接连接接收器进行控制,如果要使用键盘进行控制,终端输入 ```键盘控制 ros2 run yahboomcar_ctrl yahboom_keyboard ``` 然后控制小车,缓慢的走完需要建图的区域,建图完毕后,输入以下指令保存地图,终端输入 `ros2 launch yahboomcar_nav save_map_launch.py`  会保存一个命名为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: [-10, -21.2, 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`  如果一开始没有显示,选择【Nodes/Topics(all)】,然后点击左上角的刷新按钮。 #### 6、查看TF树 终端输入 `ros2 run rqt_tf_tree rqt_tf_tree` 程序运行完之后,会出现一个tf转换界面  ### 7、代码解析 这里只说明建图的map_gmapping_launch.py,这个文件路径是 `~/yahboomcar_ros2_ws/yahboomcar_ws/src/yahboomcar_nav/launch/map_gmapping_launch.py` ``` **map_gmapping_launch.py文件代码** from launch import LaunchDescription from launch_ros.actions import Node import os from launch.actions import IncludeLaunchDescription from launch.launch_description_sources import PythonLaunchDescriptionSource from ament_index_python.packages import get_package_share_directory def generate_launch_description(): laser_bringup_launch = IncludeLaunchDescription(PythonLaunchDescriptionSource( [os.path.join(get_package_share_directory('yahboomcar_nav'), 'launch'), '/laser_bringup_launch.py']) ) slam_gmapping_launch = IncludeLaunchDescription(PythonLaunchDescriptionSource( [os.path.join(get_package_share_directory('slam_gmapping'), 'launch'), '/slam_gmapping.launch.py']) ) return LaunchDescription([laser_bringup_launch, slam_gmapping_launch]) ``` 这里启动了一个launch文件-slam_gmapping_launch,详细看下slam_gmapping_launch,该文件位于 ``` ~/yahboomcar_ros2_ws/software/library_ws/src/ros2_gmapping/slam_gmapping/launch/slam_gmapping.launch.py ``` slam_gmapping.launch.py代码: ``` from launch import LaunchDescription from launch.substitutions import EnvironmentVariable import launch.actions import launch_ros.actions import os from ament_index_python.packages import get_package_share_directory def generate_launch_description(): return LaunchDescription([ launch_ros.actions.Node( package='slam_gmapping', executable='slam_gmapping', output='screen', parameters=[os.path.join(get_package_share_directory("slam_gmapping"), "params", "slam_gmapping.yaml")]), ]) ``` 这里启动了slam_gmapping的节点,加载了slam_gmapping.yaml参数文件,该文件位于 ~/yahboomcar_ros2_ws/software/library_ws/src/ros2_gmapping/slam_gmapping/params/slam_gmapping.yaml slam_gmapping.yaml文件代码: ``` /slam_gmapping: ros__parameters: angularUpdate: 0.5 astep: 0.05 base_frame: base_footprint map_frame: map odom_frame: odom delta: 0.05 iterations: 4 kernelSize: 1 lasamplerange: 0.005 lasamplestep: 0.005 linearUpdate: 1.0 llsamplerange: 0.01 llsamplestep: 0.01 lsigma: 0.075 lskip: 0 lstep: 0.05 map_update_interval: 5.0 maxRange: 8.0 maxUrange: 5.0 minimum_score: 0.1 occ_thresh: 0.25 ogain: 3.0 particles: 50 qos_overrides: /parameter_events: publisher: depth: 1000 durability: volatile history: keep_last reliability: reliable /tf: publisher: depth: 100 durability: volatile history: keep_last reliability: reliable resampleThreshold: 0.5 sigma: 0.02 srr: 0.1 srt: 0.2 str: 0.1 stt: 0.2 temporalUpdate: 1.0 transform_publish_period: 0.05 use_sim_time: false xmax: 10.0 xmin: -10.0 ymax: 10.0 ymin: -10.0 ```
admin
2025年12月4日 11:02
16
转发
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
Word文件
PDF文档
PDF文档(打印)
分享
链接
类型
密码
更新密码
有效期
AI