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开发
多机通讯配置
汝城县职业中等专业学校知识库-信息中心朱老师编辑
-
+
首页
三、深度相机
15、深度相机人脸跟随
15、深度相机人脸跟随
### 1、程序功能说明 程序启动后,小车会识别出来的人脸并框选,之后小车会持续跟随人脸保持在画面中心,并且和识别到的人脸保持0.4米。按下 q/Q键 则是退出程序。 ### 2、程序代码参考路径 `/root/yahboomcar_ros2_ws/yahboomcar_ws/src/yahboomcar_depth/yahboomcar_depth/Advanced/faceFollow.py` 主要完成人脸检测,根据人脸中心坐标、人脸距小车距离来计算小车前进距离和转弯角度,并发布前进、转弯数据到小车。 ### 3、程序启动 #### 3.1、启动命令 终端输入: ``` #启动深度相机数据 ros2 launch ascamera hp60c.launch.py #启动小车底盘 ros2 launch yahboomcar_bringup yahboomcar_bringup_M1_launch.py #启动人脸跟随程序 ros2 run yahboomcar_depth depth_faceFollow ``` 当检测到人脸时,会自动框出人脸区域,小车开始跟随。(**注意:小车如果运行一顿一顿效果不好时,可以更换一个深度信息更好识别的人脸照片,这是因为如果人脸深度信息为0时小车会停下来)** 程序启动后,会出现以下画面  框选人脸并且有深度信息的时候小车会进行跟随运动。 #### 3.2、动态参数调节 终端输入, ``` ros2 run rqt_reconfigure rqt_reconfigure ```  ☑️ 修改完参数,点击GUI空白处写入参数值。注意只会生效当次启动,永久生效需要将参数修改到源码当中。 参数解析: 【linear_Kp】、【linear_Ki】、【linear_Kd】:小车跟随过程中的线速度PID调控。 【angular_Kp】、【angular_Ki】、【angular_Kd】:小车跟随过程中的角速度PID调控。 【minDist】:跟随距离,一直保持这个距离。 【scale】:PID比例缩放。 4、核心代码 4.1、depth_faceFollow.py 这个程序主要有以下几个功能: 订阅深度相机话题,获取话题图像; 使用OpenCV的人脸检测器检测人脸; 处理图像得到人脸图像的中心坐标,深度距离信息。 计算距离PID,中心坐标PID,获得小车前进速度距离、转弯角度。 部分核心代码如下, ``` #获取检测到人脸的方框大小 #Get the size of the box where the face is detected faces = self.face_patterns.detectMultiScale(result_image , scaleFactor=1.2, minNeighbors=10, minSize=(50, 50)) #单人脸处理逻辑 #Single face processing logic if len(faces) == 1: #人脸中心计算 #Face center calculation for (x, y, w, h) in faces: self.Center_x = x + w // 2 # X中心点 X center point self.Center_y = y + h // 2 # Y中心点 Y center point self.Center_r = w * h // 100 # 面积半径 Area radius cv.rectangle(result_image, (x, y), (x+w, y+h), (0,255,0), 2) # 绘制绿框 Draw a green frame #深度信息获取 Deep information acquisition points = [ (int(self.Center_y), int(self.Center_x)), # 中心点 Center Point (int(self.Center_y-1), int(self.Center_x-1)), # 右下偏移点 Lower right offset point (int(self.Center_y-3), int(self.Center_x-3)) # 左上偏移点 Upper left offset point ] valid_depths = [] for y, x in points: depth_val = depth_image_info[y][x] if depth_val != 0: valid_depths.append(depth_val) #机器人控制 Robot control if dist > 0.2: # 有效距离阈值 Effective distance threshold self.execute(self.Center_x, dist) # 执行控制逻辑 Execution control logic # 根据x值、y值,使用PID算法,计算运动速度,转弯角度 # Calculate the movement speed and turning angle using the PID algorithm based on the x and y values def execute(self, rgb_img, action): #PID计算偏差 PID calculation deviation linear_x = self.linear_pid.compute(dist, self.minDist) angular_z = self.angular_pid.compute(point_x,320) # 小车停车区间,速度为0 The car is in the parking area and the speed is 0 if abs(dist - self.minDist) < 30: linear_x = 0 if abs(point_x - 320.0) < 30: angular_z = 0 twist = Twist() ... # 将计算后的速度信息发布 Publish the calculated speed information self.pub_cmdVel.publish(twist) ```
admin
2025年11月30日 18:50
14
转发
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
Word文件
PDF文档
PDF文档(打印)
分享
链接
类型
密码
更新密码
有效期
AI