遥控turtlebot2小车

本文介绍了如何使用游戏手柄控制turtlebot2移动平台,通过ROS kinetic版的joy功能包接收手柄消息,并将其发布到/turtle1/cmd_vel主题,实现对小车的转向和前进控制。在工作空间创建功能包,编写.cpp文件和launch文件,调整小车速度并在启动后通过设定的使能键进行操作。尽管turtlebot2的平稳性不佳,但能实现恒定速度或角速度运行。
摘要由CSDN通过智能技术生成

尝试使用游戏手柄控制turtlebot2移动平台,ROS 是kinetic版本,首先按照教程安装turtlebot的ROS包(https://www.ncnynl.com/archives/201811/2787.html)

1、手柄

1)手柄是USB免驱动安装的,通过ls /dev/input 可以查看是否存在js0这一项。
2)安装手柄测试软件,主要是记下手柄的键的代号,选择自己方便操作的那个用来控制小车
sudo apt-get install jstest-gtk
jstest-gtk

在这里插入图片描述

2、编写相关节点文件

利用joy功能包来传入手柄的消息,如果没有的话那就自行安装下。主要流程是joy读到手柄的操作信息后,将joy读到的信息,发布到/turtle1/cmd_vel这个topic上,turtlebot订阅了这个话题的消息,从而达成对小车的控制(/turtle1/cmd_vel这个topic来自于通过键盘控制turtlebot示例,就是用来自joy的消息代替键盘的消息)。
1)创建工作空间并创建功能包

mkdir vinyson   //文件夹名,随意取
cd vinyson
mkdir src
cd src
catkin_init_workspace
cd ..
catkin_make
cd src
catkin_create_pkg joy_turtlebot roscpp rospy    //功能包名自行定义,保持前后一致即可

在src文件下添加.cpp文件如下:

#include<ros/ros.h>
#include<geometry_msgs/Twist.h>
#include <sensor_msgs/Joy.h>
#include<iostream>
using namespace std;
geometry_msgs::Twist v;
ros::Publisher pub;      //全局变量,主要是为了小车能对手柄一直有响应,而不是只有按下那一次
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,ton
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值