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开发
多机通讯配置
汝城县职业中等专业学校知识库-信息中心朱老师编辑
-
+
首页
四、多模态视觉理解
21、多模态视觉理解
21、多模态视觉理解
### 多模态视觉理解 #### 1.课程内容 1.学习使用机器人的视觉理解功能 2.学习新出现的关键源码 #### 2.准备工作 #### 2.1 内容说明 直接打开终端,输入本节课程提及的指令即可。 📝 示例使用multimodel : "qwen-vl-max-2025-04-08" 国际版用户使用model:"qwen/qwen2.5-vl-72b-instruct:free","qwen-vl-latest" ⚠️ 同样的测试指令,大模型回复的内容不会完全相同,和教程中截图会略有差异,如果需要增强或减弱大模型回复的多样性,参考【AI大模型基础知识】-【5.配置AI大模型】课程中配置决策层大模型参数部分。 ### 3. 运行案例 #### 3.1 启动程序 打开终端输入命令: ``` ros2 launch largemodel largemodel_control.launch.py ```  初始化完成后会显示如下内容,  ### 3.2 测试案例 这里给出两条参考的测试案例,你们可自行编撰自己的测试指令 **帮我看看你面前都有什么物品,并说一说这些物品都有什么作用 请你看看面前有没有蓝色方块和一包纸巾,有的话你就点点头,没有的话你就摇摇头** **3.2.1 案例1** 首先使用"你好小亚"唤醒机器人,机器人回应:"我在,请吩咐",机器人应答后蜂鸣器短暂(beep—)响后,用户可以进行讲话,机器人会进行动态声音检测,如果有声音活动则打印1,无声音活动会打印-,当说话结束后会进行尾音检测,静音超过450ms则停止录音。 动态声音检测(VAD)如下图所示:  机器人会先与用户进行对方回复用户,然后按照指令动作,同时终端打印信息如下:   动作列表中有**finishtask()**,证明执行层大模型判定机器人已经完成了用户指令,进入**等待状态**,此时可以再此唤醒小亚,结束当前任务:  ### 4.源码解析 源码位于: jetson orin nano 主机: ``` #NUWA相机用户 /home/jetson/yahboomcar_ros2_ws/yahboomcar_ws/src/largemodel/largemodel/action_service_nuwa.py ``` **action_service.py程序** 在CustomActionServer类的**init_ros_comunication**方法中,创建了seewhat_handle的话题发布者,用于发布视觉处理信号 ``` #创建发布者,发布 seewhat_handle 话题 self.seewhat_handle_pub = self.create_publisher(String, 'seewhat_handle', 1) ``` nuwa深度相机,action_service_nuwa.py 创建了/ascamera_hp60c/camera_publisher/rgb0/image的话题订阅者,用于接收深度相机的彩色画面 ``` #图像话题订阅者 self.subscription = self.create_subscription( Image, self.image_topic, self.image_callback, 1 ) ``` image_callback回调函数会不断订阅深度相机的彩色画面, 当动作服务器调用**seewhat**方法时,会向seewhat_handle话题发布信号,通知模型服务器model_service节点向多模态大模型上传一张图像 ``` def seewhat(self): self.save_single_image() msg = String(data="seewhat") self.seewhat_handle_pub.publish( msg ) # 归一化,发布seewhat话题,由model_service调用大模型 ``` 此时会调用save_single_image方法保存一张image.png图像文件, 图像保存路径: /home/jetson/yahboomcar_ros2_ws/yahboomcar_ws/install/largemodel/share/largemodel/resources_file/image.png **model_service.py程序** 在LargeModelService类的**init_ros_comunication**方法中 创建了seewhat_handle的话题订阅者,用于接收视觉处理信号 **#创建seehat订阅者 self.seewhat_sub = self.create_subscription(String,'seewhat_handle', self.seewhat_callback,1)** seewhat_callback回调函数接收到视觉处理信号时,会调用**dual_large_model_mode**方法,再调用**instruction_process**方法请求推理,将一张深度相机的图像上传至多模态大模型。 ``` def seewhat_callback(self, msg): if msg.data == "seewhat": if ( self.regional_setting == "China" ): # 在线模型推理方式:决策层推理+执行层监督 / Online model inference method: Decision layer reasoning + Execution layer supervision self.dual_large_model_mode(type="image") else: self.dual_large_model_international_model(type="image") def instruction_process(self, prompt, type, conversation_id=None): """ 根据输入信息的类型(文字/图片),构建不同的请求体进行推理,并返回结果) Based on the type of input information (text/image), construct different request bodies for inference and return the result. """ json_str = None prompt_seewhat = self.prompt_dict[self.language].get("prompt_2") if self.regional_setting == "China": # 国内版 if type == "text": raw_content = self.model_client.multimodalinfer(prompt) elif type == "image": raw_content = self.model_client.multimodalinfer( prompt_seewhat, image_path=self.image_save_path ) json_str = self.extract_json_content(raw_content) elif self.regional_setting == "international": # 国际版 if type == "text": result = self.model_client.TaskExecution( input=prompt, map_mapping=self.map_mapping, language=self.language_dict[self.language], conversation_id=conversation_id, ) if result[0]: json_str = self.extract_json_content(result[1]) self.conversation_id = result[2] else: self.get_logger().info(f"ERROR:{result[1]}") elif type == "image": result = self.model_client.TaskExecution( input=prompt_seewhat, map_mapping=self.map_mapping, language=self.language_dict[self.language], image_path=self.image_save_path, conversation_id=conversation_id, ) if result[0]: json_str = self.extract_json_content(result[1]) self.conversation_id = result[2] else: self.get_logger().info(f"ERROR:{result[1]}") ```
admin
2025年12月1日 18:19
16
转发
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
Word文件
PDF文档
PDF文档(打印)
分享
链接
类型
密码
更新密码
有效期
AI