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 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.
  • 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: <remap from="cmd_vel" to="/cmd_vel_mux/safety_controller"/>
  • Try your exploration pipeline once it's ready.
courses/b3m33aro/tutorials/turtlebots.txt ยท Last modified: 2022/04/25 15:31 by himmebed