cwi-dis / cwipc

MIT License
15 stars 2 forks source link

Investigate building cwipc for Raspberry Pi 4 (or 5) #76

Open jackjansen opened 9 months ago

jackjansen commented 9 months ago

It would be good to have cwipc running on a Raspberry Pi 4 or later. Earlier is pointless, see below.

This is (I think) specifically to allow using the RPi as a dedicated "camera server" with a RealSense camera attached. I'm targeting the RealSense at the moment, because people have gotten it working on the RPi (unlike the Kinect).

I'm specifically saying RPi4 or later because earlier models don't have USB3, and USB3 is needed to (1) get decent throughput to the camera, and (2) get decent Ethernet throughput.

I'm going to start with investigating whether we can build librealsense2 for the RPi4, and see whether its performance is good enough to continue this line of work. It may be that it is, in which case we continue. It may be that we have to wait for the RPi5.

jackjansen commented 9 months ago

So starting with building librealsense2.

Started with the instructions at https://github.com/IntelRealSense/librealsense/blob/master/doc/installation_raspbian.md

These are for RPi3, with an older raspbian. Some things had the change.

The make and gcc versions provided are now new enough, it seems.

The Install Packages failed, with missing packages. What worked was

sudo apt-get install -y git libssl-dev libusb-1.0-0-dev pkg-config libgtk-3-dev cmake libglfw3-dev build-essential
sudo apt-get install -y libdrm-amdgpu1 libdrm-dev libdrm-exynos1 libdrm-freedreno1 libdrm-nouveau2 libdrm-omap1  libdrm-radeon1 libdrm-tegra0 libdrm2
sudo apt-get install -y libglu1-mesa libglu1-mesa-dev glusterfs-common libglu1-mesa libglu1-mesa-dev
sudo apt-get install -y libglu1-mesa libglu1-mesa-dev mesa-utils mesa-utils-extra xorg-dev libgtk-3-dev libusb-1.0-0-dev   

Next was Protobuf. The instructions failed, the Python packages didn't build. Tried various newer versions, finally settled on

git clone --depth=1 -b v3.20.3 https://github.com/google/protobuf.git

The Python interfaces still don't work (this version of protobuf is incompatible with 3.11). Also tried v24.0 (which apparently has a newer naming scheme?), but I couldn't build that with the given instructions.

Continuing with the instructions (skipping OpenCV, which was a suggestion I saw somewhere else).

Am now at the point of trying to build librealsense.

jackjansen commented 9 months ago

Note to self: if the instructions here eventually lead to a successful build I should feed this back as a librealsense issue.

jackjansen commented 9 months ago

Another note: there may be interesting information in https://dev.intelrealsense.com/docs/open-source-ethernet-networking-for-intel-realsense-depth-cameras or otherwise that may point to a completely different way to handle the use case.