自动驾驶
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开发
多机通讯配置
汝城县职业中等专业学校知识库-信息中心朱老师编辑
-
+
首页
三、深度相机
14、深度相机颜色跟随
14、深度相机颜色跟随
### 1、程序功能说明 程序启动后,默认跟随的颜色是红色,可以按下 `r/R`(不区分大小写) 键进入选色模式,通过鼠标选定一种颜色,画面会锁定这个颜色,按下 `空格键` ,进入跟随模式。小车时刻保证被跟随的物体保持在画面中心,并且和物体保持0.4米。按下 `q/Q键` 则是退出程序。 ### 2、程序代码参考路径 ``` ~/yahboomcar_ros2_ws/yahboomcar_ws/src/yahboomcar_depth/yahboomcar_depth/Advanced/colorTracker.py ~/yahboomcar_ros2_ws/yahboomcar_ws/src/yahboomcar_depth/yahboomcar_depth/astra_common.py ``` * colorTracker.py 主要是完成图像处理,根据被跟随颜色物体的中心坐标,和深度距离信息,计算出小车要前进的距离和转弯角度,发布控制方向、前进数据到小车。 * astra_common.py 颜色追踪(color_follow类):通过HSV颜色空间识别和追踪特定颜色的物体 图像处理工具:包括多图像拼接显示(ManyImgs函数)、形状检测(is_regular_square函数) 文件读写功能:用于保存/读取HSV颜色范围 ### 3、程序启动 #### 3.1、启动命令 终端输入, ``` #启动深度相机数据 ros2 launch ascamera hp60c.launch.py #启动小车底盘 ros2 launch yahboomcar_bringup yahboomcar_bringup_M1_launch.py #启动颜色跟随程序 ros2 run yahboomcar_depth depth_colorTracker ``` 以追踪默认红色为例,程序启动后,按下空格,会出现以下画面  然后按下键盘上的r/R键进入选色模式,用鼠标框出一片区域(该区域只能有一种颜色), 然后,按下空格键进入跟随模式,缓慢移动物体,小车会跟随移动,注意的是物体的深度信息如果是0的话小车会停下来,所以选择的物体建议大一点这样深度信息会更好。 #### 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比例缩放。 【Hmin】、【Smin】、【Vmin】:表示HSV的最低值 【Hmax】、【Smax】、【Vmax】:表示HSV的最大值 #### 4、核心代码 #### 4.1、colorTracker.py 这个程序主要有以下几个功能: * 订阅深度相机话题,获取深度图像; * 获取键盘鼠标事件,用于切换模式和取色; * 处理图像得到物体的中心坐标,深度距离信息。 * 计算距离PID,中心坐标PID,获得小车前进速度距离、转弯角度。 部分核心代码如下, ``` # 重要的函数,获取到x值、y值和distance_值Important functions to get x value, y value and distance_ value def process(self, rgb_img, action): #目标中心点深度测量 Target center point depth measurement if self.Center_r > 5: 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 - 1), int(self.Center_x - 1)) # 左上偏移点 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) if valid_depths: dist = int(sum(valid_depths) / len(valid_depths)) else: dist = 0 self.dist = dist #当距离大于0.2米且启动状态为True时,调用 execute 方法控制机器人运动 #When the distance is greater than 0.2 meters and the start state is True, call the execute method to control the robot movement if dist > 0.2 and self.Start_state == True: self.execute(self.Center_x, dist) # 根据x值、y值,使用PID算法,计算运动速度,转弯角度 According to the x value and y value, use the PID algorithm to calculate the movement speed and turning angle 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日 15:21
2
转发
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
Word文件
PDF文档
PDF文档(打印)
分享
链接
类型
密码
更新密码
有效期
AI