datetime:2023/11/03 10:52
author:nzb
该项目来源于大佬的动手学ROS2
16.项目总结与扩展
上一节我们完成后,就可以通过话题获取到机器人的里程计,也可以通过话题控制机器人移动了。对于一个移动底盘来说,这两个话题就是最关键的两个,有了这两个就可以控制底盘完成移动。但如果想让底盘更好用,可以增加OLED模块显示数据,比如电池的电压。同时我们的板子还支持IMU和超声波模块,其实都可以通过话题发布出来。
说了那么多,你可能不知道怎么做,没关系,小鱼大佬写好了所有的代码,有了前面的基础,加上代码中的详细注释,看懂他们对你来说并不难。完成代码可以直接通过git进行克隆到本地。
git clone http://github.fishros.org/https://github.com/fishros/fishbot_motion_control_microros.git
如果你的网络不错,也可以在线查看代码:https://github.dev/fishros/fishbot_motion_control_microros
该代码的结构如下:
.
├── extra_packages
│ └── fishbot_interfaces
│ ├── CMakeLists.txt # CMake构建配置文件
│ ├── msg
│ │ └── MyCustomMessage.msg # ROS消息定义
│ ├── package.xml # ROS包描述文件
│ └── srv
│ └── FishBotConfig.srv # ROS服务定义
├── include
│ ├── fishbot_config.h # 头文件
│ ├── fishbot.h # 头文件
│ ├── fishlog.h # 头文件
│ └── README # 说明文档
├── Installer # 安装器相关
├── lib
│ ├── Displays
│ │ ├── fishbot_display.cpp # 显示相关源码
│ │ └── fishbot_display.h # 显示相关头文件
│ ├── FishbotUtils
│ │ ├── fishbot_utils.cpp # 实用工具源码
│ │ └── fishbot_utils.h # 实用工具头文件
│ ├── Kinematics
│ │ ├── Kinematics.cpp # 运动学计算源码
│ │ └── Kinematics.h # 运动学计算头文件
│ ├── MicroRosRwm
│ │ ├── micro_ros_transport_serial.cpp # MicroROS串口传输源码
│ │ ├── micro_ros_transport_serial.h # MicroROS串口传输头文件
│ │ ├── micro_ros_transport_wifi_udp.cpp # MicroROS WiFi/UDP传输源码
│ │ └── micro_ros_transport_wifi_udp.h # MicroROS WiFi/UDP传输头文件
│ ├── PidController
│ │ ├── PidController.cpp # PID控制器源码
│ │ └── PidController.h # PID控制器头文件
│ └── README # 说明文档
├── LICENSE # 许可证文件
├── partition.csv # 分区配置文件
├── platformio.ini # PlatformIO配置文件
├── README.md # 项目主README文件
├── RELEASES.md # 发布说明
├── src
├── fishbot_config.cpp # 配置相关源码
├── fishbot.cpp # 主要功能源码
└── main.cpp # 主程序入口源码
下一章我们开始学习如何进行导航和建图。
17.拓展-源码编译Agent
本文介绍了如何拓展MicroROS的Agent,将其作为一个功能包进行源码编译,并提供了详细的步骤如下:
一、下载microros-agent
首先,我们需要下载MicroROS的Agent源码,并准备相应的依赖。以下是下载和准备的步骤:
安装必要的依赖项:
sudo apt-get install -y build-essential
创建工作空间并进入源码目录:
mkdir -p microros_ws/src cd microros_ws/src
下载MicroROS Agent和相关消息包的源码:
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
二、编译运行
在成功下载源码并准备好依赖后,我们可以进行编译并运行MicroROS Agent。以下是编译和运行的步骤:
返回工作空间目录并执行编译:
cd microros_ws colcon build
运行MicroROS Agent,注意可能存在串口权限问题。可以参考链接 来设置权限。运行命令如下(假设串口为
/dev/ttyUSB0
,波特率为921600):ros2 run micro_ros_agent micro_ros_agent serial -b 921600 --dev /dev/ttyUSB0 -v
或者使用UDP方法:
ros2 run micro_ros_agent micro_ros_agent serial udp4 --port 8888 -v6
三、总结
通过上述步骤,我们成功地拓展了MicroROS的Agent功能包,实现了源码的编译和运行。通过MicroROS Agent,我们能够在资源受限的嵌入式系统中实现强大的ROS 2通信能力。