ROS2自动驾驶
yolo5自动驾驶
1、重要!更换U盘的操作指引
2、关闭开机自启动大程序
3、Linux基础
4、YoloV5训练集
5、自动驾驶基础调试(代码解析)
6、自动驾驶特调
7、自动驾驶原理
8、PID算法理论
9、阿克曼运动学分析理论
10、建立运动学模型
常用命令
!重要!首次使用
一、原理分析
麦克纳姆轮运动学分析
二、AI大模型
3、AI大模型类型和原理
4、RAG检索增强和模型训练样本
5、具身智能机器人系统架构
6、具身智能玩法核心源码解读
7、配置AI大模型
8、配置API-KEY
三、深度相机
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大模型应用
八、路网规划
路网规划导航简介
构建位姿地图
路网标注
路网规划结合沙盘地图案例
路径重规划
九、模型训练
1、数据采集
2、数据集标注
3、YOLOv11模型训练
4、模型格式转换
十、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
51
转发
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
Word文件
PDF文档
PDF文档(打印)
分享
链接
类型
密码
更新密码
有效期
AI