用罗技F710控制quadruped robot的步态模式的转换_逻辑f710-程序员宅基地

技术标签: c++  

用ros的话题形式,通过话发布一个话题,发布游戏手柄的控制命令.

句柄一个订阅者来订阅来自JOY的按键信息:

ros::Subscriber gamepadDataSub;//创建订阅者句柄,订阅来自joy的按键信息

句柄一个发布者,发布一个话题,用来发布经过处理过后的按键信息:

ros::Publisher cmdVelPub, cmdPosePub;// 速度 位置(模式)

处理从joy订阅的按键信息:

void SubGamepadData(const sensor_msgs::Joy& msg) {  // 来自joy的按键信息
  geometry_msgs::Twist cmdVel, cmdPose;  // 实例化两个Twist类  分别是速度指令和位置(模式)指令
  cmdVel.linear.x = msg.axes[1];         // 摇杆的信息
  cmdVel.linear.y = msg.axes[0];
  cmdVel.angular.x = -msg.axes[3];
  cmdVel.angular.y = msg.axes[4];
  cmdVelPub.publish(cmdVel);
 
  if (msg.buttons[3] > 0.1) {  // Y    // 按键信息
    cmdPose.angular.x = 1;
  } else if (msg.buttons[0] > 0.1) {  // A
    cmdPose.angular.x = -1;
  } else {
    cmdPose.angular.x = 0;
  }
  if (msg.buttons[1] > 0.1) {  // B
    cmdPose.angular.y = 1;
  } else if (msg.buttons[2] > 0.1) {  // A
    cmdPose.angular.y = -1;
  } else {
    cmdPose.angular.y = 0;
  }
cmdPosePub.publish(cmdPose);

 主函数:

int main(int argc, char** argv) {
  ROS_INFO("start quadruped_ctrl node");

  ros::init(argc, argv, "gamepad_ctrl"); //  初始化节点
  ros::NodeHandle n;                     // 句柄
  ros::console::set_logger_level(ROSCONSOLE_DEFAULT_NAME,
                                 ros::console::levels::Info);
  gamepadDataSub = n.subscribe("/joy", 10, &SubGamepadData);   // 订阅来自joy的话题
  cmdVelPub = n.advertise<geometry_msgs::Twist>("/cmd_vel", 10); // 发布速度指令
  cmdPosePub = n.advertise<geometry_msgs::Twist>("/cmd_pose", 10); // 发布位置指令

  ros::spin(); // 当收joy发布的话题,执行  SubGamepadData
  return 0;
}

简单的一个个人学习笔记.

如有不对请指正,侵删.

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_63723117/article/details/124182935

智能推荐

chapter04-程序员宅基地

文章浏览阅读152次。1、创建/guanli 目录,在/guanli下创建zonghe 和 jishu 两个目录(一条命令)[root@localhost ~]mkdir -p /guanli/{zonghe,jishu}2、添加组帐号zonghe、caiwu、jishu,GID号分别设置为2001、2002、2003[root@localhost ~]# groupadd -g 2001 zon..._在chapter04的包cn.itcast.chapter04.prsponse

字符串_空串是什么都没有字符串吗-程序员宅基地

文章浏览阅读362次。串的定义串是字符串的简称。在数据结构中,串是一种在数据元素的组成上具有一定约束条件的线性表,即要求组成线性表的所有数据元素都是字符,所以说串是一个有穷的字符序列。串是由零个或多个字符组成的有限序列,记作s=”s0s1…sn-1”(n≥0),其中s是串名,字符个数n称作串的长度,双撇号括起来的字符序列”s0s1…sn-1”是串的值字符串(String)是由数字、字母、任何其它的符号组成的一串字符。零个字符的串(即:"")称为空串,空串不包含任何字符。值得注意的是:(1)长度为1的空格串" “不等同于_空串是什么都没有字符串吗

mathtype软件产品密钥最新7.4_mathtyoe产品密钥-程序员宅基地

文章浏览阅读1.5k次,点赞15次,收藏18次。总之,MathType 7.4是一款功能全面、易于使用的数学公式编辑器,无论是教育、科研还是出版领域,它都能为用户提供强大的支持和便利。当然,作为软件技术支持专家,我很乐意为用户提供关于MathType 7.4的详细信息和支持。_mathtyoe产品密钥

基于紫光同创FPGA的图像采集及AI加速_《基于紫光同创fpga的图像采集及ai加速》-程序员宅基地

文章浏览阅读1k次。以上为我们的整体设计流程图,我们通过以太网接口、光口、HDMI输入接口以及摄像头接口实现了四路视频采集,其中网口数据是痛过PYTHON上位机传来,光口则是利用光纤回环实现输出,本质上还是通过获取第二个以太网接口的视频数据来实现视频采集输出,对于光口回环,它可以获取摄像头或者时HDMI输入的数据,但会导致视频源重复展示,故使用双网口,并两个网口传输不同视频数据以实现四路不同视频源的识别。右图为MATLAB进行处理后得到的图像,可见实现了图像增强,整体亮度变高,能够更加清晰的看到车辆,为后续识别提供了可能。_《基于紫光同创fpga的图像采集及ai加速》

内省(Inspector)与注解(Annotation)_内省机制-程序员宅基地

文章浏览阅读427次。目录1.内省机制2.内省机制对于属性的操作3.内省属性的注意事项4.注解的功能5.注解声明6.注解修饰目标7.注解生命周期8.注解属性9.注解的使用10.反射对注解的操作1.内省机制 在实际编程中,我们常常需要一些用来包装值对象的类,例如Student、Employee、Order,这些类中往往没有业务方法,只是为了把需要处理的实体对象进行封装,有这样的特征: 属性都是私有的; 有无参的public构造方法; 对_内省机制

Windows 10_x64 PL/SQL 链接64位 Oracle_oraclexe112_win64.zip 云盘-程序员宅基地

文章浏览阅读1.3k次。环境:Windows 10_x64 Oracle11.2XE win_x64PL/SQL Developer 32位过程:1. 首先是Oracle 数据库下载、安装(对于简易版安装,注意记住起始安装的密码,其他的东西基本上下一步下一步就行了)。安装完成后可以在菜单中查找到(运行SQL命令)启动该程序后。登陆前记得使用conn命令。链接数据库。如果需要_oraclexe112_win64.zip 云盘

随便推点

自定义Magento页标题与Meta描述_magento seo suite 自定义 meta description-程序员宅基地

文章浏览阅读3.2k次。在Magento中,CMS页、产品页、分类页均可以设置Meta keywords与Meta Description。但在其它页面上如何设置呢?例如今天SEO团队发来文档,要求修改Checkout页、MyAccount页、Login页、Contact页等等的页标题与Meta描述部分。于是第一反应就是用XML来配置.另:在System-Configration-Design-Html-_magento seo suite 自定义 meta description

【PTA-python】第4章-15 换硬币 (20 分)_pta换硬币python-程序员宅基地

文章浏览阅读1.3k次。第4章-15 换硬币分析题目解法分析为了实现各个硬币数目>=1,range()函数设定倒序范围,先求五分硬币数目,再求二分硬币数目,最后求一分硬币数目,注意在往下递推求解的过程中,各个硬币数目的条件是>=1,这影响到range(five,0,-1)和if one>=1:题目将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?输入格式:输入在一行中给出待换的零钱数额x∈(8,100)。输出格式:要求按5分、2分和1分硬币的数量依次从大到小的顺序_pta换硬币python

firewall限制或开放IP及端口命令_firewall-cmd --zone=public --list-ports-程序员宅基地

文章浏览阅读1w次,点赞6次,收藏23次。一、查看防火墙状态1、首先查看防火墙是否开启,如未开启,需要先开启防火墙并作开机自启systemctl status firewalld开启防火墙并设置开机自启systemctl start firewalldsystemctl enable firewalld一般需要重启一下机器,不然后面做的设置可能不会生效二、开放或限制端口1、开放端口(1)如我们需要开启XShell连接时需要使用的22端口firewall-cmd --zone=public --add-port=22/tcp _firewall-cmd --zone=public --list-ports

北京交通大学-图像处理与机器学习_北京交通大学图像处理与机器视觉实验代码-程序员宅基地

文章浏览阅读6.7k次,点赞10次,收藏73次。日期项目2022/03/04更新实验环境配置视频P6,第八章后所有内容已同步更新!名称项目课程主页图像处理与机器学习B站主页啥都会一点的研究生课程B站视频【北交】图像处理与机器学习人工智能技术探讨群178174903人工智能技术探讨群2571218304人工智能技术探讨群3584723646课程目录及资料(UP已打包整理支持直链下载)章节内容资料第一章 绪论1-1 基本._北京交通大学图像处理与机器视觉实验代码

本科生如何入门GNSS算法(二)- rtklib定位解算过程中的GNSS数据格式以及基本概念_gnss 观测文件crx-程序员宅基地

文章浏览阅读4.4k次,点赞9次,收藏61次。rtklib定位解算过程中的GNSS数据格式以及基本概念_gnss 观测文件crx

Java maxchars方法_LearningJDK/CharsetEncoder.java at master · sx2714732/LearningJDK · GitHub-程序员宅基地

文章浏览阅读225次。/** Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.** This code is free software; you can redistribute it an..._learningjdk如何使用

推荐文章

热门文章

相关标签