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开发
多机通讯配置
汝城县职业中等专业学校知识库-信息中心朱老师编辑
-
+
首页
七、新机器人自动驾驶与调整
无人驾驶自主泊车
无人驾驶自主泊车
## 1.课程内容 **注意:这个程序是在沙盘地图上运行的,个人地图需要自行调整程序** 1.学习小车识别到红绿灯之后做的动作 2.学习新出现的关键源码 ### 2.自助泊车源码 自助泊车源码路径: ``` /home/jetson/yahboomcar_ros2_ws/yahboomcar_ws/src/auto_drive/auto_drive/yolo_detect.py ``` ``` /home/jetson/yahboomcar_ros2_ws/yahboomcar_ws/src/auto_drive/auto_drive/auto_drive.py ``` ### 3.程序启动 ``` 启动相机+底盘+路标车道线 ros2 launch auto_drive auto_drive_bringup.launch.py ```  程序运行之后会显示yolo识别画面,小车会车道线居中运行,同时会根据行驶过程中识别到的路标做对应的动作。(如果开启程序之后终端没有报错,小车不动,可以运行下面程序来检查参数) 启动动态参数配置节点 ``` ros2 run rqt_reconfigure rqt_reconfigure ```  **如果小车不动检查两个参数,START_AutoDrive 是否勾上了,conbine_nav是否为flase** ☑️ 修改完参数,点击GUI空白处写入参数值。注意只会生效当次启动,永久生效需要将参数修改到源码当中。 ### 3.2 识别到停车之后小车的运动 **注意:因为自助泊车使用的固定动作,所以右转和停车A的路标是需要放在固定位置的**  程序识别到停车A程序会打印(停车A停车B是做一样的动作)  小车会运行固定动作入库,先前进3秒之后横向入库  自助泊车处理函数在auto_drive.py文件下,下面是识别到停车之后进入的函数,用户可以自行修改识别到路标之后小车运动 ``` def parking_A(self): ''''停车场A、B''' self.get_logger().info('parking A') time.sleep(3.5) self.turn_action_active = True self.__set_current_speed(linear_x=0.0, angular_z=0.0 ) time.sleep(1.0) self.__set_current_speed(linear_y=-0.3) time.sleep(1.7) self.__set_current_speed(linear_x=0.0, angular_z=0.0 ) ``` ## 4.源码解析 ### 4.1、auto_drive.py yolo路标消息接收: ``` def sign_callback(self, msg:DetectionObject): '''订阅yolo识别结果''' class_name = msg.class_name object_distance = self._get_distance(msg.ymin) # 计算距离 object = Object(msg.class_name, msg.confidence, object_distance) ``` 多重过滤机制:主要为了防止一直识别路标并触发,识别到不同路标才会解锁动作。 ``` # 1. 检查是否正在执行其他动作 if self.action_runing: return # 2. 检查冷却时间(防重复触发) current_time = time.time() if class_name in self.last_processed_time: time_diff = current_time - self.last_processed_time[class_name] if time_diff < self.cooldown_time: # 默认3秒冷却 return # 3. 检查是否是重复路标 if class_name == self.last_sign: return # 4. 检查该路标是否被使能 if not self.sign_enable_list[对应的索引]: return ``` 事件队列处理 ``` def handle_events(self): '''处理目标识别事件''' while True: if not self.event_queue.empty(): object = self.event_queue.get() self.action_runing = True current_sign = object.class_name try: # 根据路标类型执行相应动作 if object.class_name == "straight" and self.sign_enable_list[10]: self.go_straight() elif object.class_name == "turnright" and self.sign_enable_list[11]: self.turn('right') # ... 其他路标处理 finally: # 更新状态记录 self.last_processed_time[current_sign] = time.time() self.last_sign = current_sign self.action_runing = False ``` 具体动作实现 ``` def parking_A(self): ''''停车场A、B''' self.get_logger().info('parking A') time.sleep(3.5) self.turn_action_active = True self.__set_current_speed(linear_x=0.0, angular_z=0.0 ) time.sleep(1.0) self.__set_current_speed(linear_y=-0.3) time.sleep(1.7) self.__set_current_speed(linear_x=0.0, angular_z=0.0 ) ```
admin
2025年12月7日 11:31
36
转发
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
Word文件
PDF文档
PDF文档(打印)
分享
链接
类型
密码
更新密码
有效期
AI