====== 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.