ROS serial串口通讯

目录

  • ROS serial 串口通讯
    • 安装
    • 基本使用
      • 代码示例
    • Reference

ROS serial 串口通讯

安装

sudo apt-get install ros-kinetic-serial

基本使用

代码示例

#include 
#include 
#include 

int serial_write(serial::Serial &ser, std::string &serial_msg)
{
	ser.write(serial_msg);
	return 0;
}

int serial_read(serial::Serial &ser, std::string &result)
{
	result = ser.read(ser.available()); 
	return 0;
}

int main(int argc, char **argv)
{
    ros::init(argc, argv, "forkliftRos");
    ros::NodeHandle nh;
    
    ros::Rate loop_rate(100);
    
	serial::Serial ser;
	
	try 
    { 
        ser.setPort("/dev/ttyUSB3"); 
        ser.setBaudrate(115200); 
        serial::Timeout to = serial::Timeout::simpleTimeout(1000); 
        ser.setTimeout(to); 
        ser.open(); 
    } 
    catch (serial::IOException& e) 
    { 
        ROS_ERROR_STREAM("Unable to open port "); 
        return -1; 
    } 
    
    if(ser.isOpen()) 
    { 
        ROS_INFO_STREAM("Serial Port initialized"); 
    } 
    else 
    { 
        return -1; 
    } 
    
    while(ros::ok())
    {
	    std::string result;
	    
		if(ser.available())
		{ 
			serial_write(ser, "msg_to_send");
			serial_read(ser, result);

			printf("msg read from serial is : %s\n", result.c_str());
		}
	    ros::spinOnce();
    	loop_rate.sleep();
    }

	return 0;

}

Reference

link

你可能感兴趣的:(ROS,C++)