从0开始,部署micro_ros+stm32f407+stm32cubeIDE

目录

一、安装ROS2和micro_ros构建系统

二、安装和运行agent

三、ubuntu下ch340连接

四、安装一个串口调试软件(非必须,可用来检查串口功能)

五、micro_ros移植进stmcubeIDE工程

六、测试


本文分享在STM32开发板上搭建micro-ROS环境(以STM32F407为例)。

开发环境是windows11下STM32CubeIDE,测试环境是虚拟机ubuntu22.04+ROS2 humble+agent。

-------------------------------------------------------------------------------------------------------------------------------

一、安装ROS2和micro_ros构建系统

参考教程:a. 动手学ROS2

                  b. https://micro.ros.org/docs/tutorials/core/first_application_linux/

注意要点:

(1)首先参考教程a安装虚拟机和ubuntu,注意版本选择22.04;

(2)参考教程b部署micro_ros构建系统

# Source the ROS 2 installation,将ROS2的全局环境变量和路径配置到当前的终端会话中
source /opt/ros/$ROS_DISTRO/setup.bash

# Create a workspace and download the micro-ROS tools
mkdir microros_ws
cd microros_ws
git clone -b $ROS_DISTRO https://github.com/micro-ROS/micro_ros_setup.git src/micro_ros_setup

# Update dependencies using rosdep,更新rosdep
sudo apt update && rosdep update
rosdep install --from-paths src --ignore-src -y

# Install pip
sudo apt-get install python3-pip

# Build micro-ROS tools and source them,
# 运行 colcon build 命令来构建工作空间中的所有包,colcon 是 ROS 2 的标准构建工具,它会自动查找和 
#     构建工作空间中的所有包,确保它们可以被使用。
# 配置环境:source install/local_setup.bash 将工作空间中的环境变量和路径添加到当前终端会话,确保# #     你可以运行和测试你构建的工具和包。
colcon build    
source install/local_setup.bash

(3)教程a中的安装docker不是必须的,取决于运行agent时是否想使用docker

(4)记得安装rosdep(用鱼香的工具),并在以后的命令中将rosdep替换为rosdepc

(5)安装依赖项rosdep时,必须处于创建的microros_ws中,因为里面有clone的src文件夹

二、安装和运行agent

参考教程:【ROS2机器人入门到实战】拓展-源码编译Agent_micro-ros 源码-CSDN博客

1、使用源码编译的方式部署agent,到src里clone源码:

git clone http://github.fishros.org/https://github.com/micro-ROS/micro-ROS-Agent.git -b humble
git clone http://github.fishros.org/https://github.com/micro-ROS/micro_ros_msgs.git -b humble

2、返回工作空间目录并执行编译

cd microros_ws
colcon build

3、注意!!!记得配置下环境变量:

source install/local_setup.sh

4、运行agent,选择udp、tcp、can、串口,这里没有使用docker

ros2 run micro_ros_agent micro_ros_agent udp4 --port 8888
ros2 run micro_ros_agent micro_ros_agent tcp4 --port 8888
ros2 run micro_ros_agent micro_ros_agent canfd --dev [YOUR CAN INTERFACE]
ros2 run micro_ros_agent micro_ros_agent serial --dev [YOUR BOARD PORT]

例如:
ros2 run micro_ros_agent micro_ros_agent serial --dev /dev/ttyUSB0

三、ubuntu下ch340连接

1、检查是否能够识别到ch340,如下输出则表示可以识别到。

输入命令: lsmod | grep usbserial
输出:usbserial              53248  1 ch341

2、输入命令(查看USB转串口接入状态):dmesg。

如下代表ch340已经正常连接。

[   33.883591] usbserial: USB Serial support registered for ch341-uart
[   33.883618] ch341 3-2:1.0: ch341-uart converter detected
[   33.892312] RAPL PMU: API unit is 2^-32 Joules, 0 fixed counters, 10737418240 ms ovfl timer
[   33.893971] usb 3-2: ch341-uart converter now attached to ttyUSB0

还能查看已连接的设备,输入:ls /dev/tty* 

3、如果显示disconnec... 断开连接,可能是因为ch340驱动被占用,解决方法如下,先输入命令:

sudo dmesg | grep brltty

如果你能收到这样的结果:

[ 7033.078452] usb 1-13: usbfs: interface 0 claimed by ch341 while 'brltty' sets config #1

问题就很明显了,是驱动占用问题,只需要卸载brltty就行:

sudo apt remove brltty

重新插拔、虚拟机连接下ch340,再回到第2步,应该能正常连接上。

四、安装一个串口调试软件(非必须,可用来检查串口功能)

参考:https://www.cnblogs.com/kele-dad/p/11075567.html

  • 安装:sudo apt-get install cutecom
  • 打开方式:
    • 在终端输入:cutecom,即可打开串口工具
    • 或者在应用中,点击 cutecom 图标打开

五、micro_ros移植进stmcubeIDE工程

参考:

a.micro_ros移植到STM32F405RG,STM32CubeMX+STM32CubeIDE开发环境+freertos_microros 源码下载-CSDN博客

b. GitHub - micro-ROS/micro_ros_stm32cubemx_utils: A set of utilities for integrating micro-ROS in a STM32CubeMX project

参考文档十分详细且可行,这里直接使用了编译好的静态库,总结下来分为这几步:

(1)复制.c文件。包括:通讯接口microros_transports文件夹中需要使用的接口文件、microros的内存分配接口实现custom_memory_manager.c和microros_allocators.c 、microros的时间相关接口实现microros_time.c;

(2)将静态库文件和头文件复制到工作空间,建议不要禁止编译,附stm32cubeIDE选择文件禁止编译的方法:

(3)添加头文件路径、静态库文件和路径;

(4)修改freertos.c,在任务中添加micro_ros基础的node创建、topic创建、信息发送等。

六、测试

进过前面的步骤,agent应该可以正常运行,把板子的串口1和2连上电脑,串口2接入虚拟机中。先开启agent,再运行stm32或者复位一下。

另外开一个终端,查看ros node和topic,如果一切顺利,就可以看到stm32创建的node和topic了,

查看信息:

测试完成,功能正常~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值