搭建ROS小车底盘B-通过ROS利用键盘控制小车移动
说明:
介绍如何通过键盘控制小车运动
准备工作
下载串口通信的ROS包
$ cd ~/catkin_ws/src
$ git clone https://github.com/ncnynl/serial.git
下载键盘控制的ROS包
cd ~/catkin_ws/src
git clone https://github.com/ncnynl/teleop_twist_keyboard.git
进入下载好的ROS包的文件夹,选中 keyboard_teleop_zbot.py ,右键->设为可执行文件。
最后一步:
$ cd ~/catkin_ws
$ catkin_make
这样子我们的键盘控制包就能使用了。
新建 base_controller ROS 包
创建base_controller
$ cd ~/catkin_ws/src
$ catkin_create_pkg base_controller roscpp
在新建好的ROS包文件夹下新建一个“src”的文件夹,然后进入该文件夹,新建一个base_controller.cpp文件,将本博文最后提供的代码粘贴进去:
$ mkdir src
$ touch src/base_controller.cpp
$ vim src/base_controller.cpp
base_controller.cpp代码:
/******************************************************************
基于串口通信的ROS小车基础控制器,功能如下:
1.实现ros控制数据通过固定的格式和串口通信,从而达到控制小车的移动
2.订阅了/cmd_vel主题,只要向该主题发布消息,就能实现对控制小车的移动
3.发布里程计主题/odm
串口通信说明:
1.写入串口
(1)内容:左右轮速度,单位为mm/s
(2)格式:10字节,[右轮速度4字节][左轮速度4字节][结束符"\r\n"2字节]
2.读取串口
(1)内容:小车x,y坐标,方向角,线速度,角速度,单位依次为:mm,mm,rad,mm/s,rad/s
(2)格式:21字节,[X坐标4字节][Y坐标4字节][方向角4字节][线速度4字节][角速度4字节][结束符"\n"1字节]
*******************************************************************/
#include "ros/ros.h" //ros需要的头文件
#include
#include
#include
//以下为串口通讯需要的头文件
#include
#include
#include
#include
#include
#include