What is the correct way of installing ROS2-Foxy on a Raspberry Pi Zero?
We are looking to deploy ros2-foxy on some Raspberry Pi Zeros, which have the latest version of Raspberry Pi OS Lite installed, and from what I can tell on REP 2000 we should be supported at the Tier 3 level, however, when following the ROS2-foxy install guide I get stuck on the building stage, with an error for the mimick-vendor
package.
pi@rsu-01:~/ros2_foxy $ colcon build --packages-select mimick_vendor
Starting >>> mimick_vendor
[Processing: mimick_vendor]
--- stderr: mimick_vendor
Cloning into 'mimick-4c742d61d4f47a58492c1afbd825fad1c9e05a09'...
HEAD is now at 4c742d6 Initial support for Apple M1 (#17)
CMake Error at CMakeLists.txt:88 (message):
Architecture 'armv6l' is not supported.
make[2]: *** [CMakeFiles/mimick-4c742d61d4f47a58492c1afbd825fad1c9e05a09.dir/build.make:108: mimick-4c742d61d4f47a58492c1afbd825fad1c9e05a09-prefix/src/mimick-4c742d61d4f47a58492c1afbd825fad1c9e05a09-stamp/mimick-4c742d61d4f47a58492c1afbd825fad1c9e05a09-configure] Error 1
make[1]: *** [CMakeFiles/Makefile2:132: CMakeFiles/mimick-4c742d61d4f47a58492c1afbd825fad1c9e05a09.dir/all] Error 2
make: *** [Makefile:141: all] Error 2
---
Failed <<< mimick_vendor [49.5s, exited with code 2]
Summary: 0 packages finished [1min 21s]
1 package failed: mimick_vendor
1 package had stderr output: mimick_vendor
I tried the fix in this blog post, but I didn't even have a build/mimick_vendor/mimick-ext-prefix/
directory. I do have, as can be seen in that above output, a build//mimick_vendor/mimick-4c742d61d4f47a58492c1afbd825fad1c9e05a09-prefix
directory, so I tried the instructions with that, but no dice. For grins, I went through the entire mimick_vendor
directory and ran the command in that blog post for every single CMakeLists.txt
file, but that didn't help either.
It's worth pointing out that before compiling from source I ran across this post and tried the cross-compilation instructions provided in the most recent response, but despite the fact that I attempted it twice, I got a weird, only partialing-working install both times, with an output that looked like this when I ran the ros2
command after sourcing local_setup.bash
:
pi@rsu-01:~/ros2-cross $ ros2
Failed to load entry point 'test': No module named 'lark'
usage: ros2 [-h] Call `ros2 <command> -h` for more detailed usage. ...
ros2 is an extensible command-line tool for ROS 2.
optional arguments:
-h, --help show this help message and exit
Commands:
daemon Various daemon related sub-commands
topic Various topic related sub-commands
Call `ros2 <command> -h` for more detailed usage.
Any help would be much appreciated, and I can provide more details if necessary!
EDIT: So, it turns out that cross-compilation tutorial should work, I just somehow entirely missed the fact that when I was running cross-colcon-build --packages-up-to ros2topic
I was only compiling the topic portion of ROS2, which is why I was getting what I thought was "weird, only partialing-working" output both times.
I tried cross-compiling again, but my workstation was missing some dependency, and being on a managed machine I didn't want to deal with it and went back to just trying to compile on the Pi Zero itself. I got past the compilation error I wrote about above by doing what this PR did, but, at the time of updating this post, has not been approved / merged yet. Changing that one line was enough to get it to compile.
Unfortunately, the ...