apriltag_ros 订阅节点,订阅位姿消息

关于apriltag_ros订阅内容网上参考资料较少,整理了一下过程中踩的坑,给大家排一下雷。
参考文章古月居 参考链接

1.环境

ubuntu 18.04
ROS  melodic

2.代码

#include "ros/ros.h"
#include "apriltag_ros/AprilTagDetectionArray.h"
#include "iostream"

using namespace std;

ros::Subscriber ar_sub_;
 
class Localizer
{
public:
  Localizer(ros::NodeHandle& nh)
  {
      ar_sub_ = nh.subscribe<apriltag_ros::AprilTagDetectionArray>("/tag_detections", 1, &Localizer::number_callback, this);
  }

  void number_callback(const apriltag_ros::AprilTagDetectionArray::ConstPtr& msg)
  {
      if(msg->detections.size()>0)
      {
             float getX = msg->detections[0].pose.pose.pose.position.x;
	    	 cout<<"Point position:"<<endl;
	    	 cout<<"cam_getX: "<<getX<<endl;    }
    	 else 
  	{cout<<"未检测到tag"<<endl;}
  	 }
};

int main(int argc, char **argv)
{
    ros::init(argc, argv,"apriltag_detector_subscriber");
    ros::NodeHandle node_obj;
    Localizer localizer(node_obj);    
    ROS_INFO("节点开始");
    ros::spin();
    return 0;
}

3.代码解析,CMake配置

头文件

#include "ros/ros.h"
#include "apriltag_ros/AprilTagDetectionArray.h" //apriltag_ros 头文件要包含
#include "iostream"

此时如果报找不到相关头文件
要去改CMakeLists.txt 文件
在find_package处加入相关的功能包即可
除此之外,其他配置如下所示

find_package(catkin REQUIRED COMPONENTS
  roscpp
  rospy
  std_msgs
  apriltag_ros//需加入的ros包
)
add_executable(apriltag_sub src/apriltag_sub.cpp)
add_dependencies(apriltag_sub  ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
target_link_libraries(apriltag_sub
  ${catkin_LIBRARIES}
)

4.小结

总结了一下订阅节点的笔记
首先找到想到订阅的话题
通过

rostopic list

topic
找到/tag_detections 话题
查看话题的消息类型

 rostopic type /tag_detections

发现是apriltag_ros/AprilTagDetectionArray类型
就可以写订阅节点了

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
apriltag_ros是一个ROS(Robot Operating System)包,用于在机器人系统中检测和跟踪AprilTag类型的二维码标签。AprilTag是由Stanford大学开发的一种视觉标记系统,常用于定位、导航和物体识别应用中。 要安装`apriltag_ros`,你需要按照以下步骤操作: 1. **确保你的ROS环境准备就绪**:首先确保你的计算机上已经安装了ROS,并且你想要使用的ROS版本(如Melodic, Noetic,或更新版)已经激活并配置好。 2. **更新ROS仓库**: ``` sudo apt-get update sudo apt-get upgrade ``` 3. **安装apriltag_ros依赖**: 使用ROS包管理器`rosdep`来安装必要的依赖项,包括apriltags库: ``` rosdep install apriltag_ros ``` 或者,你可以直接通过`apt-get`安装: ``` sudo apt-get install ros-<ros_version>-apriltag ``` 4. **源码安装**(如果官方仓库没有对应的版本): ``` git clone https://github.com/cheind/apriltag_ros.git cd apriltag_ros catkin_make source devel/setup.bash ``` 5. **安装后配置**: 将`apriltag_ros`作为你的视觉传感器节点的依赖,配置 ROS 参数以定义要寻找的tag类型、大小和其他选项。 6. **启动节点**: 使用命令行启动`apriltag_node`,例如: ``` roslaunch apriltag_ros camera.launch ``` 7. **测试与调试**: 确保你的相机正确地检测到了AprilTag,并通过查看ROS topic输出(通常是`/tag_detections`)来确认。 如果你遇到任何问题,可能需要查阅官方文档(https://github.com/cheind/apriltag_ros/tree/master/apriltag_ros),或者查看ROS论坛和Stack Overflow寻求帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值