====== 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 =====
* 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_2022-03-31'':singularity shell /opt/singularity/robolab/robolab_noetic_2022-03-31
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_2022-03-31
#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_2022-03-31.simg
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_2022-03-31
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.