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开发
多机通讯配置
汝城县职业中等专业学校知识库-信息中心朱老师编辑
-
+
首页
三、深度相机
16、深度相机KCF物体跟随
16、深度相机KCF物体跟随
### KCF物体跟随 #### 1、程序功能说明 程序启动后,可以通过鼠标在画面中框选需要跟随的物体,按下 空格键 ,小车进入跟踪模式。小车会与被跟踪的物体保持0.4米的距离,并且时刻保证被追踪的物体保持在画面中心。按下R键则进入选择模式,按下Q键则退出程序。。 **⚠️该功能对框选区域大的物体,跟随效果会比较好,缓慢移动否则容易丢失目标。** ### 2、程序代码参考路径 ``` /root/yahboomcar_ros2_ws/yahboomcar_ws/src/yahboomcar_depth/yahboomcar_depth/kcf/KCF_Tracker.py /root/yahboomcar_ros2_ws/yahboomcar_ws/src/yahboomcar_depth/yahboomcar_depth/astra_common.py ``` mono_Tracker.py 主要是完成物体检测与追踪,根据检测到的物体中心坐标,计算出小车前进的转弯角度和前进距离速度,发布控制舵机角度、电机控制速度数据到小车。 astra_common.py 函数(Tracker)类:实现多种OpenCV追踪算法(BOOSTING、KCF、CSRT等) 提供追踪器初始化(initWorking)和实时更新(track)接口 ### 3、程序启动 #### 3.1、启动命令 终端输入: ``` #启动深度相机数据 ros2 launch ascamera hp60c.launch.py #启动小车底盘、雷达 ros2 launch yahboomcar_bringup laser_bringup_launch.py #启动颜色跟随程序 ros2 run yahboomcar_depth KCF_Tracker ``` 程序启动后,会出现以下画面:  使用鼠标在画面中框选需要追踪的物体,(如果容易跟丢的话建议框选大一点明显一点的物体)  然后,按下空格键进入跟随模式,缓慢移动物体,小车会跟着移动并且与物体保持1m的距离。  ### 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、KCF_Tracker.py 这个程序主要有以下几个功能: * 初始化KCF追踪器 * 订阅深度话题,获取图像 * 通过鼠标交互选择追踪目标 * 计算目标中心坐标并发布 * 使用PID算法计算舵机角度、前进速度并发布控制指令 部分核心代码如下 ``` #追踪初始化 self.tracker_type = 'KCF' #距离计算 #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 #控制执行 #Control execution if dist > 0.2: # 有效距离阈值(0.2米) Effective distance threshold (0.2 meters) self.execute(self.Center_x, dist) # 执行控制 Execution control # 根据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:02
10
转发
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
Word文件
PDF文档
PDF文档(打印)
分享
链接
类型
密码
更新密码
有效期
AI