linux ros android融合图片_apriltag_ros的使用

手头有个项目需要检测apriltag,ROS的这个包看起来能满足我的要求,记录一下。

apriltag_ros:

http://wiki.ros.org/apriltag_ros​wiki.ros.org
mkdir -p ~/catkin_ws/src                # Make a new workspace 
cd ~/catkin_ws/src                      # Navigate to the source space
git clone https://github.com/AprilRobotics/apriltag.git      # Clone Apriltag library
git clone https://github.com/AprilRobotics/apriltag_ros.git  # Clone Apriltag ROS wrapper
cd ~/catkin_ws                          # Navigate to the workspace
rosdep install --from-paths src --ignore-src -r -y  # Install any missing packages
catkin build    # Build all packages in the workspace (catkin_make_isolated will work also)

相机驱动cv_camera:

https://wiki.ros.org/cv_camera​wiki.ros.org
cd ~/catkin_ws/src
git clone https://github.com/OTL/cv_camera
catkin build

相机标定:

http://wiki.ros.org/camera_calibration​wiki.ros.org
 rosdep install camera_calibration

1. 打开相机

可通过ls /dev/video*查看相机设备

67aa20381b46309d2ccddf785aa8fb0d.png

我的robot的相机是video2

设置并打开相机驱动,

rosparam set cv_camera/device_id 2  #set camera
rosrun cv_camera cv_camera_node

查看topic list

9e4223c397c24bf136714ce528bebaa4.png

其中

/cv_camera/image_raw是相机抓到的图片

/cv_camera/image_info是相机的参数

这两个topic要用于接下来的apriltag_ros 。

2. 标定相机

 rosrun camera_calibration cameracalibrator.py --size 11x9 --square 0.100 image:=/cv_camera/image_raw camera:=/cv_camera

解释一下其中的参数,11*9代表我用的标定版是11*9的,size是每个正方形格子的边长大小,单位是m,image和camera一定要映射到自己的驱动。

b9a75717f9fdd02a1062a9b75f1895c1.png

上下左右移动,等calibrate亮了就可以计算相机的参数了,之后save以及commit自动保存。

3. Apriltag生成

openmv下载

Download​openmv.io
e687a805815e9b09d13a1bb973b43082.png
sudo chmod +x openmv-ide-linux-x86_64-2.6.5.run 
./openmv-ide-linux-x86_64-2.6.5.run 

工具-机器视觉-ApirlTag生成器-TAG36H11

257dd61219bac429f2da405a3c352ce7.png

AprilTag

5e0f445801e91089d90dd486bc511700.png

4. 运行apriltag_ros

要点参考官方wiki,各个文件修改时的注意事项。

http://wiki.ros.org/apriltag_ros/Tutorials/Detection%20in%20a%20video%20stream​wiki.ros.org

修改launch文件,主要是camera_name和image_topic要改成对应相机的topic

<launch>
  <arg name="launch_prefix" default="" /> <!-- set to value="gdbserver localhost:10000" for remote debugging -->
  <arg name="node_namespace" default="apriltag_ros_continuous_node" />
  <arg name="camera_name" default="/cv_camera" />
  <arg name="camera_frame" default="cv_camera" />
  <arg name="image_topic" default="image_raw" />

  <!-- Set parameters -->
  <rosparam command="load" file="$(find apriltag_ros)/config/settings.yaml" ns="$(arg node_namespace)" />
  <rosparam command="load" file="$(find apriltag_ros)/config/tags.yaml" ns="$(arg node_namespace)" />
  
  <node pkg="apriltag_ros" type="apriltag_ros_continuous_node" name="$(arg node_namespace)" clear_params="true" output="screen" launch-prefix="$(arg launch_prefix)" >
    <!-- Remap topics from those used in code to those on the ROS network -->
    <remap from="image_rect" to="$(arg camera_name)/$(arg image_topic)" />
    <remap from="camera_info" to="$(arg camera_name)/camera_info" />

    <param name="camera_frame" type="str" value="$(arg camera_frame)" />
    <param name="publish_tag_detections_image" type="bool" value="true" />      <!-- default: false -->
  </node>
</launch>

修改settings.yaml文件,采用何种apriltags二维码

修改tags.yaml文件,主要是自己的AprilTag

tag_bundles:
  [
 {
       name: 'CUSTOM_BUNDLE_NAME',
       layout:
         [
           {id: 0, size: 0.146, x: 0, y: 0, z: 0, qw: 1.0, qx: 0.0, qy: 0.0, qz: 0.0},
         ]
     }
  ]

好了,接下来我们就可以运行了。

roslaunch apriltags2_ros continuous_detection.launch

可以通过topic list看到新的topic,其中/tag_detection就是我们的检测结果了。

c29738d24bc3aba02b28dc839870e433.png

rostopic echo /tag_detection

a7bdf4f4e150727b3ce56fbeba3e53b5.png

能看到apriltag的位姿。

94d53bcf1e0e5491f27624f23c4d303b.png

最后给大家看一下我小飞机的靓照,这个项目后续的部分我也会继续更新的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值