DOs:
vim
or nano
(unless you're a Vim master, this is mostly good for hotfixes).
git push
on your computer and git pull
on the robot).
DON'Ts:
/local
folder on the robots. find
commands in the home directory of the robot. If you call it on a folder with many files, it literally kills the wifi for everybody.ssh -X …
on the robot and run the IDE in there). The user experience from an IDE running over X11 tunnel is very bad. There might be exceptions, i.e. if you want to put a breakpoint in some code running on the robot, you might have to run the IDE directly on the robot in this way.The technical solution allowing to run a fully remotely managed fleet of robots and desktops on the very slow and unreliable network connection is actually quite interesting. If you're interested in details, read Turtlebot technical details (Czech only)
If you're wondering where you should run which part of the code, the rule is quite simple.
Drivers of the robot and sensor processing has to run on the robot (all the *_real.launch
files from homeworks).
Visualization and teleoperation tools have to run on your laptop or lab desktop PC (rviz
, *_rviz.launch
, real_robot_*_teleop.launch
, …).
turtle01
, turtle02
, turtle08
-turtle13
, turn it on (first the base, then the computer).
# on the desktop PC ssh -YC your_ctu_username@turtle08
# on robot: git clone https://gitlab.fel.cvut.cz/robolab/deploy.git
# on robot: ~/deploy/scripts/start_singularity_aro tmux # (the console prompt should start with AROSingularity) roscore # keep roscore running and open a new tmux tab with ''Ctrl-b+c'' or ''Ctrl-a+c'' roslaunch aro_exploration real_robot.launch # in a new tmux tab, start the base robot driver
# on robot: roslaunch aro_exploration aro_localization_real.launch run_driver:=false # in a new tmux tab, star the homework-specific launch file
# on the desktop PC export ROS_MASTER_URI=http://turtle08:11311 ~/deploy/scripts/start_singularity_aro # (the console prompt should start with AROSingularity) rostopic list # List all topics rosrun rqt_tf_tree rqt_tf_tree # Show TF frames rosrun rqt_graph rqt_graph # Show all nodes and topics rviz # 3D visualizer roslaunch aro_exploration aro_localization_rviz.launch # 3D visualizer preconfigured for a specific homework roslaunch aro_exploration real_robot_key_teleop.launch # Control the robot via keyboard roslaunch aro_exploration real_robot_joy_teleop.launch # Control the robot via the connected gamepad code . # Start VSCode inside the Singularity container pycharm # Start Pycharm inside the Singularity container subl # Start Sublime editor inside the Singularity container
aro_reactive_control
package, e.g. roslaunch aro_exploration aro_slam_real.launch reactive_control:=true
.
turtle01
, turtle02
, turtle08
-turtle13
, turn it on (first the base, then the computer).
SSID: turtlebots
, password: TurtlesDC
.
ping turtle08
.
turtlebots
wifi.
# on your laptop ssh -XYC your_ctu_username@turtle08
rsync
to synchronize files from your computer to the robot: # on your laptop rsync -aAP /your/path/to/workspace/src/ your_ctu_username@turtle08:workspace/src # The ending / after the first path is important, as well as not having a / after the 2nd path
# on robot ~/deploy/scripts/start_singularity_aro tmux # (the console prompt should start with AROSingularity) roscore # keep roscore running and open a new tmux tab with ''Ctrl-b+c'' or ''Ctrl-a+c'' roslaunch aro_exploration real_robot.launch # in a new tmux tab, start the base robot driver roslaunch aro_exploration aro_localization_real.launch run_driver:=false # in a new tmux tab, star the homework-specific launch file
To configure passwordless login to the robots, run the following commands on the desktop or on your laptop:
ssh-keygen # Only if you don't yet have an SSH key yet (stored in ~/.ssh/id_rsa) ssh-copy-id your_ctu_username@turtle08
ping my-computer-hostname
(outside of Singularity). You can figure out the hostname of your computer e.g. by calling command hostname
on your laptop. If the ping command does not succeed, disable wifi on your computer, connect cable, wait a few minutes and reboot your computer. This should resolve the issue.
rostopic list
is almost empty or cannot communicate with master):
export ROS_MASTER_URI=http://turtle08:11311
(with the correct turtle name) in the console where you try to communicate with the robot.
turtlebots
wifi.
ping turtle08
(do that from outside the Singularity in a normal system terminal).
/etc/resolv.conf
file. Run ls -la /etc/resolv.conf
. The file should be a symbolic link. If it's not, you have configured your system do use a custom DNS server and you have to revert this configuration. If the file is a symlink, try cat /etc/resolv.conf
. If it contains entries like 127.0.1.1, 127.0.0.1 or 192.168.65.5, that's okay. If it contains other entries, check your wired or wireless connection settings and configure it for automatic DNS.
~/.tmux.conf
)
set-option -g default-shell /bin/bash
start_singularity_aro
fails with various error messages like “image format not recognized” and similar.