#include <ros/ros.h>
#include <serial/serial.h> //ROS已经内置了的串口包
#include <std_msgs/String.h>
#include <std_msgs/Empty.h>
#include"geometry_msgs/Twist.h"
using namespace std;
serial::Serial sp; //声明串口对象
unsigned char buf[6] = {
0xff,0x00,0x00,0x00,0x00,0xfe};
//回调函数
void chatterCallback(const geometry_msgs::Twist& msg)
{
ROS_INFO_STREAM(std::setprecision(2) << std::fixed << "linear.x=("<< msg.linear.x<<" msg.angular.z="<<msg.angular.z);
cout<<"线速度:"<<msg.linear.x<<" "<<"角速度:"<<msg.angular.z<<endl;
sp.write(buf,6); //发送串口数据
cout<<"发送数据成功"<<endl;
}
int main (int argc, char** argv)
{
//初始化节点
ros::init(argc, argv, "sp_car");
//声明节点句柄
ros::NodeHandle nh;
//订阅主题,并配置回调函数
ros::Subscriber write_sub = nh.subscribe("/teleop/cmd_vel", 1000, chatterCallback);
//发布主题
try
{
//设置串口属性,并打开串口
sp.setPort("/dev/ttyUSB0");
sp.setBaudrate(115200);
serial::Timeout to = serial::
ros串口通信代码段,控制下位机真实机器人(键盘遥控)
最新推荐文章于 2024-07-29 11:20:02 发布

最低0.47元/天 解锁文章
5676

被折叠的 条评论
为什么被折叠?



