1 准备
1.1 开发板
采用Firefly的CORE-1126-JD4开发板。
1.2 开发环境
建议Ubuntu 16.04或者Ubuntu 18.04,新版的Ubuntu或导致SDK编译不过,出现各种问题。笔者曾在Ubuntu 20.04/22.04尝试过,最终含泪舍弃。
1.3 SDK
到Core-1126-JD4的官网wiki:https://www.t-firefly.com/doc/download/101.html下载最新的SDK。选择“源代码”->“REPO_SDK”。
1.4 基础编译
参考官方wiki可快速实现基础编译:https://wiki.t-firefly.com/zh_CN/CORE-1126-JD4/Source_code.html,这里主要以ROS环境构建为主,不做赘述。
2 ROS集成编译
2.1 SDK的ROS环境简述
Rockchip Linux SDK 集成了 ROS。ROS 提供一系列程序库和工具以帮助软件开发者创建机器人应用软件。Rockchip 所集成的 ROS 版本为 Indigo 和kinetic 两个版本。
只集成了 Indigo 和kinetic 两个版本。但是另外还可集成编译ROS2,具体参照docs/Linux/ApplicationNote/Rockchip_Instruction_Linux_ROS2_CN.pdf。
2.2 编译
在buildroot/configs/rockchip下面有ros_indigo.config 和 ros_kinetic.config 两个默认配置。
在编译rootfs前,先将ros_xxx.config加入到rootfs对应的config中。RV1126用的是firefly_rv1126_rv1109_defconfig。
vim buildroot/configs/firefly_rv1126_rv1109_defconfig
加入#include "ros_indigo.config"
然后运行 ./build.sh 。
首次编译过程中会自动下载python、boost、eigen等依赖包,需要网路良好,中途下载失败了再次执行 ./build.sh直到编译成功。编译完成后会生成 rootfs 的固件,在rockdev/pack/下也会生成完整烧录镜像。
2.3 编译时遇到问题
问题1:WARNING: 'makeinfo' is missing on your system.
解决方案:sudo apt-get install texinfo
问题2:host-python-empy 3.3.3报错 www.alcyone.com访问不上
解决方案:
修改buildroot/package/rockchip/ros/python-ros/python-empy/python-empy.mk
3 测试ROS环境
3.1 烧录
将2.2编译生成的完整烧录镜像烧录到开发板中。参照官网wiki的RV1126固件升级https://wiki.t-firefly.com/zh_CN/CORE-1126-JD4/upgrade.html#windows
3.2 测试ROS
3.2.1 配置环境变量
source /opt/ros/indigo/setup.sh
3.3.2 运行 roscore
roscore &
3.2.3 运行代码
以上述beginner_tutorials为例 :
rosrun beginner_tutorials talker
运行结果:
[ INFO] [1501923947.458788791]: hello world 0
[ INFO] [1501923947.558904332]: hello world 1
[ INFO] [1501923947.658774958]: hello world 2
[ INFO] [1501923947.758644458]: hello world 3
[ INFO] [1501923947.858779666]: hello world 4
[ INFO] [1501923947.958779291]: hello world 5