目标:通过机器视觉二维码识别进行高精度定位
Package: http://wiki.ros.org/ar_track_alvar/
Buildable in ROS noetic: https://github.com/ros-perception/ar_track_alvar/issues/82
git clone https://github.com/machinekoder/ar_track_alvar.git -b noetic-devel
cd ~/ar_tracker_alvar_ws/
catkin_make
![](https://static.wixstatic.com/media/f05793_5a708df81d4b4505af65a160c9407e3d~mv2.png/v1/fill/w_48,h_37,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/f05793_5a708df81d4b4505af65a160c9407e3d~mv2.png)
Create Fiducial Code:
rosrun ar_track_alvar createMarker
Package: http://wiki.ros.org/cv_bridge/
Tutorial: http://wiki.ros.org/cv_bridge/Tutorials
This package bridges opencv and ROS.
![](https://static.wixstatic.com/media/f05793_f467547f0bdb41a1a9ddd9b796e8e3dd~mv2.png/v1/fill/w_108,h_97,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/f05793_f467547f0bdb41a1a9ddd9b796e8e3dd~mv2.png)
Test Package Dependancies:
roscpp rospy rosmsg tf2 tf2_ros tf2_geometry_msgs std_msgs geometry_msgs image_transport cv_bridge message_generation
Launch File:
<launch> <param name="robot_description" textfile="$(find formal01_rplidar_hector)/urdf/urdf/roban_chassis.urdf" /> <node pkg="rviz" type="rviz" name="rviz" args="-d $(find formal02_ar_marker_tracker)/config/ar_tracker.rviz"/> <node pkg="joint_state_publisher" type="joint_state_publisher" name="joint_state_publisher" /> <node pkg="robot_state_publisher" type="robot_state_publisher" name="robot_state_publisher" />
以上为原机器人底盘模型,rviz调用 <arg name="open_rviz" default="true"/> <arg name="marker_size" default="2.0"/> <arg name="max_new_marker_error" default="0.08"/> <arg name="max_track_error" default="0.2"/> <arg name="cam_image_topic" default="/camera/rgb/image_raw"/> <arg name="cam_info_topic" default="/camera/rgb/camera_info"/> <arg name="output_frame" default="/camera_link"/>
以上为launch文件变量参数 <include file="$(find astra_camera)/launch/astra.launch"/>
调用astra s深度相机 <node name="ar_track_alvar" pkg="ar_track_alvar" type="individualMarkersNoKinect" respawn="false" output="screen">
<param name="marker_size" type="double" value="$(arg marker_size)"/> <param name="max_new_marker_error" type="double" value="$(arg max_new_marker_error)"/> <param name="max_track_error" type="double" value="$(arg max_track_error)"/> <param name="output_frame" type="string" value="$(arg output_frame)"/> <remap from="camera_image" to="$(arg cam_image_topic)"/> <remap from="camera_info" to="$(arg cam_info_topic)"/> </node>
调用ar marker节点 </launch>
Topics:
rostopic echo tf
发布目标坐标系变化