基础镜像
- 基础镜像使用Debian12,可在 下载中心 下载到相关镜像文件。
依赖安装
bash
# 基础依赖
sudo apt update && sudo apt install -y \
cmake g++ build-essential curl zip unzip tar \
libyaml-cpp-dev python3-pip libjsoncpp-dev \
libeigen3-dev python3-serial python3-evdev
# Eigen的功能扩展
sudo apt update && sudo apt install -y libsuitesparse-dev \
libopenblas-dev liblapack-dev libfftw3-dev libboost-all-dev \
libmpfr-dev libgmp-dev libhwloc-dev1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
环境搭建
在这里将构建相关的依赖,并完成环境的设置:
unitree_sdk2拉取构建并设置环境Unitree Actuator SDK拉取构建并设置环境YAML-CPP拉取构建并设置环境Eigen拉取构建并设置环境JsonCpp拉取构建并设置环境PyGame安装RoboTamerSdk4Qmini:SDK代码拉取OnnxRuntime安装UnitreeMotorSDK安装RoboTamerSdk4Qmini构建
1. unitree_sdk2
仓库:
https://github.com/unitreerobotics/unitree_sdk2git节点:
7694ddffcadc88436343dc0e0d1abb02da74691b
bash
# 返回lckfb主目录
cd ~
# 拉取仓库
git clone https://github.com/unitreerobotics/unitree_sdk2
# 构建
cd unitree_sdk2 && mkdir build && cd build && \
cmake .. -DCMAKE_INSTALL_PREFIX=/opt/unitree
# 安装
sudo make install
# 设置环境
echo "export CMAKE_PREFIX_PATH=/opt/unitree:$CMAKE_PREFIX_PATH" >> ~/.bashrc
source ~/.bashrc1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
效果如下:
bash
lckfb@TaishanPi-3M:~$ cd ~
lckfb@TaishanPi-3M:~$ ls
Desktop
lckfb@TaishanPi-3M:~$ git clone https://github.com/unitreerobotics/unitree_sdk2
正克隆到 'unitree_sdk2'...
remote: Enumerating objects: 2655, done.
remote: Counting objects: 100% (528/528), done.
remote: Compressing objects: 100% (220/220), done.
remote: Total 2655 (delta 342), reused 310 (delta 307), pack-reused 2127 (from 1)
接收对象中: 100% (2655/2655), 86.01 MiB | 13.94 MiB/s, 完成.
处理 delta 中: 100% (1185/1185), 完成.
lckfb@TaishanPi-3M:~$ ls
Desktop unitree_sdk2
lckfb@TaishanPi-3M:~$ cd unitree_sdk2 && mkdir build && cd build && \
cmake .. -DCMAKE_INSTALL_PREFIX=/opt/unitree
-- The C compiler identification is GNU 12.2.0
-- The CXX compiler identification is GNU 12.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Setting build type to 'Release' as none was specified.
-- Current system architecture: aarch64
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Importing: /home/lckfb/unitree_sdk2/thirdparty/lib/aarch64/libddsc.so
-- Importing: /home/lckfb/unitree_sdk2/thirdparty/lib/aarch64/libddscxx.so
-- Unitree SDK library found at: /home/lckfb/unitree_sdk2/lib/aarch64/libunitree_sdk2.a
-- Importing: /home/lckfb/unitree_sdk2/lib/aarch64/libunitree_sdk2.a
-- Could NOT find Boost (missing: Boost_INCLUDE_DIR program_options)
-- Found yaml-cpp version 0.7.0
-- Configuring done
-- Generating done
-- Build files have been written to: /home/lckfb/unitree_sdk2/build
lckfb@TaishanPi-3M:~/unitree_sdk2/build$ sudo make install
[ 1%] Building CXX object example/helloworld/CMakeFiles/test_publisher.dir/publisher.cpp.o
[ 2%] Building CXX object example/helloworld/CMakeFiles/test_publisher.dir/HelloWorldData.cpp.o
[ 4%] Linking CXX executable ../../bin/test_publisher
....
[ 98%] Building CXX object example/a2/CMakeFiles/a2_audio_client_example.dir/audio/a2_audio_client_example.cpp.o
[100%] Linking CXX executable ../../bin/a2_audio_client_example
[100%] Built target a2_audio_client_example
Install the project...
-- Install configuration: "Release"
-- Installing: /opt/unitree/include
-- Installing: /opt/unitree/include/unitree
.....
-- Installing: /opt/unitree/include/ddscxx/dds/domain/DomainParticipantListener.hpp1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
2. Unitree Actuator SDK
仓库:
https://github.com/unitreerobotics/unitree_actuator_sdk
bash
# 返回lckfb主目录
cd ~
# 拉取仓库
git clone https://github.com/unitreerobotics/unitree_actuator_sdk
# 构建
cd unitree_actuator_sdk
git checkout GO-M8010-6
mkdir build && cd build && cmake ..
make1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
效果如下:
bash
lckfb@TaishanPi-3M:~$ cd ~
lckfb@TaishanPi-3M:~$ git clone https://github.com/unitreerobotics/unitree_actuator_sdk
正克隆到 'unitree_actuator_sdk'...
remote: Enumerating objects: 529, done.
remote: Counting objects: 100% (60/60), done.
remote: Compressing objects: 100% (38/38), done.
remote: Total 529 (delta 34), reused 22 (delta 22), pack-reused 469 (from 1)
接收对象中: 100% (529/529), 9.03 MiB | 5.21 MiB/s, 完成.
处理 delta 中: 100% (100/100), 完成.
lckfb@TaishanPi-3M:~$ ls
Desktop unitree_actuator_sdk unitree_sdk2
lckfb@TaishanPi-3M:~$ cd unitree_actuator_sdk
lckfb@TaishanPi-3M:~/unitree_actuator_sdk$ git checkout GO-M8010-6
分支 'GO-M8010-6' 设置为跟踪 'origin/GO-M8010-6'。
切换到一个新分支 'GO-M8010-6'
lckfb@TaishanPi-3M:~/unitree_actuator_sdk$ mkdir build && cd build && cmake ..
CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required):
Compatibility with CMake < 2.8.12 will be removed from a future version of
CMake.
Update the VERSION argument <min> value or use a ...<max> suffix to tell
CMake that the project does not need compatibility with older versions.
-- The C compiler identification is GNU 12.2.0
-- The CXX compiler identification is GNU 12.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/lckfb/unitree_actuator_sdk/build
lckfb@TaishanPi-3M:~/unitree_actuator_sdk/build$ make
[ 50%] Building CXX object CMakeFiles/motorctrl.dir/example/main.cpp.o
[100%] Linking CXX executable motorctrl
[100%] Built target motorctrl1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
3. YAML-CPP
仓库:
https://github.com/jbeder/yaml-cpp
bash
# 返回lckfb主目录
cd ~
# 拉取仓库
git clone https://github.com/jbeder/yaml-cpp
# 构建
cd yaml-cpp && mkdir build && cd build
cmake .. && make && sudo make install1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
效果如下:
bash
lckfb@TaishanPi-3M:~$ cd ~
lckfb@TaishanPi-3M:~$ git clone https://github.com/jbeder/yaml-cpp
正克隆到 'yaml-cpp'...
remote: Enumerating objects: 9398, done.
remote: Counting objects: 100% (72/72), done.
remote: Compressing objects: 100% (58/58), done.
remote: Total 9398 (delta 44), reused 14 (delta 14), pack-reused 9326 (from 3)
接收对象中: 100% (9398/9398), 4.87 MiB | 11.08 MiB/s, 完成.
处理 delta 中: 100% (6182/6182), 完成.
lckfb@TaishanPi-3M:~$ cd yaml-cpp && mkdir build && cd build
lckfb@TaishanPi-3M:~/yaml-cpp/build$ cmake .. && make && sudo make install
-- The CXX compiler identification is GNU 12.2.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/lckfb/yaml-cpp/build
[ 2%] Building CXX object CMakeFiles/yaml-cpp.dir/src/contrib/graphbuilder.cpp.o
[ 5%] Building CXX object CMakeFiles/yaml-cpp.dir/src/contrib/graphbuilderadapter.cpp.o
[ 7%] Building CXX object CMakeFiles/yaml-cpp.dir/src/binary.cpp.o
[ 10%] Building CXX object CMakeFiles/yaml-cpp.dir/src/convert.cpp.o
[ 12%] Building CXX object CMakeFiles/yaml-cpp.dir/src/depthguard.cpp.o
.....
[ 84%] Built target yaml-cpp
[ 89%] Built target yaml-cpp-sandbox
[ 94%] Built target yaml-cpp-parse
[100%] Built target yaml-cpp-read
Install the project...
-- Install configuration: ""
-- Installing: /usr/local/lib/libyaml-cpp.a
-- Up-to-date: /usr/local/include
-- Installing: /usr/local/include/yaml-cpp
-- Installing: /usr/local/include/yaml-cpp/binary.h
.......
-- Installing: /usr/local/lib/cmake/yaml-cpp/yaml-cpp-config-version.cmake
-- Installing: /usr/local/lib/pkgconfig/yaml-cpp.pc1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
4. Eigen
仓库:
https://gitlab.com/libeigen/eigen
bash
# 返回lckfb主目录
cd ~
# 拉取仓库
git clone https://gitlab.com/libeigen/eigen
# 构建
cd eigen && mkdir build && cd build
cmake .. && make && sudo make install1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
效果如下:
bash
lckfb@TaishanPi-3M:~$ cd ~
lckfb@TaishanPi-3M:~$ git clone https://gitlab.com/libeigen/eigen
正克隆到 'eigen'...
警告:重定向到 https://gitlab.com/libeigen/eigen.git/
remote: Enumerating objects: 132150, done.
remote: Counting objects: 100% (2787/2787), done.
remote: Compressing objects: 100% (853/853), done.
remote: Total 132150 (delta 2031), reused 2540 (delta 1925), pack-reused 129363 (from 1)
接收对象中: 100% (132150/132150), 108.91 MiB | 12.99 MiB/s, 完成.
处理 delta 中: 100% (109280/109280), 完成.
lckfb@TaishanPi-3M:~$ cd eigen && mkdir build && cd build
lckfb@TaishanPi-3M:~/eigen/build$ cmake .. && make && sudo make install
-- The C compiler identification is GNU 12.2.0
-- The CXX compiler identification is GNU 12.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test standard_math_library_linked_to_automatically
-- Performing Test standard_math_library_linked_to_automatically - Success
-- Standard libraries to link to explicitly: none
-- Performing Test COMPILER_SUPPORT_WERROR
-- Performing Test COMPILER_SUPPORT_WERROR - Success
......
-- Performing Test COMPILER_SUPPORT_fstrictaliasing
-- Performing Test COMPILER_SUPPORT_fstrictaliasing - Success
-- Performing Test COMPILER_SUPPORT_wd981
-- Performing Test COMPILER_SUPPORT_wd981 - Failed
-- Performing Test COMPILER_SUPPORT_wd2304
-- Performing Test COMPILER_SUPPORT_wd2304 - Failed
-- Performing Test COMPILER_SUPPORT_fnochecknew
-- Performing Test COMPILER_SUPPORT_fnochecknew - Success
-- Performing Test COMPILER_SUPPORT_Wnoarraybounds
-- Performing Test COMPILER_SUPPORT_Wnoarraybounds - Success
-- Performing Test COMPILER_SUPPORT_Wnomaybeuninitialized
-- Performing Test COMPILER_SUPPORT_Wnomaybeuninitialized - Success
-- Performing Test COMPILER_SUPPORT_Wnostringopoverread
-- Performing Test COMPILER_SUPPORT_Wnostringopoverread - Success
......
-- Available targets (use: make TARGET):
-- ------------+--------------------------------------------------------------
-- Target | Description
-- ------------+--------------------------------------------------------------
-- install | Install Eigen. Headers will be installed to:
-- | <CMAKE_INSTALL_PREFIX>/<INCLUDE_INSTALL_DIR>
-- | Using the following values:
-- | CMAKE_INSTALL_PREFIX: /usr/local
-- | INCLUDE_INSTALL_DIR: include/eigen3
-- | Change the install location of Eigen headers using:
-- | cmake . -DCMAKE_INSTALL_PREFIX=yourprefix
-- | Or:
-- | cmake . -DINCLUDE_INSTALL_DIR=yourdir
-- uninstall | Remove files installed by the install target
-- doc | Generate the API documentation, requires Doxygen & LaTeX
-- install-doc | Install the API documentation
-- check | Build and run the unit-tests. Read this page:
-- | http://eigen.tuxfamily.org/index.php?title=Tests
-- blas | Build BLAS library (not the same thing as Eigen)
-- lapack | Build LAPACK subset library (not the same thing as Eigen)
-- ------------+--------------------------------------------------------------
--
--
-- Configured Eigen 5.0.1
--
-- Configuring done
-- Generating done
-- Build files have been written to: /home/lckfb/eigen/build
[ 0%] Building CXX object blas/CMakeFiles/eigen_blas_static.dir/single.cpp.o
.........
[ 50%] Built target eigen_lapack_static
[100%] Built target eigen_lapack
Install the project...
-- Install configuration: "Release"
-- Installing: /usr/local/include/eigen3/signature_of_eigen3_matrix_library
-- Installing: /usr/local/share/pkgconfig/eigen3.pc
........
-- Set runtime path of "/usr/local/lib/libeigen_lapack.so.5.0.1" to ""
-- Installing: /usr/local/lib/libeigen_lapack.so1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
5. JsonCpp
仓库:
https://github.com/Microsoft/vcpkg
bash
# 返回lckfb主目录
cd ~
# 拉取仓库
git clone https://github.com/Microsoft/vcpkg
# 构建
cd vcpkg && ./bootstrap-vcpkg.sh
./vcpkg integrate install
./vcpkg install jsoncpp1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
效果如下:
bash
lckfb@TaishanPi-3M:~$ cd ~
lckfb@TaishanPi-3M:~$ git clone https://github.com/Microsoft/vcpkg
正克隆到 'vcpkg'...
remote: Enumerating objects: 309463, done.
remote: Counting objects: 100% (333/333), done.
remote: Compressing objects: 100% (120/120), done.
remote: Total 309463 (delta 281), reused 213 (delta 213), pack-reused 309130 (from 4)
接收对象中: 100% (309463/309463), 97.57 MiB | 13.77 MiB/s, 完成.
处理 delta 中: 100% (208012/208012), 完成.
正在更新文件: 100% (13556/13556), 完成.
lckfb@TaishanPi-3M:~$ cd vcpkg && ./bootstrap-vcpkg.sh
Downloading vcpkg-arm64-glibc...
vcpkg package management program version 2026-02-21-82f3841f4f91e8389b7c7ddf61e6733683b2f67b
See LICENSE.txt for license information.
Telemetry
---------
vcpkg collects usage data in order to help us improve your experience.
The data collected by Microsoft is anonymous.
You can opt-out of telemetry by re-running the bootstrap-vcpkg script with -disableMetrics,
passing --disable-metrics to vcpkg on the command line,
or by setting the VCPKG_DISABLE_METRICS environment variable.
Read more about vcpkg telemetry at docs/about/privacy.md
lckfb@TaishanPi-3M:~/vcpkg$ ./vcpkg integrate install
Applied user-wide integration for this vcpkg root.
CMake projects should use: "-DCMAKE_TOOLCHAIN_FILE=/home/lckfb/vcpkg/scripts/buildsystems/vcpkg.cmake"
lckfb@TaishanPi-3M:~/vcpkg$ ./vcpkg install jsoncpp
Computing installation plan...
A suitable version of cmake was not found (required v3.31.10).
Downloading https://github.com/Kitware/CMake/releases/download/v3.31.10/cmake-3.31.10-linux-aarch64.tar.gz -> cmake-3.31.10-linux-aarch64.tar.gz
Successfully downloaded cmake-3.31.10-linux-aarch64.tar.gz
Extracting cmake...
The following packages will be built and installed:
jsoncpp:arm64-linux@1.9.6
* vcpkg-cmake:arm64-linux@2024-04-23
* vcpkg-cmake-config:arm64-linux@2024-05-23
Additional packages (*) will be modified to complete this operation.
Detecting compiler hash for triplet arm64-linux...
Compiler found: /usr/bin/c++
Restored 0 package(s) from /home/lckfb/.cache/vcpkg/archives in 27.6 us. Use --debug to see more details.
Installing 1/3 vcpkg-cmake:arm64-linux@2024-04-23...
vcpkg-cmake:arm64-linux@2024-04-23 package ABI: a35c0bef7656c8b14308f049bde016e8acf789defec4ca3f8ab9915040b48b7a
Building vcpkg-cmake:arm64-linux@2024-04-23...
/home/lckfb/vcpkg/triplets/community/arm64-linux.cmake: info: loaded community triplet from here. Community triplets are not built in the curated registry and are thus less likely to succeed.
-- Installing: /home/lckfb/vcpkg/packages/vcpkg-cmake_arm64-linux/share/vcpkg-cmake/vcpkg_cmake_configure.cmake
-- Installing: /home/lckfb/vcpkg/packages/vcpkg-cmake_arm64-linux/share/vcpkg-cmake/vcpkg_cmake_build.cmake
-- Installing: /home/lckfb/vcpkg/packages/vcpkg-cmake_arm64-linux/share/vcpkg-cmake/vcpkg_cmake_install.cmake
-- Installing: /home/lckfb/vcpkg/packages/vcpkg-cmake_arm64-linux/share/vcpkg-cmake/vcpkg-port-config.cmake
-- Installing: /home/lckfb/vcpkg/packages/vcpkg-cmake_arm64-linux/share/vcpkg-cmake/copyright
-- Performing post-build validation
Starting submission of vcpkg-cmake:arm64-linux@2024-04-23 to 1 binary cache(s) in the background
Elapsed time to handle vcpkg-cmake:arm64-linux: 62.1 ms
Installing 2/3 vcpkg-cmake-config:arm64-linux@2024-05-23...
vcpkg-cmake-config:arm64-linux@2024-05-23 package ABI: 5d3b1b9a6bc000f90a4e35a300f229362f97f5df248385eebe5ca235a31ecffa
Building vcpkg-cmake-config:arm64-linux@2024-05-23...
/home/lckfb/vcpkg/triplets/community/arm64-linux.cmake: info: loaded community triplet from here. Community triplets are not built in the curated registry and are thus less likely to succeed.
-- Installing: /home/lckfb/vcpkg/packages/vcpkg-cmake-config_arm64-linux/share/vcpkg-cmake-config/vcpkg_cmake_config_fixup.cmake
-- Installing: /home/lckfb/vcpkg/packages/vcpkg-cmake-config_arm64-linux/share/vcpkg-cmake-config/vcpkg-port-config.cmake
-- Installing: /home/lckfb/vcpkg/packages/vcpkg-cmake-config_arm64-linux/share/vcpkg-cmake-config/copyright
-- Skipping post-build validation due to VCPKG_POLICY_EMPTY_PACKAGE
Starting submission of vcpkg-cmake-config:arm64-linux@2024-05-23 to 1 binary cache(s) in the background
Elapsed time to handle vcpkg-cmake-config:arm64-linux: 66.2 ms
Completed submission of vcpkg-cmake:arm64-linux@2024-04-23 to 1 binary cache(s) in 10.7 ms
Installing 3/3 jsoncpp:arm64-linux@1.9.6...
jsoncpp:arm64-linux@1.9.6 package ABI: 235a543ca6f7fd3d8bf3b0f53c47b95ec3a41abb50545ae102d2a1b1893f10b8
Building jsoncpp:arm64-linux@1.9.6...
/home/lckfb/vcpkg/triplets/community/arm64-linux.cmake: info: loaded community triplet from here. Community triplets are not built in the curated registry and are thus less likely to succeed.
Downloading https://github.com/open-source-parsers/jsoncpp/archive/1.9.6.tar.gz -> open-source-parsers-jsoncpp-1.9.6.tar.gz
Successfully downloaded open-source-parsers-jsoncpp-1.9.6.tar.gz
-- Extracting source /home/lckfb/vcpkg/downloads/open-source-parsers-jsoncpp-1.9.6.tar.gz
-- Using source at /home/lckfb/vcpkg/buildtrees/jsoncpp/src/1.9.6-29ceffc35f.clean
-- Configuring arm64-linux
-- Building arm64-linux-dbg
-- Building arm64-linux-rel
-- Fixing pkgconfig file: /home/lckfb/vcpkg/packages/jsoncpp_arm64-linux/lib/pkgconfig/jsoncpp.pc
-- Fixing pkgconfig file: /home/lckfb/vcpkg/packages/jsoncpp_arm64-linux/debug/lib/pkgconfig/jsoncpp.pc
-- Installing: /home/lckfb/vcpkg/packages/jsoncpp_arm64-linux/share/jsoncpp/copyright
-- Performing post-build validation
Starting submission of jsoncpp:arm64-linux@1.9.6 to 1 binary cache(s) in the background
Elapsed time to handle jsoncpp:arm64-linux: 19 s
Total install time: 19 s
Installed contents are licensed to you by owners. Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
Packages installed in this vcpkg installation declare the following licenses:
MIT
jsoncpp provides CMake targets:
# this is heuristically generated, and may not be correct
find_package(jsoncpp CONFIG REQUIRED)
target_link_libraries(main PRIVATE JsonCpp::JsonCpp)
jsoncpp provides pkg-config modules:
# A C++ library for interacting with JSON
jsoncpp
Completed submission of vcpkg-cmake-config:arm64-linux@2024-05-23 to 1 binary cache(s) in 10.3 ms
Waiting for 1 remaining binary cache submissions...
Completed submission of jsoncpp:arm64-linux@1.9.6 to 1 binary cache(s) in 299 ms (1/1)
All requested installations completed successfully in: 19 s
lckfb@TaishanPi-3M:~/vcpkg$1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
6. PyGame
安装相关的依赖:
bash
sudo apt install -y python3-pygame1
效果如下:
bash
lckfb@TaishanPi-3M:~$ sudo apt install -y python3-pygame
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成
将会同时安装下列软件:
fonts-freefont-ttf libopusfile0 libportmidi0 libsdl2-image-2.0-0 libsdl2-mixer-2.0-0 libsdl2-ttf-2.0-0 python3-numpy
建议安装:
gfortran python3-pytest python-pygame-doc timidity
下列【新】软件包将被安装:
fonts-freefont-ttf libopusfile0 libportmidi0 libsdl2-image-2.0-0 libsdl2-mixer-2.0-0 libsdl2-ttf-2.0-0 python3-numpy python3-pygame
升级了 0 个软件包,新安装了 8 个软件包,要卸载 0 个软件包,有 29 个软件包未被升级。
需要下载 8,432 kB 的归档。
解压缩后会消耗 39.2 MB 的额外空间。
获取:1 http://mirrors.ustc.edu.cn/debian bookworm/main arm64 fonts-freefont-ttf all 20120503-10 [2,552 kB]
获取:2 http://mirrors.ustc.edu.cn/debian bookworm/main arm64 libopusfile0 arm64 0.12-4 [39.4 kB]
获取:3 http://mirrors.ustc.edu.cn/debian bookworm/main arm64 libportmidi0 arm64 1:217-6.1 [22.2 kB]
获取:4 http://mirrors.ustc.edu.cn/debian bookworm/main arm64 libsdl2-image-2.0-0 arm64 2.6.3+dfsg-1 [58.9 kB]
获取:5 http://mirrors.ustc.edu.cn/debian bookworm/main arm64 libsdl2-mixer-2.0-0 arm64 2.6.2+dfsg-2 [76.2 kB]
获取:6 http://mirrors.ustc.edu.cn/debian bookworm/main arm64 libsdl2-ttf-2.0-0 arm64 2.20.1+dfsg-2 [28.9 kB]
获取:7 http://mirrors.ustc.edu.cn/debian bookworm/main arm64 python3-numpy arm64 1:1.24.2-1+deb12u1 [4,701 kB]
获取:8 http://mirrors.ustc.edu.cn/debian bookworm/main arm64 python3-pygame arm64 2.1.2+dfsg-5+b1 [954 kB]
已下载 8,432 kB,耗时 11秒 (741 kB/s)
正在选中未选择的软件包 fonts-freefont-ttf。
(正在读取数据库 ... 系统当前共安装有 97620 个文件和目录。)
准备解压 .../0-fonts-freefont-ttf_20120503-10_all.deb ...
正在解压 fonts-freefont-ttf (20120503-10) ...
.....
正在处理用于 fontconfig (2.14.1-4) 的触发器 ...1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
7. RoboTamerSdk4Qmini
主代码使用 RoboTamerSdk4Qmini 此仓库代码进行快速部署。后续有问题需要在此基础上进行微调即可。
7.1. SDK代码拉取
bash
# 返回lckfb主目录
cd ~
# 拉取代码
git clone https://github.com/vsislab/RoboTamerSdk4Qmini.git1
2
3
4
5
2
3
4
5
7.2. OnnxRuntime安装
bash
# 进入目标目录
cd ~/RoboTamerSdk4Qmini/lib/onnx
# 复制文件到目标目录
sudo cp -r libonnxruntime.so libonnxruntime.so.1.* /usr/local/lib
# 更新缓存
sudo ldconfig1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
7.3. UnitreeMotorSDK安装
bash
# 进入目标目录
cd ~/RoboTamerSdk4Qmini/lib/m8010motor
# 复制文件到目标目录
sudo cp libUnitreeMotorSDK_Arm64.so /usr/local/lib/
# 更新缓存
sudo ldconfig1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
7.4. RoboTamerSdk4Qmini构建
bash
# 创建目录并进入
mkdir -p ~/RoboTamerSdk4Qmini/build && cd ~/RoboTamerSdk4Qmini/build
# 构建项目
cmake -DPLATFORM=arm64 .. && make -j41
2
3
4
5
2
3
4
5
效果如下:
bash
lckfb@TaishanPi-3M:~$ cd ~/RoboTamerSdk4Qmini
lckfb@TaishanPi-3M:~/RoboTamerSdk4Qmini$ mkdir -p build && cd build
lckfb@TaishanPi-3M:~/RoboTamerSdk4Qmini/build$ cmake -DPLATFORM=arm64 .. && make && cd ../bin
-- The C compiler identification is GNU 12.2.0
-- The CXX compiler identification is GNU 12.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Setting build type to 'Debug' as none was specified.
-- Current system architecture: aarch64
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Importing: /home/lckfb/RoboTamerSdk4Qmini/thirdparty/lib/aarch64/libddsc.so
-- Importing: /home/lckfb/RoboTamerSdk4Qmini/thirdparty/lib/aarch64/libddscxx.so
-- Unitree SDK library found at: /home/lckfb/RoboTamerSdk4Qmini/lib/aarch64/libunitree_sdk2.a
-- Importing: /home/lckfb/RoboTamerSdk4Qmini/lib/aarch64/libunitree_sdk2.a
-- Found Python3: /usr/bin/python3 (found version "3.11.2") found components: Interpreter Development Development.Module Development.Embed
-- Configuring done
CMake Warning (dev) at CMakeLists.txt:101 (target_link_libraries):
The library that is being linked to, yaml-cpp, is marked as being
deprecated by the owner. The message provided by the developer is:
The target yaml-cpp is deprecated and will be removed in version 0.10.0.
Use the yaml-cpp::yaml-cpp target instead.
This warning is for project developers. Use -Wno-dev to suppress it.
CMake Warning (dev) at CMakeLists.txt:101 (target_link_libraries):
The library that is being linked to, yaml-cpp, is marked as being
deprecated by the owner. The message provided by the developer is:
The target yaml-cpp is deprecated and will be removed in version 0.10.0.
Use the yaml-cpp::yaml-cpp target instead.
This warning is for project developers. Use -Wno-dev to suppress it.
CMake Warning (dev) at CMakeLists.txt:101 (target_link_libraries):
The library that is being linked to, yaml-cpp, is marked as being
deprecated by the owner. The message provided by the developer is:
The target yaml-cpp is deprecated and will be removed in version 0.10.0.
Use the yaml-cpp::yaml-cpp target instead.
This warning is for project developers. Use -Wno-dev to suppress it.
CMake Warning (dev) at CMakeLists.txt:101 (target_link_libraries):
The library that is being linked to, yaml-cpp, is marked as being
deprecated by the owner. The message provided by the developer is:
The target yaml-cpp is deprecated and will be removed in version 0.10.0.
Use the yaml-cpp::yaml-cpp target instead.
This warning is for project developers. Use -Wno-dev to suppress it.
-- Generating done
CMake Warning:
Manually-specified variables were not used by the project:
PLATFORM
-- Build files have been written to: /home/lckfb/RoboTamerSdk4Qmini/build
[100%] Linking CXX executable /home/lckfb/RoboTamerSdk4Qmini/bin/run_interface
[100%] Built target run_interface
lckfb@TaishanPi-3M:~/RoboTamerSdk4Qmini/bin$ ls -l
总计 56840
-rw-r--r-- 1 lckfb lckfb 1018 2月27日 16:00 config.yaml
-rw-r--r-- 1 lckfb lckfb 4537107 2月27日 16:00 general.txt
-rw-r--r-- 1 lckfb lckfb 167 2月27日 16:00 imu_interface.py
-rw-r--r-- 1 lckfb lckfb 8540 2月27日 16:00 imu_receiver.py
-rw-r--r-- 1 lckfb lckfb 4765 2月27日 16:00 joystick.py
-rw-r--r-- 1 lckfb lckfb 805015 2月27日 16:00 policy.onnx
-rw-r--r-- 1 lckfb lckfb 12120278 2月27日 16:00 rl.txt
-rwxr-xr-x 1 lckfb lckfb 18013480 2月27日 16:07 run_interface
-rw-r--r-- 1 lckfb lckfb 22737432 2月27日 16:00 test_interface1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
RoboTamerSdk4Qmini 构建完成之后,会在~/RoboTamerSdk4Qmini/bin/ 目录中生成一个 run_interface 可运行文件,之后我们就需要这个东西。