Introdução
Outro dia, enquanto trabalhava em um diploma, fui confrontado com a necessidade de criar uma imagem do Ubuntu para um player de placa única com o ROS ( Robot Operating System - um sistema operacional robótico ) já instalado . Em suma, o diploma é dedicado ao gerenciamento de um grupo de robôs. Os robôs estão equipados com duas rodas e três telémetros. Tudo isso é gerenciado pelo ROS, que está girando na placa ODROID-C2.

Robô de joaninha. Desculpe pela má qualidade da foto
ROS , , ROS. , , .
.
- , (Distroshare Ubuntu Imager, linux live kit, linux respin, systemback .)
- , (yocto, linux from scratch)
- (liveCD customization , )
, live- ODROID . - . , .. .
chroot (chroot — change root, ) , . Ubuntu .
:
- ( SD- balenaEtcher) Ubuntu 18.04.
- , – Ubuntu 18.04.3 mate desktop .
- , – ODROID-C2.
Ubuntu ODROID
unxz –kv < >
,
mkdir mnt
,
file < >
ext2, ext3 ext4. ( ):

. parted.
sudo mount -o loop,offset=$((264192*512)) < > mnt/
264192 ( ), — 512 , , .
cd mnt/
sudo chroot ~/livecd/mnt/ bin/sh
~/livecd/mnt —
bin/sh — ( bin/bash)
.
ROS
ROS (ROS Melodic) .
sudo apt-get update
:
Err:6 http://deb.odroid.in/c2 bionic InRelease
The following signatures were invalid: EXPKEYSIG 5360FB9DAB19BAC9 Mauro Ribeiro (mdrjr) <mauro.ribeiro@hardkernel.com>
, . :
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys AB19BAC9
ROS
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt update
ROS
, desktop ROS, :
sudo apt install ros-melodic-ros-base
apt search ros-melodic
1. :
dpkg: error: failed to write status database record about 'iputils-ping' to '/var/lib/dpkg/status': No space left on device
apt:
sudo apt-get clean; sudo apt-get autoclean
2. (source) :
source /opt/ros/melodic/setup.bash
, .. bash, .
sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
sudo apt install python-rosdep
sudo rosdep init
rosdep update
, , root , ROS .
roscore sudo :
Traceback (most recent call last): File "/opt/ros/melodic/lib/python2.7/dist-packages/roslaunch/__init__.py", line 230, in main write_pid_file(options.pid_fn, options.core, options.port) File "/opt/ros/melodic/lib/python2.7/dist-packages/roslaunch/__init__.py", line 106, in write_pid_file with open(pid_fn, "w") as f: IOError: [Errno 13] Permission denied: '/home/user/.ros/roscore-11311.pid'
, ROS. :
sudo rosdep fix-permissions
rviz rqt
sudo apt-get install ros-melodic-rqt ros-melodic-rviz
- chroot:
exit
cd ..
sudo umount mnt/
xz –ckv1 < >
Todos! Agora, usando o balenaEtcher, você pode gravar a imagem do sistema em um cartão SD, inseri-la no ODROID-C2 e você terá o Ubuntu com ROS instalado!
Referências:
- Este vídeo ajudou muito em como entrar no linux e por que deveria ser: