====== TurtleBot Lab Guide ======
===== Booking a Robot =====
* The booking system is available at https://cw.felk.cvut.cz/brute/student/reservation.php.
* Create a team of at most three students for the semestral work assignment in [[https://cw.felk.cvut.cz/brute|BRUTE]].
* Each team can book one robot for four 45min time slots.
* Each team can book the playground only for a single 45min time slot.
* Every two slots contain a 15min break, so that the slots are aligned with the school schedule hours.
* Note: All the robots are already reserved for ARO students during the ARO lab slots. There is no need to book the robots for your ARO lab slot, just take one.
===== Working with TurtleBots from local computer =====
* Login on a desktop computer.
* Create and build (re-use if you have some) your student workspace, e.g. ''~/workspace/aro'', extending parent ARO workspace ''/opt/ros/aro'' using Singularity image ''/opt/singularity/robolab/robolab_noetic_2023-05-02'':singularity shell /opt/singularity/robolab/robolab_noetic_2023-05-02
ws=~/workspace/aro
mkdir -p "${ws}/src"
cd "${ws}/src"
# Get and modify course-specific packages here.
cd "${ws}"
catkin init
catkin config --extend /opt/ros/aro
catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release
catkin build -c
source "${ws}/devel/setup.bash"
* Select a TurtleBot from ''turtle08'' to ''turtle13'', turn it on.
* Follow the general [[https://gitlab.fel.cvut.cz/robolab/robolab/-/tree/master/robolab_bringup|robolab guide]].
* Both the desktop and robot uses the same network home directory. The workspace you configured above is directly available on the robot.
* In a new terminal, SSH to your robot (use hostname of your robot), and run robot drivers from within your workspace:ssh -Y -C turtle08
singularity shell /opt/singularity/robolab/robolab_noetic_2023-05-02
#In case responsiveness of a robot is poor, you can try to run local copy of singularity image instead, first you have to mount local storage
$> mount /local
$> singularity shell /local/robolab_noetic_2023-05-02.simg
$> source /opt/ros/robolab/setup.bash
ws=~/workspace/aro
source "${ws}/devel/setup.bash"
export HOSTNAME=$(hostname)
roslaunch robolab_bringup turtlebot2.launch
* Visualize or process robot data (use hostname of your robot) from a desktop. Run on a desktop terminal:
singularity shell /opt/singularity/robolab/robolab_noetic_2023-05-02
ws=~/workspace/aro
source "${ws}/devel/setup.bash"
export ROS_MASTER_URI=http://turtle08:11311
rostopic list
rosrun rqt_tf_tree rqt_tf_tree
rosrun rqt_graph rqt_graph
rviz
roslaunch kobuki_keyop safe_keyop.launch # You may need to run this twice.
rosrun teleop_twist_keyboard teleop_twist_keyboard.py cmd_vel:=/cmd_vel_mux/safety_controller _repeat_rate:=10.0 _key_timeout:=1.0 _speed:=0.25 _turn:=0.5
* Try running your SLAM implementation: ''roslaunch aro_slam aro_slam.launch''
* Try controlling the robot with your ''aro_robocop'' package.
* Remap control topic: ''''
* Try your exploration pipeline once it's ready.
===== Working with TurtleBots from your computer =====
* Select a TurtleBot from ''turtle08'' to ''turtle13'', turn it on.
* In terminal(s), SSH to your robot (use IP address of your robot on local wifi):ssh -Y -C 192.168.210.28
-- for robot 8, last address segment is robot number + 20.
* Mount local storage, launch singularity on the robot and source ROS:
$> mount /local
$> singularity shell /local/robolab_noetic_2023-05-02.simg
$> source /opt/ros/robolab/setup.bash
* scp your workspace on the robot, *catkin clean* and *catkin build* and proceed as you would locally
{{ :courses:aro:tutorials:aro_turtlebots_ubuntu22.pdf |}}