ROS下的罗技F710通信

news/2024/11/30 18:31:08/

1.实验环境:ubuntu16.04 ROS-kinetic

2.实验器材:罗技f710

3.操控手柄发出数据,控制小乌龟

#include <ros/ros.h>
#include <geometry_msgs/Twist.h>
#include <std_msgs/String.h> 
#include <sensor_msgs/Joy.h>
#include <iostream>
#include "myserial/vehicleControl.h"
//myserial::vehicleControl control;//发布话题的对象control
using namespace std;int x,z;int a=0;
class Teleop
{public:Teleop();private:/*data*/void callback(const sensor_msgs::Joy::ConstPtr& Joy);ros::NodeHandle n;//实例化节点ros::Subscriber sub;ros::Publisher pub;double vlinear,vangular;//控制乌龟的速度,是通过这两个变量调整int axis_ang,axis_lin;//axes[]的键};Teleop::Teleop()
{//我们将这几个变量加上参数,可以方便在launch文件修改n.param<int>("axis_linear",axis_lin,4);//默认axes[1]接受速度n.param<int>("axis_angular",axis_ang,0);//默认axes[0]接受速度n.param<double>("vel_linear",vlinear,1);//默认线速度1单位m/sn.param<double>("vel_angular",vangular,1);//默认角速度1单位rad/s//发布主题commandpub=n.advertise<myserial::vehicleControl>("command", 1000);//将速度发布给串口,消息队列1000sub=n.subscribe<sensor_msgs::Joy>("joy",10,&Teleop::callback,this);//订阅游戏手柄发来的数据
}void Teleop::callback(const sensor_msgs::Joy::ConstPtr& Joy){geometry_msgs::Twist v;myserial::vehicleControl control;//发布话题的对象controlv.angular.z=Joy->axes[axis_ang]*vlinear;//将游戏手柄的数据乘以你想要的速度,然后发给乌龟v.linear.x=Joy->buttons[3];//Y键表示runv.linear.y=Joy->buttons[0];//A键表示后退if(Joy->buttons[6])//back键表示模式{if(a==0){a=1;} //每次按下back都反转一次else{a=0;}}control.mode=a;//默认为手动模式0if(v.linear.x>v.linear.y){x=1;}//run,Y按了,A没按else if(v.linear.x<v.linear.y){x=2;}//back,A按了,Y没按else if(v.linear.x==v.linear.y){x=3;}//break,停车if(v.angular.z>0){z=1;}else if(v.angular.z<0){z=2;}else if(v.angular.z==0){z=3;}control.gamePad_x=x;control.gamePad_z=z;ROS_INFO("mode:%d,linear:%d,angular:%d",control.mode,control.gamePad_x,control.gamePad_z);ROS_INFO("control:",control);pub.publish(control);}int main (int argc,char** argv)
{ros::init(argc,argv, "logteleop");Teleop telelog;ros::spin();return 0;}

 


http://www.ppmy.cn/news/285090.html

相关文章

罗技dpi计算机配置文件,罗技游戏鼠标的配置文件修改方法 Logitech 游戏软件为游戏鼠标的配置文件设置不同的 DPI...

鼠标DPI(分辨率)是指鼠标的定位精度&#xff0c;单位是dpi或cpi&#xff0c;指鼠标移动中&#xff0c;每移动一英寸能准确定位的最大信息数。 Logitech 游戏软件 (LGS) 可配置 DPI 并进行其他鼠标指针调整&#xff0c;使其在默认情况下可与所有配置文件配合工作。使用 LGS&…

硬件通讯协议:串行通讯、IPMI、IPMB、SMbus、NCSI等

串行通讯和串口的关系 串行是指在数字电路或通信中&#xff0c;数据位按照一定的顺序逐个传输的方式。在串行传输中&#xff0c;每个数据位都是依次传输的&#xff0c;而不是同时传输的。相对于并行传输&#xff0c;串行传输需要更长的传输时间&#xff0c;但是可以使用更简单…

罗技游戏手柄协议 Logitech Gamepad F710 Protocol

罗技游戏手柄F710协议 Logitech Wireless Gamepad F710Mode DByte FrameByte 0Byte 1Byte 2Byte 3Byte 4Byte 5Byte 6Byte 7 Mode XByte FrameByte 0Byte 1Byte 2Byte 3Byte 4Byte 5Byte 6,7Byte 8,9Byte 10,11Byte 12,13Byte 14 Logitech Wireless Gamepad F710 Mode D Byte…

NLP学习笔记三-数据处理基础

NLP学习笔记三-数据处理基础 NLP设计的处理处理技术也比较多&#xff0c;我们简单介绍一部分&#xff1a; 1.Tokenization NLP当中的Tokenization&#xff0c;博主以前无论是在文章中还是在代码中都能经常看到&#xff0c;这在自然语言处理中也是比较常用的技术。 Tokenizati…

计算机网络管理-使用SNMPc开展网管活动

一、实验目的 全面学习SNMPc网络管理软件业务服务监控功能&#xff0c;了解如何使用网管软件从事网络管理工作 二、实验内容与设计思想 1&#xff09;操作映射数据库。 2&#xff09;查看管理对象的MIB数据。 3&#xff09;创建、保存长期统计数据&#xff08;要求一定时长…

科普下Tier1,Tier2,Tier3,Tier4 T1, T2, T3, T4

Data-Center-Tiers大家有时候买VPS会发现一些小商家都敢给客户保证&#xff0c;低于99%的在线时间可以退款多少之类的话语&#xff0c;他们为什么这么屌呢&#xff1f;其实这个问题很简单&#xff0c;我们先了解下Tier1,Tier2,Tier3,Tier4这几个概念就差不多自然有结果了。本文…

2499元索尼T2领跑 主打差异化手机推荐

如今2000元内手机市场别有不少优秀产品&#xff0c;无论造型还是功能都相当有卖点&#xff0c;挑选一部性价比十分不错的手机&#xff0c;要看该机的性能配置能否对的起这个价格。下面&#xff0c;笔者将给大家介绍几款具有看点的千元级起热门智能手机&#xff0c;还望网友们能…

week13-T1-T2

文章目录 A-1-T1题目&#xff1a;输入格式&#xff1a;输出格式&#xff1a;Sample Input1&#xff1a;Sample Output1&#xff1a;Sample Input 2&#xff1a;Sample Output 2&#xff1a;题目分析&#xff1a;代码&#xff1a;B-1-T2题目&#xff1a;输入格式&#xff1a;输出…