Guide to Cross Compiling on a Raspberry Pi

Overview

Guide to Cross Compilation for a Raspberry Pi

  1. > Start
  2. Setup XCS and RPi
  3. Setup RPi Network and SSH
  4. Setup RPi Peripherals
  5. Setup Cross-compile environment
  6. Cross-compile and Install Userland
  7. Cross-compile and Install OpenCV
  8. Cross-compile and Install ROS
  9. Compile and Install OpenCV
  10. Compile and Install ROS
  11. Remote ROS (RPi node and XCS master)
  12. ROS package development (RPi/XCS)
  13. Compile and Install WiringPi

1. Start

Welcome at this Cross Compilation Guide for a Raspberry Pi.

This repository started as a personal guide to keep track of how to setup a proper cross-compilation system, but grew to a public guide, where it hopefully can help many others too. It also contains toolchains and scripts to ease the cross-compilation process as well as examples and tests to verify the setup.

The system is build within a VirtualBox running an Ubuntu OS. This VirtualBox holds all tools for the cross-compilation. A VirtualBox is chosen to ensure that we cannot mess up the main machine with faulty (library) installations or accidentally changing system-critical symbolic links (which happened to me on earlier journeys).

During this guide the following systems will be configured, (cross)compiled and installed:

Additionally we setup:

  • headless VirtualBox, locally accessible via SSH.
  • headless Pi (you do not need an additional monitor or keyboard for the pi!).
  • DNS and folder sharing of the VirtualBox with the Host.
  • Wifi and SSH access on the Raspberry Pi.
  • SSH over USB to connect to the Pi when there is no WiFi.
  • Peripherals such as: i2c, RTC, IO expanders and the Pi Camera.
  • Different ROS configurations.
  • and more!

To use this guide, experience with VirtualBox, C, Python and the terminal/nano are assumed. You also need a Raspberry Pi and SDCard-reader (as we'll initially configure the Pi via the SDCard, connected to the VirtualBox).

How to Read?

The notes are in chronological order and can be followed with the table of contents on the top of the page. As both the VirtualBox and Raspberry Pi will be configured to run headless (that is, without a display) instructions are command-line styled. These instructions are prefixed with identifiers, as we use 3 different systems (Host, XCS and RPI):

  • HOST~$ commands executed on the Host. (This guide is developed on an OSX system, but probably works on Linux or Windows with MinGW or PuTTy too).
  • XCS~$ commands executed on the Cross-Compilation Server / VirtualBox. (Also called XCS)
  • RPI~$ commands executed on the Raspberry Pi. (Shortened as RPi)

In the github-repo three important folders can be found:

  • "hello" - containing examples and test files:
    • pi: to test the cross-compile setup.

      Hello World!

    • raspicam: to test the cross-compiled Userland setup.

      Snapping a picture with the PiCamera with a self-compiled version of "raspivid"

    • ocv: to test the cross-compiled OpenCV infrastructure.

      Displaying a picture via the OpenCV calls imread and imshow.

    • ros: to test the cross-compiled ROS setup.

      Running roscore and roscomm on the Pi, printing "Hello World"

    • WiringPi: to test the cross-compiled WiringPi setup.

      Blinking a Led.

  • "scripts" - containing several synchronisation tools
  • "ros" - more complex tests for more complex ROS setups.

In the main directory you can also find the toolchain which will be used throughout this guide.

If you encounter problems or see mistakes, feel free to create an issue or pull request.

Enjoy! Hessel.

PS. This guide is also available at https://hesselm.github.io/rpicross_notes/.

PPS. Special thanks to: RaymondKirk, ConnorChristie, Skammi, compyl118 for suggestions, fixes, testing and helping out.

Comments
  • Troubles with Links2 and Userland

    Troubles with Links2 and Userland

    Hello, I have had time to contiue on reading your notes. I am stuck at step 3 of the userland lib crosscompilation. For some reason it is not able to finish building the "all" target. Here is the output of the make command: output.txt

    Before that everything went well, I managed to complete all the previous steps without any trouble except:

    • I did not do the RTC part (althought I activated I2C) because I do not have the hardware
    • I had some struggle installing links2 (some network issues it seemed, but after an "apt-get update" I tried again and it worked).
    • I get an error when I try to use links2 "could not initialize any graphics driver. Tried the following drivers: x: Can't open display "(null)" fb: could not get VT mode." I am a little bit confused about how this is supposed to work as neither my VM nor the Rpi has a graphical environment. Am I supposed to SSH on the VM from a HOST with graphical environment for links2 to work?

    Hope you can help me out on this one. Thanks

    opened by compyl118 10
  • gcc -broken

    gcc -broken

    I copied the issue here for visibility, sorry if it is seen as pollution, for original post clic #11 at the bottom

    Hello, I have the same issue but I do not understand how you solved yours. Could you give details please?

    Originally posted by @compyl118 in https://github.com/HesselM/rpicross_notes/issues/11#issuecomment-485265255

    opened by compyl118 10
  • Make fails with error, /home/pi/rpi/rootfs/lib/arm-linux-gnueabihf/libresolv.so.2: undefined reference to '__h_errno@GLIBC_PRIVATE'

    Make fails with error, /home/pi/rpi/rootfs/lib/arm-linux-gnueabihf/libresolv.so.2: undefined reference to '[email protected]_PRIVATE'

    First of all I thank you for the detailed write up.

    We have followed the steps you mentioned, through 01-setup.md till 06-xc-opencv.md.

    The output for cmake is

    General configuration for OpenCV 3.2.0 ===================================== -- Version control: unknown

    -- Extra modules: -- Location (extra): /home/pi/rpi/src/opencv_contrib-3.2.0/modules -- Version control (extra): unknown

    -- Platform: -- Timestamp: 2018-04-26T11:58:06Z -- Host: Linux 4.4.0-121-generic x86_64 -- Target: Linux 1 arm -- CMake: 3.5.1 -- CMake generator: Unix Makefiles -- CMake build tool: /usr/bin/make -- Configuration: Release

    -- C/C++: -- Built as dynamic libs?: YES -- C++ Compiler: /usr/bin/rpizero-g++ (ver 4.9.3) -- C++ flags (Release): -isystem /home/pi/rpi/rootfs/usr/include/arm-linux-gnueabihf -isystem /home/pi/rpi/rootfs/usr/include -isystem /home/pi/rpi/rootfs/usr/local/include -isystem /home/pi/rpi/rootfs/usr/include/arm-linux-gnueabihf -isystem /home/pi/rpi/rootfs/usr/include -isystem /home/pi/rpi/rootfs/usr/local/include -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wno-narrowing -Wno-delete-non-virtual-dtor -Wno-comment -fdiagnostics-show-option -pthread -fomit-frame-pointer -mfp16-format=ieee -ffunction-sections -fvisibility=hidden -fvisibility-inlines-hidden -O3 -DNDEBUG -DNDEBUG -- C++ flags (Debug): -isystem /home/pi/rpi/rootfs/usr/include/arm-linux-gnueabihf -isystem /home/pi/rpi/rootfs/usr/include -isystem /home/pi/rpi/rootfs/usr/local/include -isystem /home/pi/rpi/rootfs/usr/include/arm-linux-gnueabihf -isystem /home/pi/rpi/rootfs/usr/include -isystem /home/pi/rpi/rootfs/usr/local/include -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wno-narrowing -Wno-delete-non-virtual-dtor -Wno-comment -fdiagnostics-show-option -pthread -fomit-frame-pointer -mfp16-format=ieee -ffunction-sections -fvisibility=hidden -fvisibility-inlines-hidden -g -O0 -DDEBUG -D_DEBUG -- C Compiler: /usr/bin/rpizero-gcc -- C flags (Release): -isystem /home/pi/rpi/rootfs/usr/include/arm-linux-gnueabihf -isystem /home/pi/rpi/rootfs/usr/include -isystem /home/pi/rpi/rootfs/usr/local/include -isystem /home/pi/rpi/rootfs/usr/include/arm-linux-gnueabihf -isystem /home/pi/rpi/rootfs/usr/include -isystem /home/pi/rpi/rootfs/usr/local/include -isystem /home/pi/rpi/rootfs/usr/include/arm-linux-gnueabihf -isystem /home/pi/rpi/rootfs/usr/include -isystem /home/pi/rpi/rootfs/usr/local/include -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wno-narrowing -Wno-comment -fdiagnostics-show-option -pthread -fomit-frame-pointer -mfp16-format=ieee -ffunction-sections -fvisibility=hidden -O3 -DNDEBUG -DNDEBUG -- C flags (Debug): -isystem /home/pi/rpi/rootfs/usr/include/arm-linux-gnueabihf -isystem /home/pi/rpi/rootfs/usr/include -isystem /home/pi/rpi/rootfs/usr/local/include -isystem /home/pi/rpi/rootfs/usr/include/arm-linux-gnueabihf -isystem /home/pi/rpi/rootfs/usr/include -isystem /home/pi/rpi/rootfs/usr/local/include -isystem /home/pi/rpi/rootfs/usr/include/arm-linux-gnueabihf -isystem /home/pi/rpi/rootfs/usr/include -isystem /home/pi/rpi/rootfs/usr/local/include -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wno-narrowing -Wno-comment -fdiagnostics-show-option -pthread -fomit-frame-pointer -mfp16-format=ieee -ffunction-sections -fvisibility=hidden -g -O0 -DDEBUG -D_DEBUG -- Linker flags (Release): -- Linker flags (Debug): -- ccache: NO -- Precompiled headers: NO -- Extra dependencies: gtk-x11-2.0 gdk-x11-2.0 pangocairo-1.0 atk-1.0 cairo gdk_pixbuf-2.0 gio-2.0 pangoft2-1.0 pango-1.0 fontconfig freetype gthread-2.0 gstbase-1.0 gstreamer-1.0 gobject-2.0 glib-2.0 dc1394 dl m pthread rt -- 3rdparty dependencies: zlib libjpeg libwebp libpng libtiff libjasper IlmImf libprotobuf tegra_hal

    -- OpenCV modules: -- To be built: core flann imgproc ml photo reg surface_matching video dnn freetype fuzzy imgcodecs shape videoio highgui objdetect plot superres xobjdetect xphoto bgsegm bioinspired dpm face features2d line_descriptor saliency text calib3d ccalib datasets rgbd stereo tracking videostab xfeatures2d ximgproc aruco optflow phase_unwrapping stitching structured_light python3 -- Disabled: world contrib_world -- Disabled by dependency: - -- Unavailable: cudaarithm cudabgsegm cudacodec cudafeatures2d cudafilters cudaimgproc cudalegacy cudaobjdetect cudaoptflow cudastereo cudawarping cudev java python2 ts viz cnn_3dobj cvv hdf matlab sfm

    -- GUI: -- QT: NO -- GTK+ 2.x: YES (ver 2.24.31) -- GThread : YES (ver 2.50.3) -- GtkGlExt: NO -- OpenGL support: NO -- VTK support: NO

    -- Media I/O: -- ZLib: zlib (ver 1.2.8) -- JPEG: libjpeg (ver 90) -- WEBP: build (ver 0.3.1) -- PNG: build (ver 1.6.24) -- TIFF: build (ver 42 - 4.0.2) -- JPEG 2000: build (ver 1.900.1) -- OpenEXR: build (ver 1.7.1) -- GDAL: NO -- GDCM: NO

    -- Video I/O: -- DC1394 1.x: NO -- DC1394 2.x: YES (ver 2.2.5) -- FFMPEG: NO -- avcodec: YES (ver 57.64.101) -- avformat: YES (ver 57.56.101) -- avutil: YES (ver 55.34.101) -- swscale: YES (ver 4.2.100) -- avresample: NO -- GStreamer: NO -- OpenNI: NO -- OpenNI PrimeSensor Modules: NO -- OpenNI2: NO -- PvAPI: NO -- GigEVisionSDK: NO -- Aravis SDK: NO -- UniCap: NO -- UniCap ucil: NO -- V4L/V4L2: NO/YES -- XIMEA: NO -- Xine: NO -- gPhoto2: NO

    -- Parallel framework: pthreads

    -- Other third-party libraries: -- Use IPP: NO -- Use VA: NO -- Use Intel VA-API/OpenCL: NO -- Use Lapack: NO -- Use Eigen: NO -- Use Cuda: NO -- Use OpenCL: YES -- Use OpenVX: NO -- Use custom HAL: YES (carotene (ver 0.0.1))

    -- OpenCL: -- Include path: /home/pi/rpi/src/opencv-3.2.0/3rdparty/include/opencl/1.2 -- Use AMDFFT: NO -- Use AMDBLAS: NO

    -- Python 2: -- Interpreter: NO

    -- Python 3: -- Interpreter: /usr/bin/python3 (ver 3.5.2) -- Libraries: /home/pi/rpi/rootfs/usr/lib/arm-linux-gnueabihf/libpython3.5m.so (ver 3.5.3) -- numpy: /home/pi/rpi/rootfs/usr/lib/python3/dist-packages/numpy/core/include (ver undefined - cannot be probed because of the cross-compilation) -- packages path: /home/pi/rpi/rootfs/usr/local/lib/python3.5/site-packages

    -- Python (for build): /usr/bin/python3

    -- Java: -- ant: NO -- JNI: NO -- Java wrappers: NO -- Java tests: NO

    -- Matlab: Matlab not found or implicitly disabled

    -- Documentation: -- Doxygen: NO

    -- Tests and samples: -- Tests: NO -- Performance tests: NO -- C/C++ Examples: NO

    -- Install path: /home/pi/rpi/rootfs/usr

    -- cvconfig.h is in: /home/pi/rpi/build/opencv


    -- -- Configuring done -- Generating done -- Build files have been written to: /home/pi/rpi/build/opencv

    We see the following error, for make install.

    It would be great to hear from you!

    crosscompilation_opencv

    opened by sumangalasomayaji 7
  • SSH over USB

    SSH over USB

    Hello,

    I have tried to enable SSH over usb and it works well but I would like to point out that when enabled it messes up with the rest of the network config you propose (at least with DHCP, I have not tried static).

    When USB is disconnected but both interfaces (usb0 and wlan0) are declared in "/etc/network/interface", DHCP works well and the pi can connect to the wifi and I can SSH to it. The weird part is that whenever I try to "apt-get install" something I get a "no route to host error". The weirdest part is that I can ping websites such as google.com but when I ping the websites with the "no route to host error" it doesn't work.

    I noticed that when the ping fails the source IP is coming from the USB interface instead of wlan0. So I commented out the usb0 part in "/etc/network/interface" and it "solved" the problem.

    Unfortunately I know not enough on the subject to be of much help and I just wanted to point it out in case this is a real issue (and not me doing something wrong).

    Cheers

    opened by compyl118 5
  • Changes to 01-setup.md

    Changes to 01-setup.md

    Hi, thanks for sharing your tips! There is something bothering me in the "01-setup.md" section about the "SSH key" part:

    Isn't step 2 supposed to be done in the host ? Because so far the guest system doesn't know anything about xcs_server_rsa.pub. XCS~$ chmod 700 xcs_server_rsa xcs_server_rsa.pub

    Since I do have a Windows based host I am using putty and puttygen for theses steps. I'am not sure if what I made will work with the rest of your notes (still a lot more to read) but if it works, would you like me to write down something about Putty for windows users for you to append to this .md? This question would also apply to the DNS part.

    opened by compyl118 4
  • /usr/bin/rpizero-gcc -- broken

    /usr/bin/rpizero-gcc -- broken

    hello, I try to make your example work, but impossible: - /

    I did it again 3x but I always have the same error:

    [email protected]:~/rpi/build/hello/pi$

    ./make -- The C compiler identification is GNU 4.9.3 -- The CXX compiler identification is GNU 4.9.3 -- Check for working C compiler: /usr/bin/rpizero-gcc -- Check for working C compiler: /usr/bin/rpizero-gcc -- broken CMake Error at /usr/share/cmake-3.10/Modules/CMakeTestCCompiler.cmake:52 (message): The C compiler

    "/usr/bin/rpizero-gcc"
    

    is not able to compile a simple test program.

    It fails with the following output:

    Change Dir: /home/pi/rpi/build/hello/pi/CMakeFiles/CMakeTmp
    
    Run Build Command:"/home/pi/rpi/rootfs/usr/bin/make" "cmTC_cbaa5/fast"
    /home/pi/rpi/rootfs/usr/bin/make: 1: /home/pi/rpi/rootfs/usr/bin/make: Syntax error: word unexpected (expecting ")")
    

    I do not understand what I'm doing wrong ... an idea? thansk

    opened by l0l0l0 2
  • Could not get past

    Could not get past "# Test Setup" in "04-xc-setup.md", Have a solution.

    Hi, I used your guide to setup a cross-compile environment. I'm using ubuntu 18 and Ros melodic.

    First of al I have it running now.

    My observations:

    1. I used in first instance ~ for /home/pi in the "rpi-generic-toolchain.cmake" file, as my home directory is named differently. I thought that would be more generic. Well it doesn't work, you might want to make that explicit in your documentation. I ended up just changing the pi reverence to fit my home directory.
    2. I Got in the same issue as some other people that the running the command: cmake -D CMAKE_TOOLCHAIN_FILE=~/rpicross_notes/rpi-generic-toolchain.cmake ~/rpicross_notes/hello/pi would evoke the RPI make program. I think that is due to the statements: set( RPI_ROOTFS /home/pi/rpi/rootfs ) set( CMAKE_FIND_ROOT_PATH ${RPI_ROOTFS} ) in the "rpi-generic-toolchain.cmake" file. I solved this by adding: set( CMAKE_MAKE_PROGRAM "/usr/bin/make" CACHE FILEPATH "") in the "rpi-generic-toolchain.cmake" file.
    3. with respect to broken links in your script are 4 files, there are however much more broken links in the "usr/lib/arm-linux-gnueabihf" directory. Are those not relevant or is your shell script just an example? I personally changed the links on the RPI to relative links. That might bite me when I update the RPI, but we will see then.

    Moreover, some of the links in the MD files on the web point to no longer existing files.

    Thanks Jacob

    opened by Skammi 1
  • ROS: VM-master with RPi as Node

    ROS: VM-master with RPi as Node

    Key idea: VM as ROS-master with the RPi functioning as a node. This eases debugging and development as communication can happen via ROS and the final product needs to function in a ROS environment.

    • [x] Install ROS in VM
    • [x] create scripts to activate node in RPi
    • [x] create hello/rosm/ examples
    • [x] Update guide
    opened by HesselM 1
  • Update: helloros native + xc

    Update: helloros native + xc

    Update cmake-files and toolchain such that the helloros example can both run native (x86/x64) in VM and on the RPi (arm)

    enhancement 
    opened by HesselM 1
  • Update: hellocv native + xc

    Update: hellocv native + xc

    Update cmake-files and toolchain such that the hellocv example can both run native (x86/x64) in VM and on the RPi (arm)

    enhancement 
    opened by HesselM 1
  • Update: hellopi native + xc

    Update: hellopi native + xc

    Update cmake-files and toolchain such that the hellopi example can both run native (x86/x64) in VM and on the RPi (arm)

    enhancement 
    opened by HesselM 1
  • Cannot install required packages for

    Cannot install required packages for "8. Cross-compile and Install ROS"

    When I try execute command XCS~$ sudo apt-get install python-rosdep python-rosinstall-generator python-wstool python-rosinstall python-empy I get an errors:

    Package python-empy is not available, but is referred to by another package.
    This may mean that the package is missing, has been obsoleted, or
    is only available from another source
    
    Package python-rosinstall is not available, but is referred to by another package.
    This may mean that the package is missing, has been obsoleted, or
    is only available from another source
    However the following packages replace it:
      python3-rosinstall
    
    Package python-rosinstall-generator is not available, but is referred to by another package.
    This may mean that the package is missing, has been obsoleted, or
    is only available from another source
    However the following packages replace it:
      python3-rosinstall-generator
    
    Package python-wstool is not available, but is referred to by another package.
    This may mean that the package is missing, has been obsoleted, or
    is only available from another source
    However the following packages replace it:
      python3-wstool
    
    E: Unable to locate package python-rosdep
    E: Package 'python-rosinstall-generator' has no installation candidate
    E: Package 'python-wstool' has no installation candidate
    E: Package 'python-rosinstall' has no installation candidate
    E: Package 'python-empy' has no installation candidate
    

    I tried to install python3 alternatives but execution of command

    XCS~$ ./src/catkin/bin/catkin_make_isolated \
         -DCMAKE_BUILD_TYPE=Release \
         -DCMAKE_TOOLCHAIN_FILE=/home/pi/rpicross_notes/rpi-generic-toolchain.cmake
    

    gives me error

    ImportError: "from catkin_pkg.topological_order import topological_order" failed: No module named catkin_pkg.cmake
    Make sure that you have installed "catkin_pkg", it is up to date and on the PYTHONPATH.
    

    How can I fix it?

    opened by EntnyJill 1
  • Cross compile OpenCV installed from apt repository

    Cross compile OpenCV installed from apt repository

    Hello. I've installed OpenCV 4.5.1 to Raspberry Pi 3b from apt repository. Now I'm trying to cross compile OpenCV test from your guide. I've succesffuly synced XCS with RPI using script sync-xcs-rpi.sh but now I cannot compile test example. CMake command executes successfully

    cmake \
        -D CMAKE_TOOLCHAIN_FILE=$XC_RPI_BASE/rpicross_notes/rpi-generic-toolchain.cmake \
        $XC_RPI_BASE/rpicross_notes/hello/ocv
    

    But make command gives a bunch of errors :

    /home/pi/rpi/tools/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.3/../../../../arm-linux-gnueabihf/bin/ld: warning: libblas.so.3, needed by /home/pi/rpi/rootfs/lib/libarmadillo.so.10, not found (try using -rpath or -rpath-link)
    /home/pi/rpi/tools/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.3/../../../../arm-linux-gnueabihf/bin/ld: warning: liblapack.so.3, needed by /home/pi/rpi/rootfs/lib/libarmadillo.so.10, not found (try using -rpath or -rpath-link)
    CMakeFiles/hellocv.dir/hello.cpp.o: In function `main':
    hello.cpp:(.text+0x94): undefined reference to `cv::imread(std::string const&, int)'
    hello.cpp:(.text+0x13c): undefined reference to `cv::namedWindow(std::string const&, int)'
    hello.cpp:(.text+0x1a0): undefined reference to `cv::imshow(std::string const&, cv::_InputArray const&)'
    /home/pi/rpi/rootfs/usr/lib/arm-linux-gnueabihf/libopencv_surface_matching.so.4.5.1: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::find(char, unsigned int) [email protected]_3.4.21'
    /home/pi/rpi/rootfs/lib/libarmadillo.so.10: undefined reference to `zgemm_'
    /home/pi/rpi/rootfs/usr/lib/arm-linux-gnueabihf/libarpack.so.2: undefined reference to `clahqr_'
    

    and so on. I can build test file without errors on Raspberry Pi. How can I deal with it? Thank you.

    opened by EntnyJill 1
  • Cross compile ros stopped working

    Cross compile ros stopped working

    Following your tutorial today to create a ross cross complile VM. Trying to cross compile gives me an error

    ./src/catkin/bin/catkin_make_isolated -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=/home/cross/rpicross_notes/rpi-generic-toolchain.cmake Traceback (most recent call last): File "./src/catkin/bin/catkin_make_isolated", line 12, in from catkin.builder import build_workspace_isolated File "./src/catkin/bin/../python/catkin/builder.py", line 66, in from catkin_pkg.terminal_color import ansi, disable_ANSI_colors, fmt, sanitize ImportError: No module named terminal_color

    if I edit the builder.py to say from catkin_pkg.terminal_color import ansi, disable_ANSI_colors, fmt, sanitize instead, it fails to build with `ImportError: cannot import name ansi'

    Any help would be appreciated.

    opened by sherwood333 2
  • ROS_MASTER_URI: host is not set to this machine

    ROS_MASTER_URI: host is not set to this machine

    When running the example in 10-ros-remote, roscore will complain about an incorrect set IP. While this is technically true (the IP of the HOST is used, which differs from the local IP of the VM), communication with roscore will still be possible. Issues when using remote-launch files will occur as these use the hostname of the VM.

    A possible solution might lay in a different connection of the VM with the HOST. Currently this is nat-attached, while bridged might solve this issue. See: https://www.virtualbox.org/manual/ch06.html.

    Since this requires the rewrite and retest of several steps, it will not be updated anytime soon.

    enhancement 
    opened by HesselM 0
Owner
Hessel van der Molen
Hessel van der Molen
⚔️ A tool for cross compiling shaders. Convert between GLSL, HLSL, Metal Shader Language, or older versions of GLSL.

A cross compiler for shader languages. Convert between SPIR-V, GLSL / GLSL ES, HLSL, Metal Shader Language, or older versions of a given language. Cross Shader wraps glslang and SPIRV-Cross, exposing a simpler interface to transpile shaders.

Alain Galvan 207 Dec 30, 2022
Write snippets of C code in your txt files for notes and skip the hassle of compiling and running

Write snippets of C code in your txt files for notes and skip the hassle of compiling and running. Greatly helps organization and note-taking to make sure you do not miss anything.

Seamus Walden 4 Jun 13, 2022
Prueba del Raspberry PI PICO con un display Raspberry PI TFT 3.5"

Raspberry-PI-PICO-display-RPI35 Prueba del Raspberry PI PICO con un display Raspberry PI TFT 3.5" Con ayuda de la libreria https://github.com/khoih-pr

null 1 Nov 10, 2021
A guide and set of tools for working with TinyML powered Audio Sensors

Audio Sensor Toolkit This is a guide on how to build an Audio Sensor using Machine Learning, and helpful tools. Audio Sensor Guide Audio Tools Acceler

IQT Labs 20 Sep 21, 2022
Opencore-based Hackintosh EFI and guide for Lenovo Thinkpad X1 Carbon Gen 7

macOS on Thinkpad X1 Carbon 7th Generation OpenCore-based Hackintosh EFI and guide for Lenovo Thinkpad X1 Carbon Gen 7. This guide has been generated

Aidan Chandra 35 Dec 19, 2022
V4L0R4NT 0V3RL4Y 3XT3RN4L 35P CH34T -- Guide written in Indonesian Language~

V4L0VL4Y V4L0R4NT 0V3RL4Y 3XT3RN4L 35P CH34T K4L4U M4U N908R0L M45UK 4J4! H3H3 C4R4 C0MP1L3 DR1V3R 1N5T4L W5L K4L4U 94K PUNY4 L1NUX 9UN4K4N L1NUX Y4N9

Basilius Bias Astho Christyono 27 Oct 25, 2022
A comprehensive guide to 50 years of evolution of strict C programming, a tribute to Dennis Ritchie's language

42 School Cheat Sheet by agavrel ?? Intended for 42 alumni, current students and candidates Truth can only be found in one place: the code – Robert C.

Antonin GAVREL 1.1k Jan 3, 2023
Macos-arm64-emulation - A guide for emulating macOS arm64e on an x86-based host.

macos-arm64-emulation Use the following guide to download and configure all of the necessary tools and files for emulating the macOS arm64e kernel. Th

Cylance 233 Jan 7, 2023
Step-by-step guide through the abstract and complex universe of Fragment Shaders.

The Book of Shaders by Patricio Gonzalez Vivo and Jen Lowe This is a gentle step-by-step guide through the abstract and complex universe of Fragment S

Patricio Gonzalez Vivo 4.9k Jan 2, 2023
A guide that teach you build a custom version of Chrome / Electron on macOS / Windows / Linux that supports hardware / software HEVC decoding.

enable-chromium-hevc-hardware-decoding A guide that teach you build a custom version of Chrome / Electron on macOS / Windows / Linux that supports har

Sta Zhu 778 Jan 1, 2023
The Leap Motion cross-format, cross-platform declarative serialization library

Introduction to LeapSerial LeapSerial is a cross-format, declarative, serialization and deserialization library written and maintained by Leap Motion.

Leap Motion (Ultraleap) 15 Jan 17, 2022
Raspberry Pi Pico (RP2040) and Micro-ROS (ROS 2) Integration

The Pico is an amazing microcontroller and I couldn't wait for ROS 2 support or Arduino Core, so here is my approach. Once the Arduino Core for RP2040 is out it will be easier to use micro_ros_arduino.

Darko Lukić 19 Jun 19, 2022
built-in CMSIS-DAP debugger tailored especially for the RP2040 “Raspberry Pi Pico”

RP2040 has two ARM Cortex-M0+ cores, and the second core normally remains dormant. pico-debug runs on one core in a RP2040 and provides a USB CMSIS-DAP interface to debug the other core. No hardware is added; it is as if there were a virtual debug pod built-in.

null 272 Dec 30, 2022
Tetris on a Raspberry Pi Pico mounted on a Pimoroni Pico Explorer

PicoTetris Classic Tetris game running on a Raspberry Pi Pico microcontroller. Pico C port by Richard Birkby Original JavaScript implementation - Jake

Richard Birkby 34 Dec 3, 2022
🦠 µnix is a UNIX-like operating system for the raspberry pi pico.

The µnix Operating System "µnix", "munix" or, "micro unix" aims to be a micro kernel based operating system targeting the Raspberry Pi Pico. "µnix" is

Sleepy Monax 57 Dec 11, 2022
Fractal rendering for Raspberry Pi Pico microcontroller

picofract Mandelbrot Set rendering demo for Raspberry Pi Pico microcontroller with Pico Display Pack. Building If you already have the Pimoroni SDK bu

null 22 Dec 7, 2022
Arduino API for the Raspberry Pico

Raspberry PI Pico - Arduino API On Friday I was receiving my Raspberry PI Pico and I had the opportunity to play around with it. Actually most of the

Phil Schatzmann 59 Jan 2, 2023
x86 emulator on Raspberry Pi Pico

picox86 x86 emulator on Raspberry Pi Pico https://user-images.githubusercontent.com/10139098/110543817-13299080-812b-11eb-9c88-674cdae919fc.mp4 PCB fr

null 39 Nov 9, 2022
A laser cut Dreamcast Pop'n Music controller and integrated memory card using the Raspberry Pi Pico's Programmable IO

Dreamcast Pop'n Music Controller Using Raspbery Pi Pico (RP2040) Intro This is a homebrew controller for playing the Pop'n Music games on the Sega Dre

null 42 Dec 29, 2022