可以通过手机控制小车九个方向的移动或停止,并且可以五档调速。
安卓端代码这里就不放了,大概就是实现按键发送特定字符串给小车的ip和端口,非常简单。
ros端接口的代码如下:
#include <iostream>
#include <cstring>
#include <cstdlib>
#include <cstdio>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <typeinfo>
#include "ros/ros.h"
#include "geometry_msgs/Twist.h"
#define PORT 8000 // 用于监听的端口号
#define BUF_LEN 1024 // 缓冲区大小
int s = 0;
double spd_linear=0.5;
double spd_angular=0.5;
using namespace std;
int main(int argc, char *argv[]) {
setlocale(LC_ALL,"");
// 2.初始化 ROS 节点
ros::init(argc,argv,"control");
ros::NodeHandle nh;
// 3.创建发布者对象
ros::Publisher pub = nh.advertise<geometry_msgs::Twist>("/cmd_vel",1000);
// 4.循环发布运动控制消息
//4-1.组织消息
geometry_msgs::Twist msg;
msg.linear.x = 0.0;
msg.linear.y = 0.0;
msg.linear.z = 0.0;
msg.angular.x = 0.0;
msg.angular.y = 0.0;
msg.angular.z = 0.0;
//4-2.设置发送频率
ros::Rate r(10);
//4-3.循环发送
int sockfd;
struct sockaddr_in server_addr, client_addr;
socklen_t client_addr_len = sizeof(client_addr);
char buffer[BUF