Launch, machine and parameter files required to bringup the HERO robot
hsrb_command upload_robot_config
(as root/administrator)~/vbox_images
:
sudo systemctl stop hero1-speech5-windows-speech.service
or sudo systemctl stop hero1-demo-speech5-windows-speech.service
scp -r ~/vbox_images amigo@hero2.local:~/vbox_images_backup
scp -r ~/odometer amigo@hero2.local:~/odometer_backup
Required items:
Insert keyboard into robot
Insert USB Stick directly into the robot. Don't use any USB hub, etc.
Boot the robot. If no install screen is shown, follow these steps:
ESC
during boot to enter the BIOS.Boot
if the USB stick is set as first boot option. Note: No UEFI.CMS parameters
or Hard Drive parameters
the Boot option filter
to legacy only
.Wait till installer is finished. It will display a message to remove install medium. Do this and press main power button for a few seconds to shut down the robot.
Start the robot again via the main power button.
Directly on the robot:
administrator
: su - administrator
hero1
:
sudo vim /etc/hostname
sudo vim /etc/hosts
Set static IP (Using external Wi-Fi adapter):
sudo cp /etc/network/interfaces.eth /etc/network/interfaces.eth.bk
sudo vim /etc/network/interfaces.eth
iface enp4s0 inet dhcp
. Change it to: iface enp4s0 inet static
address 192.168.44.51
netmask 255.255.255.0
gateway 192.168.44.1
dns-nameservers 192.168.44.1 8.8.8.8 8.8.4.4
sudo cp /etc/systemd/resolved.conf /etc/systemd/resolved.conf.bk
sudo vim /etc/systemd/resolved.conf
#DNS=
to DNS=192.168.44.1 8.8.8.8 8.8.4.4
sudo disable_wireless
sudo reboot
The following steps need to be done on the robot(hsr-hmi
) via the GUI:
Never
Display every two weeks
Never
The following steps can be done via SSH or directly on the robot (SSH: ssh administrator@hero1.local
)
sudo passwd XX
sudo apt-get update
(as root/administrator)hsrb_command upgrade
(as root/administrator)hsrb_command update_release XX.XX
(as root/administrator)hsrb_command restore
(as root/administrator)scp -r amigo@hero2.local:~/odometer_backup ~/odometer
administrator
home folder: sudo chown -R administrator:administrator /home/administrator/*
~/vbox_images
: scp -r amigo@hero2.local:~/vbox_images_backup ~/vbox_images
(Path of the files should be like: ~/vbox_images/windows/windows.XX
)sudo dpkg -i "XX.deb"
sudo apt-get install -f
to fix missing dependencies)administrator
): Open virtualbox and add the windows image.administrator
): Set correct network adapter for the virtualbox. Depending on the use of internal of external Wi-Fi.hsr-hmi
): In startup applications
disable Toyota head displaysudo rm /etc/apt/sources.list.d/*
networking
target: tue-get install networking
sudo reboot
sshhero1
does this)tue-env config ros-$TUE_ROS_DISTRO git-use-ssh
hero1
target: tue-get install hero1
tue-make
tue-robocup-set-timezone-home
)sudo systemctl disable docker.hsrb.*
sudo systemctl stop docker.hsrb.*
rosrun hero_bringup install_systemd_autostart_hero1
hero-display.AppImage
from https://github.com/tue-robotics/hero-display/releasessudo mv ./hero-display.AppImage /opt/tue/bin/hero-display.AppImage
It might be needed to create the target directory: sudo mkdir -p /opt/tue/bin
sudo chmod a+rwx /opt/tue/bin/hero-display.AppImage
/opt/tue/bin/hero-display.AppImage
as command.The following services are running on HERO1. Normally these are ran from the demo account:
hsrb_monitor
from hsrb_bringup
rosrun hsrb_bringup hsrb_roscore_service namespace:=/hero
)scp -r amigo@hero2.local:~/vbox_images_backup ~/vbox_images_backup
Install Ubuntu 20.04 Desktop:
Name: amigo
Hostname: hero2
Username: amigo
Change ethernet configuration to static IP via GUI. Set static IP for ipv4 with the following settings:
Address: 192.168.44.52
Netmask: 255.255.255.0
Gateway: 192.168.44.1
DNS servers: 192.168.44.1, 8.8.8.8, 8.8.4.4
Turn Airplane-mode on, make sure Wi-Fi and Bluetooth is disabled
Disable automatic updates in settings: Software & Updates > Updates:
Never
Display every two weeks
Never
Set Automatic suspend
to off in Power Settings, both for Battery Power
and Plugged in
Keep laptop on with lid closed: sudo vim /etc/systemd/logind.conf
, add HandleLidSwitch=ignore
and HandleLidSwitchExternalPower=ignore
Install tue-env (https://github.com/tue-robotics/tue-env) and install networking
target: tue-get install networking
Configure tue-env to use ssh for git: tue-env config ros-$TUE_ROS_DISTRO git-use-ssh
Reboot the laptop to activate ssh: sudo reboot
Use ssh with key forwarding to connect to the robot. This is needed to clone private repos. (sshhero2
does this)
Install hero2
target tue-get install hero2
Install the correct cuda-drivers
: sudo apt-get install cuda-drivers=545.23.08-1
Set keyboard shortcut Ctrl+Alt+T
to terminator
Restore any backed-up data
Setup MEGA sync via GUI
Build the software: tue-make
Install the background services: rosrun hero_bringup install_systemd_autostart_hero2
Reboot and ready to go!
The following services are running on HERO2. Normally these are ran from the demo account:
rgbd
shared memory server, so there is only one RGBD connection from HERO1 to HERO2upower_ros
to publish the battery state of HERO2To prevent HERO2 to shut down on unplugging the power supply, some power settings need to be changed. (https://askubuntu.com/a/1132068)
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type nothing
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-type nothing
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout 0
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-timeout 0
gsettings set org.gnome.settings-daemon.plugins.power lid-close-ac-action nothing
gsettings set org.gnome.settings-daemon.plugins.power lid-close-battery-action nothing
gsettings set org.gnome.settings-daemon.plugins.power critical-battery-action nothing
# Copy settings from amigo account to gdm account
OLD_IFS=${IFS}; IFS=$'\n'; for x in $(sudo -Hu amigo gsettings list-recursively org.gnome.settings-daemon.plugins.power); do eval "sudo -Hu gdm dbus-launch gsettings set ${x}"; done; IFS=${OLD_IFS}; unset OLD_IFS
Install Ubuntu 18.04 Desktop:
Name: demo
Hostname: demo-laptop
Username: demo
Setup Wi-Fi to AtHome(-2.4)
Install tue-env (https://github.com/tue-robotics/tue-env)
Install hero-demo-laptop
target: tue-get install hero-demo-laptop
Compile the software: tue-make
Set keyboard shortcut Ctrl+Alt+T
to terminator
Pin shortcuts of hero-dashboard
and hero-rviz
Disable laptop going to sleep and disable power button turning off the laptop
Copy ssh keys to HERO: hero-copy-my-id
HERO uses many of the Toyota launch structure. This requires compatibility of launch file arguments, frame names, namespacing, etc.. In case of incompatibility it can look like a local issue. To exclude any uncertainty a list of compatible package versions is maintained. There is a seperate list for the robot and dev pc's.
hero-start
contains a required node, which checks the currently installed set of Toyota software packages. In case of a package, which is not tracked, a warning is shown. In case of a tracked package with an incompatible version, an error is shown and hero-start
will terminate.
In case of an incompatible package version, you can add the new package version(s) to the list manually or run the update script with the add option: rosrun hero_bringup update_toyota_software_version --add
. In case this seems to run without any issues (node names, topic names, service names, frame names, etc.), you can open a PR to update the tracked compatibility list.
In case of any issues, the issues should be solved and the compatibility list should be reset. You can reset the compatible package version of the packages causing the issues manually or reset the entire list by running the update script with the 'reset' option: rosrun hero_bringup update_toyota_software_version --reset
. You can try to fix (small) issues yourself, but it is recommended to ask @MatthijsBurgh to fix these issues.