一、ROS+opencv

  1. 安装OpenCv
sudo apt-get install ros-melodic-opencv libopencv-dev python-opencv

CvBridge是ros和opencv中的桥梁

  1. 测试例子
roslaunch robot_vision usb_cam.launch		//启动
rosrun robot_vision cv_briage_test.py 		//启动节点
rqt_image_view

opencv和ros联动 ros使用opencv_opencv和ros联动

opencv和ros联动 ros使用opencv_opencv和ros联动_02


出现的错误

opencv和ros联动 ros使用opencv_python_03

解决:python文件记得要允许作作为程序可执行文件。。。。。。

opencv和ros联动 ros使用opencv_opencv和ros联动_04

二、ROS+OpenCV应用实例之人脸识别

基于HAAR特征的级联分类器对象检测算法

opencv和ros联动 ros使用opencv_opencv和ros联动_05

三、ROS+OpenCV应用实例之物体跟踪

opencv和ros联动 ros使用opencv_应用实例_06


opencv和ros联动 ros使用opencv_应用实例_07

ps:最好找个纯色的背景然后用一个深色的物体作追踪

四、二维码识别

  1. 相机识别

安装包

sudo apt-get install ros-melodic-ar-track-alvar

创建二维码
roscd命令可以实现利用包的名字直接切换到相应的文件目录下

roscore
rosrun ar_track_alvar createMarker		//打印帮助信息
rosrun ar_track_alvar createMarker 0	//创建二维码
rosrun ar_track_alvar createMarker -s 5 0	//创建边长为5厘米的值为0的二维码

摄像头对二维码识别

roslaunch robot_vision usb_cam_with_calibration.launch
roslaunch robot_vision ar_track_camera.launch

查看识别到的二维码位姿

rostopic echo /ar_pose_marker
  1. kinect识别二维码
roslaunch robot_vision freenect.launch
roslaunch robot_vision ar_track_kinect.launch

五、SLAM功能包-gmapping功能包

  1. 深度信息

opencv和ros联动 ros使用opencv_python_08


depthimage_to_laserscan功能包:三维点云数据转化为二维

  1. 里程计信息
  2. opencv和ros联动 ros使用opencv_应用实例_09

  3. 仿真环境
    gazebo创建仿真环境
  4. gmapping功能包
  5. opencv和ros联动 ros使用opencv_应用实例_10

  6. 安装:
sudo apt-get install ros-melodic-gmapping

opencv和ros联动 ros使用opencv_应用实例_11


opencv和ros联动 ros使用opencv_应用实例_12

  1. 启动gmapping节点
mbot_navigation/launch/gmapping.launch
  1. 出现的错误
    下载好功能包后编译时出现找不到move_base_msga的情况(忘记截图了。。。。。)
    解决:
sudo apt-get install ros-melodic-move-base-msgs

开始建图(模拟)

在这里插入代码片
  1. 保存地图
rosrun mao_server map_save -f cloister_gmapping

-f后面为保存的文件名,通过yaml文件加载地图

  1. kinect建图
    电脑一直连接不上kinect。。。。
  2. 真实机器人建图
roslaunch mbot_bringup mbot_with_laser.launch		//机器人端
roslaunch mbot_navigation gmapping_demo.launch		//pc
roslaunch mbot_teleop mbot_teleop.launch			//pc

六、SLAM–hector_slam

hector地图由于没有里程计输入数据当机器人速度过快(特指旋转时的速度)或者激光雷达精度不高时,就会导致所构建的地图发生非常大的偏差,特征点多的话效果会相对好一些

opencv和ros联动 ros使用opencv_二维码_13

opencv和ros联动 ros使用opencv_应用实例_14

配置hector_mapping节点

mbot_navigation/launch/hector.launch

opencv和ros联动 ros使用opencv_python_15

opencv和ros联动 ros使用opencv_python_16

七、slam–cartographe

opencv和ros联动 ros使用opencv_二维码_17

opencv和ros联动 ros使用opencv_应用实例_18

最好给他独立开一个工作空间

ws catkin_make_isolated		//单独编译每一个功能包

opencv和ros联动 ros使用opencv_二维码_19

演示

opencv和ros联动 ros使用opencv_应用实例_20

需要连接国外网战下载数据包

opencv和ros联动 ros使用opencv_opencv和ros联动_21

opencv和ros联动 ros使用opencv_python_22


配置节点

mbot_navigation/launch/cartographer_demo_rplidar.launch

opencv和ros联动 ros使用opencv_python_23

opencv和ros联动 ros使用opencv_opencv和ros联动_24

八、总结

今天又是跟着古月居学习的一天,后面的slam建图还没有实际操作过,后面操作之后遇到问题在补充吧。