• [X3m]ros交叉编译


    ros需要安装以下包

    PYTHON_PACKAGE_LIST="lark lark-parser netifaces pyyaml ifcfg pyunicodedata "

    TogetheROS.Bot | TogetheROS.Bot用户手册

    编译tros.b

    1 使用docker文件

    该部分操作均在开发机的docker内完成。

    1. ## 创建目录
    2. cd /mnt/data/kairui.wang/test
    3. mkdir -p cc_ws/tros_ws/src
    4. ## 获取交叉编译用docker
    5. wget http://archive.sunrisepi.tech/TogetheROS/cross_compile_docker/pc_tros_v1.0.5.tar.gz
    6. ## 加载docker镜像
    7. sudo docker load --input pc_tros_v1.0.5.tar.gz
    8. ## 查看pc_tros对应的image ID
    9. sudo docker images
    10. ## 启动docker挂载目录
    11. sudo docker run -it --entrypoint="/bin/bash" -v PC本地目录:docker目录 imageID,这里以 sudo docker run -it --entrypoint="/bin/bash" -v /mnt/data/kairui.wang/test:/mnt/test 9c2ca340973e 为例
    2 获取tros.b源码

    该部分操作均在开发机的docker内完成。

    这里以docker中/mnt/test目录为例。

    1. cd /mnt/test/cc_ws/tros_ws
    2. ## 获取配置文件
    3. git clone https://github.com/HorizonRDK/robot_dev_config.git -b develop
    4. ## 执行cd robot_dev_config,使用 git tag --list 命令查看可用的发布版本
    5. ## 使用 git reset --hard [tag号] 命令指定发布版本。详细说明参考本页面 编译指定版本tros.b 内容
    6. ## 拉取代码
    7. vcs-import src < ./robot_dev_config/ros2_release.repos

    整个工程目录结构如下

    1. ├── cc_ws
    2. │ ├── sysroot_docker
    3. │ │ ├── etc
    4. │ │ ├── lib -> usr/lib
    5. │ │ ├── opt
    6. │ │ └── usr
    7. │ └── tros_ws
    8. │ ├── robot_dev_config
    9. │ └── src

    其中tros_ws/robot_dev_config路径包含代码拉取、编译、打包等功能所需要的配置、脚本文件;tros_ws/src路径存放拉取的代码;sysroot_docker路径包含交叉编译依赖的头文件和库,和地平线RDK的/目录对应。例如媒体库在sysroot_docker中的路径为sysroot_docker/usr/lib/hbmedia/,在地平线RDK中的路径为/usr/lib/hbmedia/

    编译时,在robot_dev_config/aarch64_toolchainfile.cmake编译脚本中通过CMAKE_SYSROOT宏指定sysroot_docker的安装路径。

    3 交叉编译

    该部分操作均在开发机的docker内完成。

    1. ## 拷贝create_soft_link.py
    2. mkdir -p install && cp ./robot_dev_config/create_soft_link.py install/
    3. ## 使用build.sh编译X3版本tros.b
    4. bash ./robot_dev_config/build.sh -p X3
    5. ## 使用build.sh编译RDK Ultra版本tros.b
    6. bash ./robot_dev_config/build.sh -p Rdkultra

    编译成功后会提示总计N packages编译通过。

    若使用minimal_build.sh进行最小化编译,还可通过执行./minimal_deploy.sh -d “install_path”,进一步压缩部署包大小。

    安装tros.b

    将编译生成的install目录拷贝至地平线RDK中并重命名为tros,这里我们将部署包放在/opt/tros目录下与deb安装目录保持一致

    编译指定版本tros.b

    在本章节编译tros.b小节第2步获取tros.b源码中,默认是获取的最新版本tros.b源码。如果需要获取某个指定发布版本源码,该步骤需要做如下修改

    1. ## 获取配置文件
    2. git clone https://github.com/HorizonRDK/robot_dev_config.git -b develop
    3. cd robot_dev_config
    4. ## 查看可用的发布版本
    5. git tag --list
    6. ## 切换至指定版本号,这里以tros.b 2.0.0为例
    7. git reset --hard tros_2.0.0
    8. cd ..
    9. ## 拉取代码
    10. vcs-import src < ./robot_dev_config/ros2_release.repos

  • 相关阅读:
    js 实现继承
    【Docker】Linux网络命名空间
    java毕业设计本地助农产品销售系统mybatis+源码+调试部署+系统+数据库+lw
    jmeter-事务控制器与并发控制器与if控制器项目实践
    算法基础入门 - 2.栈、队列、链表
    Linux命令大全(超详细版)
    别再到处乱放配置文件了!我司使用 7 年的这套解决方案,稳的一秕
    RabbitMQ消息队列快速入门
    26.Python3面向对象编程|菜鸟教程
    【LeetCode热题100】接雨水+无重复字符的最长子串+找到字符串中所有字母异位词
  • 原文地址:https://blog.csdn.net/ldinvicible/article/details/132874325