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开发
多机通讯配置
汝城县职业中等专业学校知识库-信息中心朱老师编辑
-
+
首页
三、深度相机
17、深度相机Mediapipe手势跟随
17、深度相机Mediapipe手势跟随
## Mediapipe手势跟随 #### 1、程序功能说明 程序启动后,自动检测画面中的人手手势,小车会锁定检测到的手势位置(食指根部关节),并保持0.4米距离进行跟随运动。使其保持在画面中心位置。当检测到"0"(拳头)手势时停止追踪,其他手势继续追踪。在终端使用 快捷键Ctrlc 则是退出程序。 #### 2、程序代码参考路径 ``` ~/yahboomcar_ros2_ws/yahboomcar_ws/src/yahboomcar_depth/yahboomcar_depth/MediaPipe/gestureFollow.py ~/yahboomcar_ros2_ws/yahboomcar_ws/src/yahboomcar_depth/yahboomcar_depth/media_common.py gestureFollow.py ``` * gestureFollow.py 主要是完成手势检测与跟随,根据检测到的手势关键点坐标、手掌距离小车的深度距离,计算出小车要转动的角度以及要前进速度,发布控制转弯角度、电机速度数据到小车。 * media_common.py * handDetector类: * 实时手部关键点检测和跟踪 * 手势识别(支持0-8等多种手势) * 提供手指状态检测和角度计算功能 ### 3、程序启动 #### 3.1、启动命令 终端输入, ``` ros2 launch ascamera hp60c.launch.py ros2 launch yahboomcar_bringup yahboomcar_bringup_M1_launch.py ros2 run yahboomcar_depth depth_gestureFollow ``` 当检测到手势时,会自动标记手势位置并显示中心坐标,小车开始追踪跟随。(注意:这个跟随效果和能不能识别到手掌深度距离信息有很大关系,如果效果不好可以增加跟随的距离、摄像头网上抬) 程序启动后,会出现以下画面,   3.2、动态参数调节 终端输入, ` ros2 run rqt_reconfigure rqt_reconfigure`  ☑️ 修改完参数,点击GUI空白处写入参数值。注意只会生效当次启动,永久生效需要将参数修改到源码当中。 参数解析: 【linear_Kp】、【linear_Ki】、【linear_Kd】:小车跟随过程中的线速度PID调控。 【angular_Kp】、【angular_Ki】、【angular_Kd】:小车跟随过程中的角速度PID调控。 【minDistance】:跟随距离,一直保持这个距离。 【scale】:PID比例缩放。 ### 4、核心代码 #### 4.1、gestureFollow.py 这个程序主要有以下几个功能: 初始化手势检测器 订阅深度话题,获取图像 检测图像中的手势关键点 计算手势中心坐标并发布 使用PID算法计算舵机角度、前进速度并发布控制指令 部分核心代码如下, ``` #初始化手掌检测对象 self.hand_detector = handDetector(detectorCon=0.8) #距离计算 #Distance calculation points = [ (int(self.cy), int(self.cx)), # 中心点 (int(self.cy +1), int(self.cx +1)), # 右下偏移点 (int(self.cy - 1), int(self.cx - 1)) # 左上偏移点 ] valid_depths = [] for y, x in points: depth_val = depth_image_info[y][x] if depth_val != 0: valid_depths.append(depth_val) if valid_depths: dist = int(sum(valid_depths) / len(valid_depths)) else: dist = 0 #判断前进或者停止 if self.hand_detector.get_gesture() == "Zero": cv.putText(result_image, "STOP", (300, 30), cv.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), 4) self.pub_cmdVel.publish(Twist()) elif dist > 0.2: cv.putText(result_image, "RUN", (300, 30), cv.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), 4) self.execute(self.x,dist) # 根据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日 19:09
10
转发
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
Word文件
PDF文档
PDF文档(打印)
分享
链接
类型
密码
更新密码
有效期
AI