This page is located in archive. Go to the latest version of this course pages. Go the latest version of this page.

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

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
    – 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/turtlebots.txt · Last modified: 2023/05/25 13:00 by nekovfra