机器人视觉项目:视觉检测识别+机器人跟随(8)

本文介绍了一个使用Kinect传感器进行人体骨骼检测和追踪的项目,通过tf转换获取关节点坐标,如右肩和右手,以实现对全向平台机器人的控制。根据人体与机器人的相对距离和角度调整移动速度,同时利用手部高度信息判断是否停止移动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


kinect_tf.cpp
实现人体骨骼检测追踪到的坐标点用tf转换接听,得到关节点的信息,这里只是接听了部分人体位置数据,
“right_hand_1,right_shoulder_1”
并对接听到的数据进行处理,这里判断距离,如果距离过大要调整速度,距离过小则调整速度,手部关节点如果y方向坐标如果高于肩部,则停下来了
×/
#include <ros/ros.h>  
#include <tf/transform_listener.h>  
#include <geometry_msgs/Twist.h>  
#include <sound_play/sound_play.h>//播放音频  
#include <unistd.h>  
#include "std_msgs/String.h"  
  
const char *str_distance,*str_angle;  
int count_running = 0;  
/*主函数*/  
int main (int argc, char** argv)  
{  
    ros::init (argc, argv, "kinect_tf ");//发布的topic  
    ros::NodeHandle nh;  
    sound_play::SoundClient sc;   
    geometry_msgs::Twist cmd;  
    ros::Publisher pub = nh.advertise<geometry_msgs::Twist> ("/cmd_extvel", 10);//发布消息到 topic /cmd_extvel  
    tf::TransformListener listener;  
    ros::Rate rate(10.0);  
    while (node.ok()){  
        //接听消息  
        tf::StampedTransform tf, tf_right_hand, tf_right_shoulder; //tf变换的变量  
        try{          
            listener.lookupTransform("/openni_depth_frame", "/torso_1",

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值