5.1.3 源码安装
本章节介绍RDK和X86平台如何通过源码安装TogetheROS.Bot。
RDK平台
前提:
- 开发机能够正常访问D-Robotics组织
- 开发机已安装docker
编译tros.b
1 使用docker文件
该部分操作均在开发机内完成。
- Foxy
- Humble
## 创建目录
cd /mnt/data/kairui.wang/test
mkdir -p cc_ws/tros_ws/src
## 获取交叉编译用docker
wget http://archive.d-robotics.cc/TogetheROS/cross_compile_docker/pc_tros_v1.0.5.tar.gz
## 加载docker镜像
sudo docker load --input pc_tros_v1.0.5.tar.gz
## 查看pc_tros对应的image ID
sudo docker images
## 启动docker挂载目录
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 为例
## 创建目录
cd /mnt/data/kairui.wang/test
mkdir -p cc_ws/tros_ws/src
## 获取交叉编译用docker
wget http://archive.d-robotics.cc/TogetheROS/cross_compile_docker/pc_tros_ubuntu22.04_v1.0.0.tar.gz
## 加载docker镜像
sudo docker load --input pc_tros_ubuntu22.04_v1.0.0.tar.gz
## 查看pc_tros对应的image ID
sudo docker images
## 启动docker挂载目录
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 4cbdb9d61e19 为例
2 获取tros.b源码
该部分操作均在开发机的docker内完成。
这里以docker中/mnt/test目录为例。
- Foxy
- Humble
cd /mnt/test/cc_ws/tros_ws
## 获取配置文件
git clone https://github.com/D-Robotics/robot_dev_config.git -b foxy
## 执行cd robot_dev_config,使用 git tag --list 命令查看可用的发布版本
## 使用 git reset --hard [tag号] 命令指定发布版本。详细说明参考本页面 编译指定版本tros.b 内容
## 拉取代码
vcs-import src < ./robot_dev_config/ros2_release.repos
cd /mnt/test/cc_ws/tros_ws
## 获取配置文件
git clone https://github.com/D-Robotics/robot_dev_config.git -b develop
## 执行cd robot_dev_config,使用 git tag --list 命令查看可用的发布版本
## 使用 git reset --hard [tag号] 命令指定发布版本。详细说明参考本页面 编译指定版本tros.b 内容
## 拉取代码
vcs-import src < ./robot_dev_config/ros2_release.repos
整个工程目录结构如下
├── cc_ws
│ ├── sysroot_docker
│ │ ├── etc
│ │ ├── lib -> usr/lib
│ │ ├── opt
│ │ └── usr
│ └── tros_ws
│ ├── robot_dev_config
│ └── 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的安装路径。
robot_dev_config的tag号(版本信息),请查看版本发布记录章节。
3 交叉编译
该部分操作均在开发机的docker内完成。
## 使用build.sh编译X3版本tros.b
bash ./robot_dev_config/build.sh -p X3
## 使用build.sh编译RDK Ultra版本tros.b
bash ./robot_dev_config/build.sh -p Rdkultra
## 使用build.sh编译X5版本tros.b
bash ./robot_dev_config/build.sh -p X5
## 使用build.sh编译S100版本tros.b
bash ./robot_dev_config/build.sh -p S100
编译成功后会提示总计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源码。如果需要获取某个指定发布版本源码,该步骤需要做如下修改
## 获取配置文件
git clone https://github.com/D-Robotics/robot_dev_config.git
cd robot_dev_config
## 查看可用的发布版本
git tag --list
## 切换至指定版本号,这里以tros.b 2.0.0为例
git reset --hard tros_2.0.0
cd ..
## 拉取代码
vcs-import src < ./robot_dev_config/ros2_release.repos
robot_dev_config的tag号(版本信息),请查看版本发布记录章节。
X86平台
系统要求
必须为Ubuntu 20.04 64位系统,也可使用RDK平台交叉编译docker镜像,但编译和运行必须都在docker中进行
系统设置
设置local
确保语言环境支持 UTF-8
locale # check for UTF-8
sudo apt update && sudo apt install locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8
locale # verify settings