ros串口通信代码段,控制下位机真实机器人(键盘遥控)

#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::
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值