项目简介
本项目是基于ROS和STM32的rosserial通信库,能够实现相关设备间的通信功能。
项目的主要特性和功能
- 简洁性:将所有与rosserial通信相关的代码集中在一个文件夹,提高了代码的整洁度和可维护性。
- 便捷性:内置全局的rosserialNode,自带发布者和订阅者,便于开发者快速搭建通信框架。
- 兼容性:支持多种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
- 在主机上运行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
- 也可以使用启动文件:
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】