Giter Site home page Giter Site logo

ar-ray-code / rpi-bullseye-ros2 Goto Github PK

View Code? Open in Web Editor NEW
73.0 6.0 16.0 761 KB

ROS2-Iron for Raspbian-bookworm

Home Page: https://zenn.dev/array/books/5efdb438cf8be3

License: MIT License

Shell 15.20% CMake 70.14% Dockerfile 4.82% Python 9.84%
ros2 raspberry-pi raspbian bullseye humble debian iron bookworm

rpi-bullseye-ros2's Introduction

Raspberry Pi OS ROS2

Build ROS2 for Raspbian


Support

Latest : ros2-0.3.2

ros2-0.3.2

Distro Debian arm64-desktop arm64-full
iron bullseye URL
iron bookworm URL
humble bullseye URL

Install (bullseye)

  • OS : RaspberryPi OS bullseye arm64
  • ROS2 : ROS2 Humble
wget https://github.com/Ar-Ray-code/rpi-bullseye-ros2/releases/download/ros2-0.3.1/ros-humble-desktop-0.3.1_20221218_arm64.deb
sudo apt install ./ros-humble-desktop-0.3.1_20221218_arm64.deb
sudo pip install vcstool colcon-common-extensions

Install (bookworm)

  • OS : RaspberryPi OS bookworm arm64
  • ROS2 : ROS2 Iron

When using Rviz2, switch the display server from Wayland to X11.

wget https://s3.ap-northeast-1.wasabisys.com/download-raw/dpkg/ros2-desktop/debian/bookworm/ros-iron-desktop-0.3.2_20231028_arm64.deb
sudo apt install ./ros-iron-desktop-0.3.2_20231028_arm64.deb
sudo pip install --break-system-packages vcstool colcon-common-extensions

Uninstall

sudo apt remove ros-${DISTRO}-desktop
# e.g. sudo apt remove ros-humble-desktop

Load ROS2

source /opt/ros/${DISTRO}/setup.bash
# e.g. source /opt/ros/humble/setup.bash

ros2-0.2.0

ros2-0.2.0

Distro aarch64
humble
galactic

Install

  • OS : RaspberryPi OS bullseye aarch64
  • ROS2 : ROS2 Humble
# (humble, aarch64)
curl -O https://raw.githubusercontent.com/Ar-Ray-code/rpi-bullseye-ros2/main/install.bash
# bash install.bash <distro> <arch> <version> <install-dir>
bash install.bash humble aarch64 0.2.0 /opt/ros

ros2-0.1.0

ros2-0.1.0

❌ Excluded packages ❌

  • RViz
  • rosbag
  • rqt

Distro aarch64 arm7l
humble
galactic

Install

  • OS : RaspberryPi OS bullseye aarch64
  • ROS2 : ROS2 Humble
# (humble, aarch64)
wget https://raw.githubusercontent.com/Ar-Ray-code/rpi-bullseye-ros2/main/install.bash
bash install.bash humble aarch64 0.1.0 /opt/ros

# galactic, arm7l
# bash install.bash galactic arm7l 0.1.0 /opt/ros

Load ROS2

source /opt/ros/humble/setup.bash


Build ROS2


Cross compile 🛠️


Cases

If rpi-bullseye-ros2 has made your project work, please let me know!✨

URL
ROS-With-Arducam-ToF-Camera (arducam) URL
CoRE2024 AutoRobot team firmware scramble-robot/CoRE_AutoRobot_2024_raspberrypi

About author


Support me!

このプロジェクトは学生向けの軽量なROS2環境を提供するためにあります。 あなたがもしこのプロジェクトに助けられた場合、その助けを継続する支援をお願いします。

This project is to provide a lightweight ROS2 environment for students. If you have been helped by this project, please help us continue that help.

sponsors/Ar-Ray-code

rpi-bullseye-ros2's People

Contributors

ar-ray-code avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

rpi-bullseye-ros2's Issues

Confusing version install readme

The readme on Install section shows the follow codelines to setup

# default : (humble, arm7l)
curl -s https://raw.githubusercontent.com/Ar-Ray-code/rpi-bullseye-ros2/main/install.bash | bash

or

# default : (humble, aarch64)
wget https://raw.githubusercontent.com/Ar-Ray-code/rpi-bullseye-ros2/main/install.bash
bash install galactic aarch64 0.1.0 /opt/ros

this seems that first alternative install the 32 bit version of humble and second the 64 bit version of galactic but comment above says humble, aarch64

but in the first part of readme there is writtem

Version aarch64
humble
galactic

This looks like confusing

Also in the installer

if [ -z "$TARGET_DISTRO" ];     then TARGET_DISTRO="humble";      fi
if [ -z "$ARCH" ];              then ARCH="armv7l";                 fi
if [ -z "$VERSION" ];           then VERSION="0.1.0";               fi
if [ -z "$ROS_INSTALL_DIR" ];   then ROS_INSTALL_DIR="/opt/ros";    fi

Thess lines

if [ -z "$ARCH" ];              then ARCH="armv7l";                 fi
if [ -z "$VERSION" ];           then VERSION="0.1.0";               fi

shouldn't be

if [ -z "$ARCH" ];              then ARCH="aarch64";                 fi
if [ -z "$VERSION" ];           then VERSION="0.2.0";               fi

considering that default target version is humble

???

ROS2 not found

Hi! I just tried installing the deb on git and everything was fine, but once run I got an error "ros2 command not found". Is there anything else to do to make it work?

Different rmw implementations

Hello, are different rmw support added for the installations?

I'm trying to switch to a different middleware (i.e. CycloneDDS), but I seem to running into issues which I won't on an Ubuntu 22.04 ROS Humble.

I have added this into the .bashrc file

export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp

Warnings

[WARN] [1700551742.395493661] [rmw_cyclonedds_cpp]: Failed to parse type hash for topic 'ros_discovery_info' with type 'rmw_dds_common::msg::dds_::ParticipantEntitiesInfo_' from USER_DATA '(null)'.
[WARN] [1700551742.395569216] [rmw_cyclonedds_cpp]: Failed to parse type hash for topic 'rt/rosout' with type 'rcl_interfaces::msg::dds_::Log_' from USER_DATA '(null)'.
[WARN] [1700551742.395587031] [rmw_cyclonedds_cpp]: Failed to parse type hash for topic 'rt/parameter_events' with type 'rcl_interfaces::msg::dds_::ParameterEvent_' from USER_DATA '(null)'.
[WARN] [1700551742.395604420] [rmw_cyclonedds_cpp]: Failed to parse type hash for topic 'ros_discovery_info' with type 'rmw_dds_common::msg::dds_::ParticipantEntitiesInfo_' from USER_DATA '(null)'.

cv_bridge

cv_bridgeが無いと何かと不便なのでimage_common含めビルドしておきたい

Humbleリリース後に対応します。

Missing RViz rosbag rqt integration

I need to run ROS 2 Humble on Raspberry Pi OS bullseye ARM64 but the packages RViz, rosbag and rqt are missing.
Is this caused by some compilation problem? How they could be included?

libcurl.so.4 Raspbian Bullseye [Resolved]

Hello, I faced this issue when I tried to colcon build cv_bridge, have installed libcurl4 so I'm not sure what I am missing here.

/usr/bin/cmake: /opt/ros/humble/opt/libcurl_vendor/lib/libcurl.so.4: no version information available (required by /usr/bin/cmake)

Solution: Found the solution and placing it here in case anyone needs, what I did was to make the default libcurl4 of ROS2 unavailable.

cd /opt/ros/humble/opt/libcurl_vendor/lib
sudo mv libcurl.so.4 libcurl.so.4.backup
sudo apt install --reinstall libcurl4
source /opt/ros/humble/setup.bash

And the issue went away

deb package not properly installed

The deb package is not properly installed, I guess this is probably due to the installation of ros humble with previous method still present on device.

How the properly uninstall ros humble installed with previous method to proceed with a clean installation of new deb version?

Is colcon available?

Hi!

I was just wondering if you know any colcon package for ros2 that works on raspberry pi os bullsye.
python3-colcon-common-extensions from http://repo.ros2.org/ubuntu/main does not correctly install on raspberry pi os bullsye due to a missing dependency.

Errors were encountered while processing: /var/cache/apt/archives/python3-catkin-pkg-modules_0.5.2-1_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Thank you!

QXcbConnection: XCB error launching rviz2

rviz2 on Raspberry Pi OS 64 bit bullseye after the default installation procedure crashes on launch with the following error:

qt.qpa.xcb: QXcbConnection: XCB error: 148 (Unknown), sequence: 192, resource id: 0, major code: 140 (Unknown), minor code: 20

I don't know if this may be related to an improper compilation of QT-related components as in a case described here but it seems a possible explaination.

UPDATE

The issue happen launching it using VNC when the attached display is in standby or turned off, otherwise it launchs correctly. So probably the problem is caused by a change of behavior introduced in latest rviz itself that returns this error because it doesn't find any display active in this specific situation and error has nothing to do with your compilation procedure.

[Improvement] Device specific optimizations

Would be useful to have ROS2 compilation optimized according the target hardware so if e.g. you launch the command with a flag indicating that target is Rapberry Pi 4 with something as

bash install.bash humble aarch64 rpi4 0.2.0 /opt/ros
are used binaries compiled with these optimized flags
-march=armv8-a+crc -mtune=cortex-a72 -O3
or alternatively (if supported by the compiler)
-march=armv8-a+crc -mtune=cortex-a72 -mfloat-abi=hard -mfpu=neon-fp-armv8 -mneon-for-64bits -O3

to better take advance of CPU-specific features and optimizations.

In addition this would keep your work useful even if a day ROS2 humble hawskbill arrives officially on standard apt repos (where it cannot have device-specific tuning).

Raspberry Pi OS Bookworm compatibility

Now Raspberry Pi OS Bookworm has been released and has many significant changes as Wayland desktop environment.

There is an iron bookworm version in this repo, but considering this has been released many months before Raspberry Pi OS Bookworm release probably it used as reference a stock Debian (I guess).

Is this fully compatible also with Raspberry Pi OS Bookworm as well?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.