fix: bagtrans options bugs (#49)
* CI: change build worlflow image tag from v20240927 to latest * fix: fix bagtrans tool support - Add AIMRT_BUILD_BAGTRANS option in CMakeLists.txt - Update build.bat, build.sh, test.bat and test.sh scripts to include bagtrans build option - Modify CMakeLists.txt in bagtrans directory to simplify build logic - Remove autopep8 dependency from bagtrans/requirements.txt * format : format the code * fix: Turn off the bagtrans compilation option on Windows * feat(tools): Update bagtrans tool build method - Change the build method of bagtrans tool from PyInstaller to using the build module to generate wheel files - Update CMakeLists.txt and setup.py files to adapt to the new build method - Update release notes, adding new information about the bagtrans tool * fix: format --------- Co-authored-by: yuguanlin <yuguanlin@agibot.com>
This commit is contained in:
parent
25c8b2e5bb
commit
42ba5be784
@ -14,6 +14,7 @@ option(AIMRT_BUILD_EXAMPLES "AimRT build examples." OFF)
|
|||||||
option(AIMRT_BUILD_DOCUMENT "AimRT build document." OFF)
|
option(AIMRT_BUILD_DOCUMENT "AimRT build document." OFF)
|
||||||
option(AIMRT_BUILD_RUNTIME "AimRT build runtime." ON)
|
option(AIMRT_BUILD_RUNTIME "AimRT build runtime." ON)
|
||||||
option(AIMRT_BUILD_CLI_TOOLS "AimRT build aimrt command line tools." OFF)
|
option(AIMRT_BUILD_CLI_TOOLS "AimRT build aimrt command line tools." OFF)
|
||||||
|
option(AIMRT_BUILD_BAGTRANS "AimRT build bagtrans tool." OFF)
|
||||||
|
|
||||||
option(AIMRT_BUILD_PYTHON_RUNTIME "AimRT build python runtime." OFF)
|
option(AIMRT_BUILD_PYTHON_RUNTIME "AimRT build python runtime." OFF)
|
||||||
|
|
||||||
@ -206,6 +207,21 @@ if(AIMRT_BUILD_RUNTIME)
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(AIMRT_BUILD_BAGTRANS)
|
||||||
|
include(CheckPythonPackage)
|
||||||
|
check_python_package(build BUILD_FOUND)
|
||||||
|
check_python_package(wheel WHEEL_FOUND)
|
||||||
|
check_python_package(setuptools SETUPTOOLS_FOUND)
|
||||||
|
|
||||||
|
if(NOT BUILD_FOUND
|
||||||
|
OR NOT WHEEL_FOUND
|
||||||
|
OR NOT SETUPTOOLS_FOUND)
|
||||||
|
set(AIMRT_BUILD_BAGTRANS OFF)
|
||||||
|
message(WARNING "Can not find build, wheel or setuptools in your python environment, will not compile bagtrans tool!")
|
||||||
|
message(WARNING "try to install build, wheel and setuptools by `pip3 install build wheel setuptools --upgrade`")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
if(AIMRT_BUILD_NET_PLUGIN)
|
if(AIMRT_BUILD_NET_PLUGIN)
|
||||||
include(GetBoost)
|
include(GetBoost)
|
||||||
endif()
|
endif()
|
||||||
@ -287,7 +303,11 @@ if(AIMRT_INSTALL
|
|||||||
install(CODE "execute_process(COMMAND \"${CMAKE_COMMAND}\" --build \"${CMAKE_BINARY_DIR}\" --config ${CMAKE_BUILD_TYPE} --target create_python_pkg)")
|
install(CODE "execute_process(COMMAND \"${CMAKE_COMMAND}\" --build \"${CMAKE_BINARY_DIR}\" --config ${CMAKE_BUILD_TYPE} --target create_python_pkg)")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(AIMRT_BUILD_ROS2_PLUGIN AND AIMRT_BUILD_RECORD_PLAYBACK_PLUGIN)
|
if(AIMRT_INSTALL
|
||||||
|
AND AIMRT_BUILD_WITH_ROS2
|
||||||
|
AND AIMRT_BUILD_ROS2_PLUGIN
|
||||||
|
AND AIMRT_BUILD_RECORD_PLAYBACK_PLUGIN
|
||||||
|
AND AIMRT_BUILD_BAGTRANS)
|
||||||
install(CODE "execute_process(COMMAND \"${CMAKE_COMMAND}\" --build \"${CMAKE_BINARY_DIR}\" --config ${CMAKE_BUILD_TYPE} --target bagtrans)")
|
install(CODE "execute_process(COMMAND \"${CMAKE_COMMAND}\" --build \"${CMAKE_BINARY_DIR}\" --config ${CMAKE_BUILD_TYPE} --target bagtrans)")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
@ -10,6 +10,7 @@ cmake -B build ^
|
|||||||
-DAIMRT_BUILD_DOCUMENT=ON ^
|
-DAIMRT_BUILD_DOCUMENT=ON ^
|
||||||
-DAIMRT_BUILD_RUNTIME=ON ^
|
-DAIMRT_BUILD_RUNTIME=ON ^
|
||||||
-DAIMRT_BUILD_CLI_TOOLS=ON ^
|
-DAIMRT_BUILD_CLI_TOOLS=ON ^
|
||||||
|
-DAIMRT_BUILD_BAGTRANS=OFF ^
|
||||||
-DAIMRT_BUILD_PYTHON_RUNTIME=ON ^
|
-DAIMRT_BUILD_PYTHON_RUNTIME=ON ^
|
||||||
-DAIMRT_USE_FMT_LIB=ON ^
|
-DAIMRT_USE_FMT_LIB=ON ^
|
||||||
-DAIMRT_BUILD_WITH_PROTOBUF=ON ^
|
-DAIMRT_BUILD_WITH_PROTOBUF=ON ^
|
||||||
|
1
build.sh
1
build.sh
@ -12,6 +12,7 @@ cmake -B build \
|
|||||||
-DAIMRT_BUILD_DOCUMENT=ON \
|
-DAIMRT_BUILD_DOCUMENT=ON \
|
||||||
-DAIMRT_BUILD_RUNTIME=ON \
|
-DAIMRT_BUILD_RUNTIME=ON \
|
||||||
-DAIMRT_BUILD_CLI_TOOLS=ON \
|
-DAIMRT_BUILD_CLI_TOOLS=ON \
|
||||||
|
-DAIMRT_BUILD_BAGTRANS=ON \
|
||||||
-DAIMRT_BUILD_PYTHON_RUNTIME=ON \
|
-DAIMRT_BUILD_PYTHON_RUNTIME=ON \
|
||||||
-DAIMRT_USE_FMT_LIB=ON \
|
-DAIMRT_USE_FMT_LIB=ON \
|
||||||
-DAIMRT_BUILD_WITH_PROTOBUF=ON \
|
-DAIMRT_BUILD_WITH_PROTOBUF=ON \
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
- 新增了第三方库 asio,runtime::core 不再引用 boost,改为引用独立的 asio 库,以减轻依赖;
|
- 新增了第三方库 asio,runtime::core 不再引用 boost,改为引用独立的 asio 库,以减轻依赖;
|
||||||
- 修复 aimrt_py 多线程 rpc 调用 server 端概率性崩溃的问题;
|
- 修复 aimrt_py 多线程 rpc 调用 server 端概率性崩溃的问题;
|
||||||
- 为 aimrt_py 的 channel 功能提供了 Context 支持;
|
- 为 aimrt_py 的 channel 功能提供了 Context 支持;
|
||||||
|
- 新增 bagtrans 命令行工具,用于将 使用 aimrt record_playback 插件录制的 bag 文件转换为 ros2 的 bag 文件;
|
||||||
|
|
||||||
**次要修改**:
|
**次要修改**:
|
||||||
- 缩短了一些 examples 的文件路径长度;
|
- 缩短了一些 examples 的文件路径长度;
|
||||||
|
@ -2,26 +2,28 @@
|
|||||||
|
|
||||||
## 简介
|
## 简介
|
||||||
|
|
||||||
**bagtrans** 是一个 AimRT 官方提供的命令行工具,用于将 AimRT 的 bag 文件转换为 ROS2 的 bag 文件,其中ros2 原生消息会直接转换,pb 消息会转换为 aimrt 提供的 ros2_plugin_proto 中的 RosMsgWrapper 消息类型。
|
**bagtrans** 是一个 AimRT 官方提供的命令行工具,目前可以将 AimRT **recordplayback** 插件记录的 bag 文件转换为 ROS2 的 bag 文件,其中ros2 原生消息会直接转换,pb 消息会转换为 aimrt 提供的 ros2_plugin_proto 中的 RosMsgWrapper 消息类型。
|
||||||
|
|
||||||
## 安装
|
## 安装
|
||||||
|
|
||||||
**bagtrans** 工具是一个基于 Python 开发的小程序,并且依赖于 aimrt 提供的 ros2_plugin_protobuf 消息类型,通过以下步骤安装:
|
**bagtrans** 工具是一个基于 Python 开发的小工具,并且依赖于 aimrt 提供的 ros2_plugin_protobuf 消息类型,需要按照以下步骤安装:
|
||||||
|
|
||||||
1. 编译 aimrt 生成 ros2_plugin_proto
|
1. 需要您的 python 环境中安装了 build、wheel 和 setuptools 包,如果未安装,可以使用以下命令安装:
|
||||||
|
|
||||||
执行您 aimrt 源码库中的`build.sh`文件进行编译,可以在`build.sh`文件中关闭其他您不需要的 CMake 选项以加快编译,但是需要确保`AIMRT_BUILD_ROS2_PLUGIN` 和 `AIMRT_BUILD_RECORD_PLAYBACK_PLUGIN` 选项为`ON`。
|
```bash
|
||||||
|
pip3 install build wheel setuptools --upgrade
|
||||||
|
|
||||||
2. 在终端中执行以下命令:
|
|
||||||
|
|
||||||
```
|
|
||||||
cd <path_to_your_aimrt_src_code>/src/tools/bagtrans
|
|
||||||
python setup.py install
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
2. 需要编译生成 aimrt 源码库中的 ros2_plugin_proto 消息类型,并且在 build.sh 文件中确保`AIMRT_BUILD_ROS2_PLUGIN` 、 `AIMRT_BUILD_RECORD_PLAYBACK_PLUGIN` 和 `AIMRT_BUILD_BAGTRANS` 选项为`ON`,执行您 aimrt 源码库中的`build.sh`文件进行编译,编译完成后,在 `<path_to_your_aimrt_src_code>/src/tools/bagtrans/build/dist` 文件夹下可找到编译生成的`whl`文件。
|
||||||
|
|
||||||
|
3. 在终端中执行以下命令:
|
||||||
|
```
|
||||||
|
cd <path_to_your_aimrt_src_code>/src/tools/bagtrans/build/dist
|
||||||
|
pip3 install bagtrans-<version>-py3-none-any.whl
|
||||||
|
```
|
||||||
**bagtrans**工具将会自动安装到您的 python 环境中。使用 `pip list | grep bagtrans`可查看是否安装成功。可使用 `pip uninstall bagtrans`进行卸载。
|
**bagtrans**工具将会自动安装到您的 python 环境中。使用 `pip list | grep bagtrans`可查看是否安装成功。可使用 `pip uninstall bagtrans`进行卸载。
|
||||||
|
|
||||||
|
|
||||||
## 使用说明
|
## 使用说明
|
||||||
|
|
||||||
**bagtrans** 工具的使用方法如下:
|
**bagtrans** 工具的使用方法如下:
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
|
|
||||||
## 安装
|
## 安装
|
||||||
**aimrt_cli**工具是一个基于 Python 开发的小程序,有以下三种安装方式,请选择任意一种您喜欢的进行安装。
|
**aimrt_cli**工具是一个基于 Python 开发的小工具,有以下三种安装方式,请选择任意一种您喜欢的进行安装。
|
||||||
|
|
||||||
|
|
||||||
### 源码安装到 python 环境中
|
### 源码安装到 python 环境中
|
||||||
|
@ -8,9 +8,9 @@ set(BAGTRANS_BUILD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/build)
|
|||||||
|
|
||||||
add_custom_target(
|
add_custom_target(
|
||||||
bagtrans
|
bagtrans
|
||||||
COMMAND ${PYTHON_EXECUTABLE} -m PyInstaller ${CMAKE_CURRENT_SOURCE_DIR}/bagtrans/bagtrans.spec
|
COMMAND ${Python3_EXECUTABLE} -m build --wheel --no-isolation -v
|
||||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
COMMENT "${PYTHON_EXECUTABLE} -m PyInstaller ${CMAKE_CURRENT_SOURCE_DIR}/bagtrans/bagtrans.spec"
|
COMMENT "${PYTHON_EXECUTABLE} -m build --wheel --no-isolation -v"
|
||||||
DEPENDS ${BAGTRANS_SRC_FILES})
|
DEPENDS ${BAGTRANS_SRC_FILES})
|
||||||
|
|
||||||
add_custom_target(
|
add_custom_target(
|
||||||
@ -24,9 +24,7 @@ add_custom_target(
|
|||||||
COMMENT "Copying ROS2 files"
|
COMMENT "Copying ROS2 files"
|
||||||
DEPENDS aimrt::plugins::ros2_plugin)
|
DEPENDS aimrt::plugins::ros2_plugin)
|
||||||
|
|
||||||
if(AIMRT_BUILD_WITH_ROS2 AND AIMRT_BUILD_ROS2_PLUGIN)
|
add_dependencies(bagtrans copy_ros2_plugin_proto_files_bagtrans)
|
||||||
add_dependencies(bagtrans copy_ros2_plugin_proto_files_bagtrans)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(AIMRT_INSTALL)
|
if(AIMRT_INSTALL)
|
||||||
install(
|
install(
|
||||||
|
@ -2,4 +2,3 @@
|
|||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
||||||
setuptools>=59.6.0
|
setuptools>=59.6.0
|
||||||
autopep8>=1.6.0
|
|
||||||
|
@ -10,9 +10,6 @@ setup(
|
|||||||
app='bagtrans',
|
app='bagtrans',
|
||||||
version='0.0.1',
|
version='0.0.1',
|
||||||
packages=find_packages(exclude=['test']),
|
packages=find_packages(exclude=['test']),
|
||||||
install_requires=[
|
|
||||||
'pyinstaller>=6.1.0',
|
|
||||||
],
|
|
||||||
author='Yu Guanlin',
|
author='Yu Guanlin',
|
||||||
author_email='yuguanlin@agibot.com',
|
author_email='yuguanlin@agibot.com',
|
||||||
description='transfer aimrt bag file to ros2 bag file',
|
description='transfer aimrt bag file to ros2 bag file',
|
||||||
|
1
test.bat
1
test.bat
@ -10,6 +10,7 @@ cmake -B build ^
|
|||||||
-DAIMRT_BUILD_DOCUMENT=ON ^
|
-DAIMRT_BUILD_DOCUMENT=ON ^
|
||||||
-DAIMRT_BUILD_RUNTIME=ON ^
|
-DAIMRT_BUILD_RUNTIME=ON ^
|
||||||
-DAIMRT_BUILD_CLI_TOOLS=ON ^
|
-DAIMRT_BUILD_CLI_TOOLS=ON ^
|
||||||
|
-DAIMRT_BUILD_BAGTRANS=OFF ^
|
||||||
-DAIMRT_BUILD_PYTHON_RUNTIME=ON ^
|
-DAIMRT_BUILD_PYTHON_RUNTIME=ON ^
|
||||||
-DAIMRT_USE_FMT_LIB=ON ^
|
-DAIMRT_USE_FMT_LIB=ON ^
|
||||||
-DAIMRT_BUILD_WITH_PROTOBUF=ON ^
|
-DAIMRT_BUILD_WITH_PROTOBUF=ON ^
|
||||||
|
1
test.sh
1
test.sh
@ -12,6 +12,7 @@ cmake -B build \
|
|||||||
-DAIMRT_BUILD_DOCUMENT=ON \
|
-DAIMRT_BUILD_DOCUMENT=ON \
|
||||||
-DAIMRT_BUILD_RUNTIME=ON \
|
-DAIMRT_BUILD_RUNTIME=ON \
|
||||||
-DAIMRT_BUILD_CLI_TOOLS=ON \
|
-DAIMRT_BUILD_CLI_TOOLS=ON \
|
||||||
|
-DAIMRT_BUILD_BAGTRANS=ON \
|
||||||
-DAIMRT_BUILD_PYTHON_RUNTIME=ON \
|
-DAIMRT_BUILD_PYTHON_RUNTIME=ON \
|
||||||
-DAIMRT_USE_FMT_LIB=ON \
|
-DAIMRT_USE_FMT_LIB=ON \
|
||||||
-DAIMRT_BUILD_WITH_PROTOBUF=ON \
|
-DAIMRT_BUILD_WITH_PROTOBUF=ON \
|
||||||
|
Loading…
x
Reference in New Issue
Block a user