If you start with our working 16.04 image, you can try to remove ROS and catkin_ws entirely, do a dist upgrade to melodic. also do a systemctl disable of magni_base.
You should then be able to do a full desktop install of ros melodic, and catkin_ws. You then will need to build ALL the ubiquity packages in catkin. this includes magni_robot, raspicam_node, ubiquity_motor, move_basic and a few others, Iāll attach my noetic notes.
It took us over four month to get a āworkingā Noetic image, but a lot of that was python2 vs python3, opencv 3 vs 4.
From ubiquity image 16.04
remove ros, disable magni-base.system, comment out last three lines of .bashrc
update upgrade to 18.04 and then 20.04 best to do this while not mounted in robot, connected directly with hdmi, keyboard/mouse ā wired ethernet. Iāve had lots of difficulty with the pi 4 I am using losing wireless ā this might be just a flakey Pi 4.
This also may involve removal of certain packages. After getting to 20.04 I needed to reinstall lubuntu-desktop and gdm3 (lightdm and sddm seemed to break after 20.04)
ubuntu-20.04.2-preinstalled-server-armhf+raspi.img.xz
starting from 20.04 image use u-boot to add bootdelay ā 2 so can boot inserted into Magni
add gpu_mem=128 start_x=1 to config.txt to enable raspicam
some of these installs might be duplicates of already installed packages
22 sudo apt install mlocate
25 sudo apt install python-setuptools python3-setuptools
28 sudo apt install unzip
34 sudo apt install make
37 sudo apt install build-essential
ROS + catkin install via typical instructions, but note ros-noetic-desktop-full does not exist for the arm32 (armhf71) architecture
46 sudo sh -c āecho ādeb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) mainā > /etc/apt/sources.list.d/ros-latest.listā
sudo -E apt-key adv --keyserver āhkp://keyserver.ubuntu.com:80ā --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt update
sudo apt install ros-noetic-desktop
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool
(note python3-rosdep NOT python3-rosdep2 !!!
source ros environment
sudo apt install ros-noetic-usb-cam*
sudo apt install net-tools
sudo apt install network-manager
sudo apt install ros-noetic-rosbridge*
sudo apt install python-is-python3
sudo apt install ros-noetic-tf2*
160 sudo apt install ros-noetic-teleop-twist*
vision*, navigation* image
Optional, proabably not needed or already part of tf2*:
sudo apt-get install ros-noetic-velocity-controllers
sudo apt install ros-noetic-diff-drive-controller
sudo apt install ros-noetic-joint-state-controller
catkin
?sudo apt install chrony
???------optional---- suggest not using raspi-config on ubuntu------???
sudo dpkg -i /tmp/raspi-config_20200601_all.deb
10 sudo raspi-config install userland
??? may not need if already installed from 16.04 image ???
sudo snap install rpi-userland āedge
copy the userland/opt/vc from snap to opt/vc
(this installs the mmal libraries)
pigpiod is needed for pi_sonar
wget https://github.com/joan2937/pigpio/archive/master.zip
unzip master.zip
cd pigpio-master/
make
sudo make install
sudo rosdep init
rosdep update
catkin
mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/
$ catkin_make
72 git clone http://github.com/ubiquityrobotics/ubiquity_motor
73 git clone http://github.com/ubiquityrobotics/magni_robot
74 git clone http://github.com/ubiquityrobotics/pi_sonar
75 git clone http://github.com/ubiquityrobotics/oled_display_node
80 git clone http://github.com/wjwwood/serial
git clone http://github.com/ubiquityrobotics/move_basic
edit pi_sonar.cpp add #include <boost/format.hpp>
edit launch base add () to prints ??? may have been done already
edit test_motor.py in ubiquity_motor replace 2 ā,eā to āas eā
catkin_make
tested
on my version raspistill works, magni_base, pi_sonar, oled_display all work, I could drive with logitech.
Not working - wifi - not sure if software/firmware or this Pi 4 unit. Iāll experiment with turning BT off, but this seems intermittent, and I am leaning to the wifi chip. Seems to be a problem with the Pi. The Pi 3 canāt seem to handle the load of lubuntu, so Iāve only tested on one Pi 4. Ideally, Iād like to duplicate with a brand spanking new Pi 4 - hint ā hint. Lterature says Pi 4 wifi very sensitive to under voltage, but it seems worse when on the magni, and better when outside powered by a lower amperage (2 amp) supply.
To DO: pifi build install for 20.04 I tried building from Rohanās github, but failed, may have to do with minuart-bt overlay
New magni_base in usersbin, new roscore in systemd
etc/ubiquity/env.sh and robot.yaml
Notes sample config.txt:
gpu_mem=128
start_x=1
[pi4]
kernel=uboot_rpi_4.bin
max_framebuffers=2
[pi2]
kernel=uboot_rpi_2.bin
[pi3]
kernel=uboot_rpi_3.bin
[all]
#arm_64bit=1
device_tree_address=0x03000000
The following settings are ādefaultsā expected to be overridden by the
included configuration. The only reason they are included is, again, to
support old firmwares which donāt understand the āincludeā command.
#hdmi_safe=1
enable_uart=1
dtparam=audio=on
dtparam=i2c_arm=on
dtparam=spi=on
dtoverlay=miniuart-bt
core_freq=250
dtoverlay=ic2-rtc,mcp7940x
cmdline=cmdline.txt
include syscfg.txt
include usercfg.txt
disable_overscan=1
dtoverlay=vc4-fkms-v3d
sample cmdline.txt
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 root=LABEL=writable rootfstype=ext4 rootwait fixrtc
(in old style from upgrade files are in /boot, in 20.04 source install from /boot/firmware)