拜读维拉科技关于机器人相关信息的综合整理,涵盖企业排名、产品类型及资本市场动态:一、中国十大机器人公司(综合类)优必选UBTECH)聚焦人工智能与人形机器人研发,产品覆盖教育、娱乐及服务领域,技术处于行业前沿。硬核上车!RK3576基于Ubuntu部署ROS机器人系统详细攻略(上)机器人中科院旗下企业,工业机器人全品类覆盖,是国产智能工厂解决方案的核心供应商。埃斯顿自动化国产工业机器人龙头,实现控制器、伺服系统、本体一体化自研,加速替代外资品牌。遨博机器人(AUBO)协作机器人领域领先者,主打轻量化设计,适用于3C装配、教育等柔性场景。埃夫特智能国产工业机器人上市第一股,与意大利COMAU深度合作,产品稳定性突出。二、细分领域机器人产品智能陪伴机器人Gowild公子小白:情感社交机器人,主打家庭陪伴功能。CANBOT爱乐优:专注0-12岁儿童心智发育型亲子机器人。仿真人机器人目前市场以服务型机器人为主,如家庭保姆机器人(售价10万-16万区间),但高仿真人形机器人仍处研发阶段。水下机器人工业级产品多用于深海探测、管道巡检,消费级产品尚未普及。硬核上车!RK3576基于Ubuntu部署ROS机器人系统详细攻略(上)资本市场动态机器人概念股龙头双林股份:特斯拉Optimus关节模组核心供应商,订单排至2026年。中大力德:国产减速器龙头,谐波减速器市占率30%。金力永磁:稀土永磁材料供应商,受益于机器人电机需求增长。行业趋势2025年人形机器人赛道融资活跃,但面临商业化落地争议,头部企业加速并购整合。四、其他相关机器人视频资源:可通过专业科技平台或企业官网(如优必选、新松)获取技术演示与应用案例。价格区间:服务型机器人(如保姆机器人)普遍在10万-16万元,男性机器人13万售价属高端定制产品。
本文适用于RK3562、RK3566、RK3568、RK3576、RK3588等64位SoC,适配开发系统。各型号触觉均有配套核心板及开发板,实现了百分百全国产。

2的具体版本

版本说明
K基于Buildroot系统构建, 并持续在更新升级工具链、软件包到较新的版本。 因此最新的SDK在编译ROS2时,可能会遇到一些小的错误,建议将版本固定。ROS2发行版本号如下(下载链接可通过截图转文字获取):
已经编译通过的RK Linux SDK版本:
Docker编译
补丁、Docker 镜像、源码下载
https://console.zbox.filez.com/l/iJBMWZ
tree . ├── docker-focal-8 │ └── rosdep.Dockeile # 制作Docker Image的Dockerfile ├── docker-jammy-310 │ └── rosdep.Dockerfile # 制作Docker Image的Dockerfile ├── focal-ros2-build.tar.gz # 根据Dockerfile制作好的Docker Image ├── jammy-ros2-build.tar.gz # 根据Dockerfile制作好的Docker Image ├── linux-sdk-patches │ └── buildroot # RK Linux SDK不同发布版本有可能会缺少的补丁 │ ├── 0001-package-d-libasio.patch │ └── 0002-configs-rockchip-add-ros2-build-dependencies.patch ├── MD5SUM.txt # 各压缩包的MD5SUM检验码 ├── ros2-build-scripts.tar.gz # 编译脚本及补丁 └── ros2-sources.tar.gz # ROS2及其部分依赖库的源码包
在RK Linux SDK的Buildroot目录中,检查是否存在ros2_dep.config文件
ls buildroot/configs/rockchip/ros2_dep.config buildroot/configs/rockchip/ros2_dep.config # 如该ros2_dep.config中缺少:LTTNG_TOOLS,手动加上(ROS2 iron有依赖) tl -f buildroot/configs/rockchip/ros2_dep.config # Required by ros2-iron tretools; With LTTNG foxy/galactic/humble will build tracetools too. BR2_PACKAGE_LTTNG_TOOLS=y BR2_PACKAGE_LTTNG_LIBUST=y
如不存在该文件,则需要在Buildroot目录中打上如下2个补丁
0001-package-add-libasio.patch 0002-configs-rockchip-add-ros2-build-dependencies.patch
检查lttng-tools(2.12.3)、lttng-libust(2.12.3)、liburcu(0.13.0)是否满足版本要求。
编译ROS2的依赖包
RK Linux SDK 中的Buildroot工程里,ros2_dep.config提供了编译、运行ROS2所需要的依赖包,需要添加并编译到rootfs。
例如,将ros2_dep.config添加到rockchip_rk356x_robot_defconfig中:
git diff --- a/configs/rockchip_rk356x_robot_defconfig +++ b/configs/rockchip_rk356x_robot_defconfig @@ -10,6 +10,7 @@ #include "wifi.config" #include "debug.config" #include "bt.config" +#include "ros2_dep.config" BR2_TARGET_GENERIC_HOSTNAME="rk356x_robot" BR2_TARGET_GENERIC_ISSUE="Welcome to RK356X Buildroot For Robot" BR2_ROOTFS_OVERLAY:="board/rockchip/common/robot/base board/rockchip/common/wifi"
完整编译rootfs后,进入下一步。
准备Linux 编译环境
Ubuntu PC机上安装docker程序:
sudo apt install docker.io sudo usermod -aG docker $USER newgrp docker # 登录到docker用户组
导入Docker Image
首先检查RK Linux SDK 编译出来的Python版本,例如:
./buildroot/output/rockchip_rk3562_robot/host/bin/python --version Python 3.10.5
根据Python版本号,匹配对应的Docker Image 镜像:
选择jammy-ros2-build,导入并进入到Docker Container:
gunzip jammy-ros2-build.tar.gz docker image load -i jammy-ros2-build.tar docker run -it --mount type=bind,source=/home/zsq/29/linux-sdk/buildroot/output/rockchip_rk3562_robot/,target=/buildroot jammy-ros2-build
其中source=需要修改成相应的Linux SDK 编译的output目录的绝对路径
进入Container后, 默认用户是builder,密码默认是: rockchip
拷贝编译脚本及源码包
通过docker container cp命令,拷贝所需文件:
# 首先查找已登录的container ID docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c519d9d668f9 jammy-ros2-build "/bin/bash" 15 minus ago Up 15 minutes pnc_feynman docker container cp ros2-sources.tar.gz c519d9d668f9:/tmp/ docker container cp ros2-sources.tar.gz c519d9d668f9:/tmp/
在Container 中,将其解压:
builder@c519d9d668f9:/opt/ros$ ls /tmp/ ros2-build-scripts.tar.gz ros2-sources.tar.gz builder@c519d9d668f9:/opt/ros$ tar zxf /tmp/ros2-build-scripts.tar.gz -C / builder@c519d9d668f9:/opt/ros$ tar zxf /tmp/ros2-sources.tar.gz -C / builder@c519d9d668f9:/opt/ros$ ls cross-comle foxy galactic humble iron
修改脚本中的Python版本号
检查/opt/ros/cross-compile/cross-compile.mixin及build_ros2.sh, 将其中的Python版本号修改成RK LinuxSDK对应的版本号,例如:310修改成38,其中310表示Python3.10版本,以此类推~3.10修改成3.8。
(可选)使用Docker编译ROS2
如果想要从头开始制作Docker Image,可使用RK提供的
rosdep.Dockerfile:
docker build -t jammy-ros2-build -f rosdep.Dockerfile ./ # "./"不要少拷贝了,表示当前目录
(可选)下载源码
如需要自己下载其它版本的源码,进入docker后,可使用vcs-import:
cd /opt/ros/foxy mkdir src vcs-import -w 10 --retry 10 --skip-existing --recuive src < ros2-release-foxy- 20230620/ros2.repos
编译ROS2
再次确认RK Linux SDK、已经有加上ros2 dep.config,并且rootfs完整编译通过,并且所选Docker Image与RK Linux SDK编译出来的Python是匹配的。
选择所需ROS2版本,并依次执行以下命令:
ls /opt/ros cross-compile foxy galactic humble iron cd /opt/ros/iron ./prepare-source.sh ./build-ros2.sh # 编译成功后,应有类似提示: ... Summary: 317 packages finished [15min 37s] ... build ros quit & cleanup
说明:
编译生成的目标文件位于/buildroot/target/opt/ros目录。
编译中间过程存放在/buildroot/build/ros目录。
如build_ros2.sh未提示错误即成功编译。其中,还有部分包在Buildroot SDK环境中,无法编译、执行的,比如:
rviz,依赖于X11/desktop。如果你需要这个功能,直接使用Ubuntu arm镜像,而不是Buildroot。
turtle,依赖于UI显示。
如果想要取消某个包的编译,在src对应的路径下,创建一个COLCON_IGNORE即可。比如
touchsrc/ros/ros_tutorials/turtlesim/COLCON_IGNORE
TRY_RUN需要手动执行并记录结果
fastrtps TRY_RUN提示:
--- stderr: fastrtps CMake Error: TRY_RUN() invoked in cross-compiling mode, please set the following cache variables appropriately: SM_RUN_RESULT (advanced) SM_RUN_RESULT__TRYRUN_OUTPUT (advanced) For details see /buildroot/build/ros/fastrtps/TryRunResults.cmake
需要按照说明,将应用程序放到板端执行,并按说明填写结果。例如:
root@rk3562-buildroot:/# /tmp/cmTC_4f573-SM_RUN_RESULT
PTHREAD_RWLOCK_PREFER_READER_NP
# 根据上述执行结果,在docker中填入结果:
cat /buildroot/build/ros/fastrtps/TryRunResults.cmake .... set( SM_RUN_RESULT "0" CACHE STRING "PTHREAD_RWLOCK_PREFER_READER_NP" FORCE) set( SM_RUN_RESULT__TRYRUN_OUTPUT "0" CACHE STRING "PTHREAD_RWLOCK_PREFER_READER_NP" FORCE)
rosbag2_cpp TRY_RUN提示:
--- stderr: rosbag2_cpp CMake Error: TRY_RUN() invoked in cross-compiling mode, please set the following cache variables appropriately: HAVE_SANITIZERS_EXITCODE (advanced) HAVE_SANITIZERS_EXITCODE__TRYRUN_OUTPUT (advanced) For details see /buildroot/build/ros/rosbag2_cpp/TryRunResults.cmake
同上, 需要按照说明,将应用程序放到板端执行,并按说明填写结果。例如:
set( HAVE_SANITIZERS_EXITCODE "127" CACHE STRING "error while long shared libraries: liblsan.so.0: not open shared object file: No such file or directory" FORCE) set( HAVE_SANITIZERS_EXITCODE__TRYRUN_OUTPUT "127" CACHE STRING "error while loading shared libraries: liblsan.so.0: cannot open shared object file: No such file or directory" FORCE)
单独编译某个ROS2 package 及应用程序
使用colcon build的参数 --packages-select 可单独编译包,可参考 colcon build --help 。
打包rootfs并运行ROS2
在上述ROS2完整编译结束后,进入到buildroot sdk,重新打包rootfs即可。ROS2安装在/opt/ros目录下。
cd /data/linux-sdk/rk3562 ./build.sh rootfs # 重新打包rootfs.img
烧录rootfs.img后,进入rk3562板端,执行Hello World Demo:
# cd /opt/ros/ # export COLCON_CURRENT_PREFIX=/opt/ros # export ROS_HOME=/userdata/ # source ./local_setup.sh # ros2 pkg list # ros2 pkg executables # ros2 run demo_nodes_cpp listener & # ros2 run demo_nodes_cpp talker [INFO] [1501839280.834017748] [talker]: Publishing: Hello World: 1 [INFO] [1501839280.839280957] [listener]: I heard: [Hello World: 1] [INFO] [1501839281.831636015] [talker]: Publishing: Hello World: 2 [INFO] [1501839281.835092640] [listener]: I heard: [Hello World: 2] [INFO] [1501839282.831618532] [talker]: Publishing: Hello World: 3 [INFO] [1501839282.835336782] [listener]: I heard: [Hello World: 3] # ros2 run demo_nodes_py listener & # ros2 run demo_nodes_py talker
好了,今天触觉智能分享就到这里,关注触觉智能,下集为您带来常见编译报错的解决方法。
全部评论
留言在赶来的路上...
发表评论