littlebot
Published on 2025-04-12 / 1 Visits
0

【源码】基于ROS和STM32的rosserial通信库

项目简介

本项目是基于ROS和STM32的rosserial通信库,能够实现相关设备间的通信功能。

项目的主要特性和功能

  1. 简洁性:将所有与rosserial通信相关的代码集中在一个文件夹,提高了代码的整洁度和可维护性。
  2. 便捷性:内置全局的rosserialNode,自带发布者和订阅者,便于开发者快速搭建通信框架。
  3. 兼容性:支持多种STM32系列微控制器,提供生成库文件的脚本,方便集成到项目中。

安装使用步骤

安装项目

假设用户已下载本项目的源码文件,可按以下步骤操作: 1. 安装ROS包: sh cd ~/catkin_ws/src cd .. catkin_make source devel/setup.sh 2. 生成库文件,例如在包文件夹中: sh roscd rosserial_stm32cxj rosrun rosserial_stm32cxj make_libraries.py . 这将在 rosserial_stm32cxj 包中生成一个 rosserialInc/ 文件夹。 3. 将生成的 rosserialInc/ 文件夹复制到你的STM32项目中,并将其添加到项目的包含路径源路径

配置代码

在你的STM32项目中,按以下步骤配置代码: 1. 在 rosserialNode.cpp 中配置发布者和订阅者信息。 2. 在主文件中编写以下代码: ```c #include "ros.h" extern RosserialNode rosserialNode; // 可选声明

void setup() {
    rosserialNode.init(&huart1); // 初始化端口
}
void loop() {
    rosserialNode.publish(&(yourPubData)); // 发布数据
    rosserialNode.spinOnce();
}

// 订阅回调函数
void sub1Callback(const std_msgs::String &msg) {
    // 这里编写代码
}
```

连接ROS Master

  1. 在主机上运行rosserial客户端节点: sh roscore rosrun rosserial_python serial_node.py 默认波特率为57600。若要指定端口和波特率,使用以下命令: sh rosrun rosserial_python serial_node.py _port:=/dev/ttyACM0 _baud:=115200 可通过以下命令识别端口名: sh dmesg | grep tty
  2. 也可以使用启动文件: xml <launch> <node pkg="rosserial_python" type="serial_node.py" name="serial_node"> <param name="port" value="/dev/ttyACM0"/> <param name="baud" value="115200"/> </node> </launch>

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】