vkros培训总结

1.机械臂

启动机械臂控制(选一个就好)

roslaunch vkarm_controller vkarm_controller.launch    # 有gui
roslaunch vkarm_controller vkarm_new_controller.launch    # 无gui

GUI机械臂控制

roslaunch vkarm_control_gui vkarm_control_gui.launch

启动机械臂服务

roslaunch vkarm_controller vkarm_control_bsp.launch

 2.AR码

二维码识别

roslaunch vkarm_ar_markers vkarm_ar_pose_new.launch

 3.语音技术

语音合成

roslaunch xf_mic_tts_offline xf_mic_tts_offline.launch

语音识别

roslaunch xf_mic_asr_offline xf_mic_asr_offline.launch

 4.速度控制

启动底盘控制 

roslaunch vkbot_bringup minimal.launch

5.建图 

启动建图节点:

roslaunch vkbot_navigation vkbot_gmapping_rviz_demo.launch
roslaunch vkarm_controller vkarm_new_controller.launch

启动键盘控制:

roslaunch vkbot_teleop keyboard_teleop.launch

保存指令

rosrun map_server map_saver -f /home/vkrobot/test_map 

6.导航 

启动导航:

roslaunch vkbot_navigation vkbot_navigation_teb_rviz_test_demo.launch map_file:=/x/x(保存的地图)

查看位姿:

rostopic echo /amcl_pose    # 查看位姿,运行后无需关闭,会自动刷新

7.代码 

实战:家庭服务应用

  1. 建图
  2. 启动导航,记录起始点位姿(七个值,四个需修改),再通过键盘控制将机器人先后移动到要抓取的点位A、B,并分别记录它们的位姿到代码中。                                                       
  3. 关闭所有终端,启动语音技术,启动导航,启动机械臂,将机械臂调至初始或home位置,启动二维码识别,运行python程序,喊小薇小薇,任务开始。

可能会遇到的问题:

  •  control_gui启动后,点“开启定时器”,等几秒再去点“使能”,“使能”无法启动时点一遍它右边的disabled,在卡顿的过程中迅速连点几次“使能”,高概率可以成功启动(玄学)                                                             
  • 导航加载地图文件后缀为yaml,而不是pgm。如果启动导航后没有加载地图,也没有小车,就去检查急停按钮是否释放                                                                                                                   
  • 不可以手动移动机器人到A,B点,这样获取的位置不准确,此处无需调 rviz里的绿色箭头(2dpose)                                                                                                                                        
  • 运行python程序前记得调整2dpose,让红色(实际检测的)与黑色(地图)尽量匹配                       
  • 语音关键词修改文件位置:/xf_mic_asr_offline/config/call.bnf,可用locate + call.bnf 命令找到他的路径,修改完后对应的代码也要修改哦!                                                                                  
  •  若在夹取的过程中夹爪与桌子距离过近可以调(抓取的安全距离范围(x方向)  单位米)       
  • 若夹不准可以调(夹取药品的误差补偿系数 W_value=[0.0,0.01,-0.03])三个值分别代表x, y, z,调大小根据右手法则去理解                                                                                                           

opencv 颜色识别

        OpenCV是一个开源的计算机视觉库,可用于实时图像处理、计算机视觉、图像分析以及机器学习等各种领域。其主要功能包括图像和视频捕获、图像处理、计算机视觉、机器学习、视频分析、物体检测和跟踪等。

一、图像相关概念

图像的相关概念:

像素点:是最小的图像单元,一张图片由好多的像素点组成

像素:也就是图片的尺寸,例如500 * 338

图像分辨率:指每英寸图像内的像素点数;分辨率越高,像素的点密越高,图像越逼真

二值图像:即图像上的每一个像素只有两种取值,为010代表黑,1代表白)

灰度图像:即图像上的每一个像素有0~255多种取值,只包含了一个通道的信息

彩色图像:即每个像素点由红(R)、绿色(G)、蓝(B)三个分量来表示,分量介于0~255

RGB模型 

RGB在opencv中为BGR,即第一个通道是蓝色(B)分量,第二个通道是绿色(G)分量,第三个通道是红色(R)分量。

HSV模型

        HSV是色度(Hue)、饱和度(Saturation)和亮度(Value)的简写

        色度是色彩的基本属性,就是平时常说的颜色,例如红色,蓝色等;饱和度是指颜色的纯度,饱和度越高色彩越纯越艳,饱和度越低色彩则逐渐地变灰变暗,饱和度的取值范围是由0到100%;亮度是颜色的明亮程度,其取值范围由0到计算机中允许的最大值。

      由于色度、饱和度和亮度的取值范围不同,因此其颜色空间模型用锥形表示,其形状如图所示。相比于RGB模型三个颜色分量与最终颜色联系不直观的缺点,HSV模型更加符合人类感知颜色的方式:颜色、深浅以及亮暗

 LAB模型

        Lab颜色模型弥补了RGB模型的不足,是一种设备无关的颜色模型,是一种基于生理特征的颜色模型。在模型中L表示亮度(Luminosity),ab是两个颜色通道,两者的取值区间都是由-128+127,其中a通道数值由小到大对应的颜色是从绿色变成红色,b通道数值由小到大对应的颜色是由蓝色变成黄色。其构成的颜色空间是一个球形,形式如图所示

不同颜色模型的不同效果: 

 二、opencv常用函数

Img = cv2.imread(‘img.jpg’)   # 读取一张图片

capture = cv2.VideoCapture(0) # 打开笔记本内置摄像头,Linux里需要把0改成摄像头型号的名称

retval, image = capture.read() # 从摄像头中实时读取视频(即读取一帧图像)

cv2.imshow("Video", image) # 在窗口中显示读取到的视频

capture.release() # 关闭笔记本内置摄像头

cv2.destroyAllWindows() # 销毁显示摄像头视频的窗口

capture.isOpened() #判断摄像头是否被打开成功

cv2.waitKey()  #等待用户按下任意键后  换成cv2.waitKey(5000)表示5s

读取摄像头示例:

import cv2

capture = cv2.VideoCapture(0) # 打开笔记本内置摄像头,在linux中为“/dev/ttyUSB0”等格式
while (capture.isOpened()): # 笔记本内置摄像头被打开后
    retval, image = capture.read() # 从摄像头中实时读取视频
    cv2.imshow("Video", image) # 在窗口中显示读取到的视频
    key = cv2.waitKey(1) # 窗口的图像刷新时间为1毫秒
    if key == 32: # 如果按下空格键  # 也可换成ord('k')
        break
capture.release() # 关闭笔记本内置摄像头
cv2.destroyAllWindows() # 销毁显示摄像头视频的窗口

三、HSV颜色模型的使用 

确定图像中的黄色区域,对图像进行二值化处理使用inRange函数多通道处理:

import cv2
import numpy as np
img = cv2.imread("duck.jpg")  # 读取一张图片
cv2.imshow("img", img)
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
lower = np.array([26, 43, 46])  # hmin, smin, vmin
upper = np.array([34, 255, 255])   # hmax, smax, vmax
# 提前确定黄色的hsv范围
img_r = cv2.inRange(img, lower, upper)
cv2.imshow("img_r", img_r)
cv2.waitKey(0)
cv2.destroyAllWindows()

HSV颜色范围参考表:

 四、与ros结合使用

要先启动这个,在运行python程序

roslaunch vkarm_cam.launch

 人工智能边缘应用

        OpenVINO 是一个用于优化和部署AI推理的开源工具包,在英特尔硬件上扩展计算机视觉和非视觉工作负载,最大限度地提高性能
        
        Docker是一个虚拟环境容器,可以将开发环境、代码、配置文件等一并打包到容器中,并发布和应用到任意平台中
        
        深度学习工作平台(DL Workbench)是一个基于Web 的图形应用,它提供了一个图形化的应用环境,使得开发人员可以轻松且有效的使用OpenVINO工具套件进 行开发。
        Docker常用操作命令:
宿主机操作
docker images:显示docker镜像仓库
docker run:创建并运行docer容器

        

DL workbench工作流程:

模型分析:

启动深度学习工作平台(DL Workbench)

1. 验证容器镜像,docker images

2. 运行:

切换至工作目录:cd ~/vkaibot_ncs/dl_workbench

运行启动脚本:./start_workbench.sh -IMAGE_NAME openvino/workbench -TAG latest

3.打开生成的端口链接即进入到工作平台 

案例分析:物体检测

1.验证容器

docker images

2.启动容器

 参数解释:        

 3.运行python程序

        进入工作目录:

$ exportDISPLAY=:0
$ cd /home/openvino/vkaibot_ncs/ov_workspace/demo/classification_demo

         运行主程序(神经计算棒):

$ python classification_rs.py -m ./model/googlenet_v3.xml --label imagenet_slim_labels.txt

classification_rs.py代码解读:

修改classification_rs.py,改变检测框或文本的样式(按需)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值