自动驾驶
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开发
多机通讯配置
汝城县职业中等专业学校知识库-信息中心朱老师编辑
-
+
首页
四、多模态视觉理解
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
4
转发
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
Word文件
PDF文档
PDF文档(打印)
分享
链接
类型
密码
更新密码
有效期
AI