Search
DOs:
vim
nano
git push
git pull
DON'Ts:
/local
find
ssh -X …
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.xml files from homeworks).
*_real.launch.xml
Visualization and teleoperation tools have to run on your laptop or lab desktop PC (rviz, *_rviz.launch.xml, real_robot_*_teleop.launch.xml, …).
rviz
*_rviz.launch.xml
real_robot_*_teleop.launch.xml
turtle01
turtle02
turtle08
turtle13
# on the desktop PC ssh -YC your_ctu_username@turtle08 # type in your CTU password
# on robot: git clone https://gitlab.fel.cvut.cz/robolab/deploy.git
# on robot: ~/deploy/scripts/start_apptainer_aro tmux # (the console prompt should start with ARO) ros2 run rmw_zenoh_cpp rmw_zenohd # keep zenohd running and open a new tmux tab with ''Ctrl-b+c'' or ''Ctrl-a+c'' ros2 launch aro_exploration real_robot.launch.xml # in a new tmux tab, start the base robot driver
# on robot: ros2 launch aro_exploration aro_localization_real.launch.xml run_driver:=false # in a new tmux tab, start the homework-specific launch file
# on the desktop PC # Replace turtleXY with the actual hostname of your turtlebot or with its IPv4 address export ZENOH_CONFIG_OVERRIDE='mode="client";connect/endpoints=["tcp/turtleXY:7447"]' ~/deploy/scripts/start_apptainer_aro # (the console prompt should start with ARO) ros2 topic list # List all topics ros2 run rqt_tf_tree rqt_tf_tree # Show TF frames ros2 run rqt_graph rqt_graph # Show all nodes and topics rviz2 # 3D visualizer ros2 launch aro_exploration aro_localization_rviz.launch.xml # 3D visualizer preconfigured for a specific homework ros2 launch aro_exploration real_robot_key_teleop.launch.xml # Control the robot via keyboard ros2 launch aro_exploration real_robot_joy_teleop.launch.xml # 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
ros2 launch aro_exploration aro_slam_real.launch.xml run_driver:=false reactive_control:=true # run on the robot!
SSID: turtlebots
password: TurtlesDC
ping turtle08
turtlebots
# on your laptop ssh -XYC your_ctu_username@turtle08
rsync
# 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_apptainer_aro tmux # (the console prompt should start with ARO) ros2 run rmw_zenoh_cpp rmw_zenohd # keep zenohd running and open a new tmux tab with ''Ctrl-b+c'' ros2 launch aro_exploration real_robot.launch.xml # in a new tmux tab, start the base robot driver ros2 launch aro_exploration aro_localization_real.launch.xml run_driver:=false # in a new tmux tab, start 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
hostname
ros2 topic list
export ZENOH_CONFIG_OVERRIDE='mode="client";connect/endpoints=["tcp/turtleXY:7447"]'
ros2 daemon stop
/etc/resolv.conf
ls -la /etc/resolv.conf
cat /etc/resolv.conf
~/.tmux.conf
set-option -g default-shell /bin/bash
start_apptainer_aro