《ROS1学习笔记——在ros中实现串口通信》

发布时间:2026/10/16 23:34:43
《ROS1学习笔记——在ros中实现串口通信》 文章目录1、下载相关包2、编程实现2.1、新建功能包2.2、c代码2.3、配置CMakLists3 、硬件4、编译运行4.1、编译4.2运行4.2.2、串口助手4.2.3发送数据1、下载相关包ros里有相应的串口库可以供我们直接使用sudo apt-get install ros-noetic-serial注意noeyic需要换成自己ubuntu的版本。2、编程实现2.1、新建功能包catkin_create_pkg serial_demo roscpp serial2.2、c代码在src目录下新建demo_serial.cpp文件#includeros/ros.h#includeserial/serial.h#includeiostreamintmain(intargc,char**argv){ros::init(argc,argv,serial_port);//创建句柄虽然后面没用到这个句柄但如果不创建运行时进程会出错ros::NodeHandle n;//创建一个serial对象serial::Serial sp;//创建timeoutserial::Timeout toserial::Timeout::simpleTimeout(100);//设置要打开的串口名称sp.setPort(/dev/ttyUSB0);//设置串口通信的波特率sp.setBaudrate(9600);//串口设置timeoutsp.setTimeout(to);try{//打开串口sp.open();}catch(serial::IOExceptione){ROS_ERROR_STREAM(Unable to open port.);return-1;}//判断串口是否打开成功if(sp.isOpen()){ROS_INFO_STREAM(/dev/ttyUSB0 is opened.);}else{return-1;}ros::Rateloop_rate(500);while(ros::ok()){//获取缓冲区内的字节数size_t nsp.available();if(n!0){uint8_tbuffer[1024];//读出数据nsp.read(buffer,n);for(inti0;in;i){//16进制的方式打印到屏幕//std::cout std::hex (buffer[i] 0xff) ;std::coutbuffer[i];}std::coutstd::endl;//把数据发送回去sp.write(buffer,n);}loop_rate.sleep();}//关闭串口sp.close();return0;}2.3、配置CMakLists在CMakLists文件中添加如下代码add_executable(demo_serial src/demo_serial.cpp)add_dependencies(demo_serial${${PROJECT_NAME}_EXPORTED_TARGETS}${catkin_EXPORTED_TARGETS})target_link_libraries(demo_serial${catkin_LIBRARIES})3 、硬件我这里使用了两个CH430先插上一个选择连接到虚拟机上。然后再插一个选择连接到主机。输入lsusb可以检测接入的USB设备4、编译运行4.1、编译回到空间目录下进行编译catkin_make编译成功后检查devel目录下是否出现可执行文件4.2运行终端1运行roscore终端21、改变环境变量source devel/setup.bash2、 修改Linux 系统对串口设备的默认权限限制不然会串口打开失败sudo chmod 777/dev/ttyUSB03、运行节点代码rosrun demo_serial demo_serial4.2.2、串口助手在主机那边打开一个串口助手配置好基本配置打开串口。4.2.3发送数据主机向ros虚拟机发送数据ros那边成功收到数据并返回数据。参考链接https://blog.csdn.net/qqliuzhitong/article/details/114384297

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询