5 机器人感知

  • 机器视觉
  • 机器语音

机器视觉

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!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(很重要)


image.png

然后在bin文件夹中执行iat_online_record_sample


image.png
科大讯飞实例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'"


你可能感兴趣的:(5 机器人感知)