KCF目标跟踪

2023-05-16

#ROS调包侠#KCF目标跟踪

项目说明

参考项目:GitHub - TianyeAlex/tracker_kcf_ros: 基于ros下应用深度相机的kcf追踪算法实现

修改内容:

1、解决原作者使用OpenCV版本比较老,部分代码不能正常编译

2、原作者使用RGBD相机获取图像深度信息实现机器人目标追踪,我的项目使用普通话彩色相机通过目标框大小来估算深度

3、增加launch文件,使用remap方式修改话题名

安装

获取源码

cd ~/catkin_ws/src/
git clone https://gitee.com/bingda-robot/kcf_track.git

安装依赖软件

sudo apt install ros-noetic-usb-cam ros-noetic-image-transport

编译 

cd ~/catkin_ws/ && catkin_make

使用

启动摄像头,默认使用video0,如果使用其他设备号,可以通过传入device参数

roslaunch kcf_track rgb_camera.launch

启动KCF追踪节点(会打开图像显示框,所以需要在有屏幕的终端例如PC中执行)

roslaunch kcf_track kcf_track.launch

启动后会弹出这样一个图像框

在图像框中使用鼠标框选需要追踪的目标

移动摄像头或者目标,追踪框会跟随目标移动

追踪的同时,节点会根据追踪框中心位置相对图像中心的位置关系计算机器人需要的角速度,根据追踪框当前大小和初始选定的大小关系计算机器人线速度,最终发布cmd_vel话题。

实体机器人上运行追踪

前提:

机器人上已经编译安装了kcf_track

机器人和PC之间已经配置好分布式通信

启动机器人上的摄像头,默认使用video0,如果使用其他设备号,可以通过传入device参数

roslaunch kcf_track rgb_camera.launch

启动机器人底盘节点,例如冰达机器人所使用的base_control

roslaunch base_control base_control.launch 

启动KCF追踪节点(会打开图像显示框,所以需要在有屏幕的终端例如PC中执行)

roslaunch kcf_track kcf_track.launch

参数调整

修改kcf_track/src/runtracker.cpp文件中imageCb函数中关于中心点、大小比例和速度的换算关系

distance = (float)(selectRect.width ) / (float)(result.width);
center_x = result.x + result.width/2;

std::cout <<  "Center x = " << center_x << "  Distance = " << distance  << std::endl;
std::cout <<  "Height = " << image_height << "  width = " << image_width  << std::endl;

//calculate linear speed
if(abs(distance - 1.0) > 0.1)
	linear_speed = (distance - 1.0) / 2.0;
else
	linear_speed = 0;
if(linear_speed > Max_linear_speed)
	linear_speed = Max_linear_speed;
if(linear_speed < -Max_linear_speed)
	linear_speed = -Max_linear_speed;


if (abs(float(image_width/2 - center_x))/(image_width/2) > 0.1)
	rotation_speed = float(image_width/2 - center_x)/(image_width/2);
else
	rotation_speed = 0;
if(rotation_speed > Max_rotation_speed)
	rotation_speed = Max_rotation_speed;
if(rotation_speed < -Max_rotation_speed)
	rotation_speed = -Max_rotation_speed;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

KCF目标跟踪 的相关文章

随机推荐

  • ROS多机器人时rviz无法显示机器人模型,提示:param robot_description not found by searchParam()

    如图所示 xff0c 使用ROS进行多机器人仿真时 xff0c RobotModel无法显示机器人模型 xff0c 提示 xff1a param robot description not found by searchParam 原因 x
  • xcode使用gdal库

    GDAL Geospatial Data Abstraction Library 是一个在X MIT许可协议下的开源栅格空间数据转换库 它利用抽象数据模型来表达所支持的各种文件格式 它还有一系列命令行工具来进行数据转换和处理 GDAL提供对
  • MAC系统版本AnyLogic提示the font “Times“ is not available

    问题原因 xff1a MAC新版本系统中移除了Times字体 导致JAVA运行出现问题 如图所示为需要安装的Times字体 解决方法 xff1a 重新安装TImes字体 下载地址
  • LIBTIFF读取tiff文件时,打印buf出错

    如图所示 xff0c 按照官网提供的例程读取tiff文件 xff0c 并打印读取的值时 xff0c 提示 xff1a Subscript of pointer to incomplete type 39 void 39 代码如下 xff1a
  • OHEM loss 源代码

    import numpy as np import torch import torch nn as nn class OhemCELoss nn Module def init self thresh ignore lb 61 255 s
  • git命令回退方法

    我们在使用git命令的时候 xff0c 有时候误输入命令 xff0c 导致需要回退到之前的状态 现在针对这种情况做一个汇总 xff1a 1 Git add回退 git status 先看一下add中的文件 xff0c 确定已经添加的文件 g
  • 思岚激光雷达A1使用

    1 使用思岚调试激光雷达测试软件 xff08 软件打开前和打开后雷达都是转动的 xff09 点击菜单栏上的扫面按钮 xff0c 扫描出周围的环境轮廓 方向和距离定义 测试完成 xff0c 关闭雷达测试软件 2 使用串口调试助手测试 测试A1
  • STM32读取MPU6050陀螺仪

    目录 一 硬件设计 1 模块说明 2 电气原理图 二 程序设计 1 工程创建 2 程序设计 xff08 1 xff09 main程序 xff08 2 xff09 IIC初始化 xff08 3 xff09 串口1配置 xff08 4 xff0
  • kalibr标定IMU

    kalibr标定IMU 必须明确的是 1 如何标定 2 标定的结果 3 如何验证标定结果的正确性 如何标定 标定所需文件 XX bag 包含有图片信息和IMU数据的ROS包 camchain yaml 包含相机的内参和畸变参数的文件 IMU
  • git diff和回退操作

    在git提交环节 xff0c 存在三大部分 xff1a working tree index file commit 这三大部分中 xff1a working tree xff1a 就是你所工作在的目录 xff0c 每当你在代码中进行了修
  • 基于Python socket利用TCP协议让上下位机 传输图片

    基于Python socket利用TCP协议让上下位机 传输图片 Notes 1 原理2 下位机代码 xff1a 3 上位机代码 xff1a Notes 之前用来做 基于QT 的物联网图形化软件的其中一个功能 xff0c 因为在这遇到过许多
  • Java中的final变量、final方法和final类

    1 final变量 final关键字可用于变量声明 xff0c 一旦该变量被设定 xff0c 就不可以再改变该变量的值 通常 xff0c 由final定义的变量为常量 例如 xff0c 在类中定义PI值 xff0c 可以使用如下语句 xff
  • 音视频开发技术的进阶路线

    1 音视频开发包括哪些内容 虽然一篇文章无法把音视频开发的知识点都介绍清楚 xff0c 但是大概的学习路线还是可以梳理一下的 xff0c 我们先看看下面这张图 xff1a 其实说白了 xff0c 音视频开发 xff0c 就是要掌握图像 音频
  • Ubuntu22.04应用程序启动时闪退

    Ubuntu22 04启动应用程序时闪退 xff0c 添加程序启动时参数解决 今天尝试在ubuntu安装QQ音乐 xff0c 安装后启动时弹出一下就闪退了 命令行启动程序 xff0c 报错 xff1a FATAL gpu data mana
  • STM32CubeMX上手初体验

    STM32CubeMX 提起嵌入式开发常用的IDE xff0c 你都用过哪些 xff1f 相信大家都用过keil xff0c 它上手简单 xff0c 许可证也可以通过众所周知的途径拿到 IAR有些小伙伴也用过 xff0c 它功能强大 xff
  • 学习ucosii要用到的几本书和软件

    原帖地址 xff1a http bbs ednchina com BLOG ARTICLE 2020186 HTM 打算学习一个嵌入式操作系统 xff0c 研究了一下决定还是先研究一下ucosii xff0c 一方面权当学习C语言 xff0
  • Linux防火墙——Firewalld基础命令

    Firewalld概述 Firewalld简介 xff08 1 xff09 支持网络区域所定义的网络连接以及接口安全的动态防火墙管理工具 xff08 2 xff09 支持IPv4 IPv6防火墙设置以及以太网桥接 xff08 3 xff09
  • 本地服务调用 K8S 环境中的 SpringCloud 微服务实战

    常规手段 xff1a 通过 service 访问对应的 pod 通常情况下 xff0c 从外部访问 kubernetes 内部 pod 服务的方法是创建 service xff0c 再通过访问 service 的方式来访问对应的 Pod x
  • Azure Redhat挂载盘操作导致重启后无法ssh登录

    问题 在Azure环境中创建了一台 Redhat VM xff0c 挂载了一块128GB新盘 xff0c 晚上stop后 xff0c 第二天start后无法ssh登录 发现问题过程 进入虚拟机信息页面 2 进入左侧 Support 43 T
  • KCF目标跟踪

    ROS调包侠 KCF目标跟踪 项目说明 参考项目 xff1a GitHub TianyeAlex tracker kcf ros 基于ros下应用深度相机的kcf追踪算法实现 修改内容 xff1a 1 解决原作者使用OpenCV版本比较老