- 机器视觉
- 机器语音
机器视觉
ROS中的图像数据
摄像头标定
ROS+OpenCV应用实例(人脸识别,目标跟踪)
二维码识别
扩展内容:物体识别与机器学习
ROS中的图像数据(二维图像)
启动摄像头
roslaunch usb_cam usb_cam-test.launch
查看当前话题
rostopic list
显示图像类型
rostopic info /usb_cam/image_raw
查看图像消息
rosmsg show sensor_msgs/Image
- Header:消息头,包含消息序号,时间戳和绑定坐标系
- height:图像的纵向分辨率
- width:图像的横向分辨率
- encoding:图像的编码格式,包含RGB、YUV等常用格式,不涉及图像压缩编码
- is_bigendian:图像数据的大小端存储模式
- step:一行图像数据的字节数量,作为数据的步长参数
- data:存储图像数据的数组,大小为step×height个字节
压缩图像消息
- format:图像压缩编码格式(jpeg、png、bmp)
- data:存储图像数据数组
三维图像
启动kinect
roslaunch freenect_launch freenect.launch
查看话题信息
rostopic info /camera/depth_registered/points
查看点云信息
rosmsg show sensor_msgs/PointCloud2
height:点云图像的纵向分辨率
width:点云图像的横向分辨率
fields:每个点的数据类型
is_bigendian:数据的大小端存储模式
point_step:单点的数据字节步长
row_step:一列数据的字节步长
data:点云数据的存储数组,总字节大小为row_stap*height
is_dense:是否有无效点
摄像头标定
安装标定功能包
sudo apt-get install ros-kinetic-camera-calibration
摄像头标定流程
启动摄像头
roslaunch robot_vision usb_cam.launch
启动标定包
rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.024 image:=/usb_cam/image_raw camera:=/usb_cam
将标定包左右移动旋转,直到标定完成
ROS+OpenCV
Open Source Computer Vision Library
安装OpenCV
sudo apt-get install ros-kinetic-vision-opencv libopencv-dev python-opencv
测试例程
roslaunch robot_vision usb_cam.launch
rosrun robot_vision cv_bridge_test.py
rqt_image_view
ROS+OpenCV应用实例之人脸识别
基于Haar特征的几联分类器对象检测算法
灰阶色彩转换->缩小摄像头图像->直方图均衡化->检测人脸
启动人脸识别例程
roslaunch robot_vision usb_cam.launch
roslaunch robot_vision face_detector.launch
rqt_image_view
ROS+OpenCV应用实例之物体跟踪
图像输入->特征点采样->两帧图像灰度值对比->特征点估计->特征点过滤->结果输出
启动物体跟踪实例
roslaunch robot_vision usb_cam.launch
roslaunch robot_vision motion_detector.launch
rqt_image_view
二维码识别
安装二维码识别功能包
sudo apt-get install ros-kinetic-ar-track-alvar
创建二维码
roscore
rosrun ar_track_alvar createMaker -s 5 0
启动摄像头二维码识别实例
roslaunch robot_vision ar_track_camera.launch
在执行过程中遇到bug,详见https://blog.csdn.net/weixin_44455731/article/details/95044192
roslaunch robot_vision ar_track_camer.launch
机器语音
常用功能包
pocketsphinx
audio-common
AIMIL
科大讯飞SDK
下载SDK后,解压缩
cmake
将下图中的文件拷贝到/usr/lib!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(很重要)
然后在bin文件夹中执行iat_online_record_sample
科大讯飞实例2
再次强调,应定要讲libs中的libmsc.so拷贝到/usr/lib
语音合成
roscore
rosrun robot_voice tts_subscribe
rostopic pub /voiceWords std_msgs/String "data:'你好,我是机器人'"
从图中可以看出,刚执行的时候会报一个错误sh: 1: mplayer: not found
解决方法是sudo apt-get install mplayer
语音助手实例
roscore
rosrun robot_voice iat_publish
rosrun robot_voice voice_assistant
rostopic pub /voiceWakeup std_msgs/String "data: 'hello robot'"