The following instructions are for reinstalling Autocrawler OS and software, or updating from older Ubuntu 18.04/ROS Melodic installs.
In this section:
OS INSTALL
PACKAGES AND DEPENDENCIES
INSTALL REALSENSE DRIVERS
INSTALL ROS
INSTALL AUTOCRAWLER JAVA
ENABLE VNC
DISABLE UPDATES AND SLEEP
OS INSTALL
Do fresh install of Ubuntu OS:
-Ubuntu desktop version 20.04 LTS 64-bit
-Choose fresh install when prompted (ie., erase whatever is on the SSD)
-Set username to “auto”
-with auto login enabled
-Set hostname to “crawler”
After installation, open a terminal and enter:
sudo apt update && sudo apt upgrade
(Upgrade will take a while.)
PACKAGES AND DEPENDENCIES
Then, install various required packages. Enter:
sudo apt install vim x11vnc geany htop git openjdk-11-jdk v4l-utils openssh-server coturn python3-pip net-tools curl espeak expect
And:
sudo adduser auto dialout
Install Gstreamer and Python3 components – enter the following:
sudo apt install libgstreamer1.0-0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-doc gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.0-pulseaudio libgstreamer*1.0-dev libnice-dev gstreamer1.0-nice libjson-glib-dev libsoup2.4-dev
pip3 install websockets pyserial
INSTALL REALSENSE DRIVERS
Install Realsense SDK and drivers, following “installing the packages” instructions here. Include the optional developer and debug packages.
With a monitor stil plugged in run realsense-viewer
to make sure the camera works, and do a firmware update if available (internet connection required for this).
INSTALL ROS
Follow ROS1 Noetic ‘desktop full install’ instructions here
To install required ROS packages, enter:
sudo apt install ros-noetic-move-base ros-noetic-map-server ros-noetic-amcl ros-noetic-dwa-local-planner ros-noetic-gmapping ros-noetic-ddynamic-reconfigure ros-noetic-usb-cam ros-noetic-realsense2-camera ros-noetic-vision-msgs
To setup ROS workspace and install required source packages from source, enter each line below in order:
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
cd ~/catkin_ws/
catkin_make
cd ~/catkin_ws/src
git clone --branch noetic https://github.com/xaxxontech/autocrawler_ros.git
git clone https://github.com/xaxxontech/fiducials.git
git clone https://github.com/xaxxontech/gst_video_server.git
git clone --branch noetic https://github.com/xaxxontech/xaxxon_openlidar.git
cd ~/catkin_ws/
catkin_make
Cartographer
Install Cartographer following instructions here – BUT install to ~/cartographer_catkin_ws
instead of ~/catkin_ws
as instructed (can’t be installed to the same workspace as created above).
UPDATE: if you get a "libabsl-dev not available"
error, edit package.xml as suggested here
When complete, setup the environment by adding the following lines to ~/.bashrc
:
source /home/auto/cartographer_catkin_ws/devel_isolated/setup.bash
source /home/auto/catkin_ws/devel/setup.bash --extend
Then do:
source ~/.bashrc
INSTALL AUTOCRAWLER JAVA
Download the latest Autocrawler Java from here
Unpack it into the home folder: /home/auto/
Enable the headless wifi manager on startup -
as root user create the file /etc/rc.local
with the following contents:
#!/bin/sh -e
# rc.local script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
# In order to enable or disable this script just change the execution
# bits.
/home/auto/autocrawler/access_point_manager/run &
exit 0
Make executable by entering:
sudo chmod +x /etc/rc.local
Enable regular user access to reboot
and shutdown
commands – enter:
sudo visudo
Add the following line, then save the file:
ALL ALL=NOPASSWD: /sbin/reboot,/sbin/shutdown
To auto-start Autocrawler Java, go to desktop GUI > applications > Startup Applications
add new item with the following command entry:
/bin/bash -i /home/auto/autocrawler/autocrawler.sh
ENABLE VNC
VNC won’t work without a monitor plugged in, so adding a dummy monitor is required for VNC access during normal robot use. Download the package by entering:
sudo apt install xserver-xorg-video-dummy
Then create+edit the file /etc/X11/xorg.conf
with the following contents:
Section "Device"
Identifier "Configured Video Device"
Driver "dummy"
EndSection
Section "Monitor"
Identifier "Configured Monitor"
HorizSync 31.5-48.5
VertRefresh 50-70
EndSection
Section "Screen"
Identifier "Default Screen"
Monitor "Configured Monitor"
Device "Configured Video Device"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1024x800"
EndSubSection
EndSection
After reboot, you should be able to run a VNC session at any time with the command:
x11vnc -xauth /var/lib/gdb/:0.Xauth -display :0 -forever -shared &
NOTE: This will disable functionality for actual plugged-in monitors. To re-enable it, delete or rename the /etc/X11/xorg.conf
file.
DISABLE UPDATES AND SLEEP
To help with smooth operation without keyboard and monitor attached, in the desktop GUI make the following changes to disable automatic updates and power saving features:
desktop GUI > software and updates > disable all update checking/never
desktop GUI > settings > notifications > do not disturb
desktop GUI > settings > power > disable all power saving options
desktop GUI > settings > privacy > lock screen all off
DONE
That’s it! Disconnect the monitor and keyboard, plug back in all USB devices. After reboot, the robot will (hopefully) come up with full software functionality.