This page is located in archive.

B3M33MKR: Mobile and and Collective Robotics (winter term 2020/21)

Seminars organization

  • Students are expected to work in teams by two (exceptions allowed after consultation with the teacher).
  • Each group is expected to work with a real robot.
  • Majority of the work is planned as an individual work of the group (you can work anytime the room is available).
  • Students are expected to ask - ask early, ask often.
  • Teachers will be personally available during the regularly scheduled hours, otherwise over the e-mail (but don't expect answers in order of minutes)
  • Charge the robot every time you stop working with it.
  • Keep your source code on a version-control system (e.g. git). This way, you can remove commented-out parts of your source code that you'd like to keep “just in case”, the version control system will keep a trace of it.



The tasks will be assessed at the end of the semester but can be assessed sooner if the team wishes so.

Getting the seminar credit

To get the seminar credit, student must:

  • Participate and actively work at all seminars (up to 2 absences without excuse will be tolerated),
  • Create working algorithms solving *all* the tasks,
  • Present a well-written and documented source code,
  • Understand the presented solution and source code (each team member).

How-To Setup your ROS Environment in Singularity

  • Log into a PC with the diskless operating system, either physically on one of the lab's PC or remotely with

ssh {username}@turtle.felk.cvut.cz. On these systems, your personal NFS folder will be mounted as $HOME. Before you can log remotely, you need to set a password through this page.

  • singularity shell /opt/singularity/robolab/melodic ros.
  • source /opt/ros/mkr/setup.bash.
  • export ROS_WORKSPACE=$HOME/ros_mkr_ws && mkdir -p $ROS_WORKSPACE/src && cd $ROS_WORKSPACE && catkin init && catkin build.
  • cd $ROS_WORKSPACE/src && git clone https://gitlab.ciirc.cvut.cz/imr/mkr/ros_skeletons.git && catkin build

How-To Use The Real Robots

To use the turtlebots:

  • Switch on the base and the onboard PC.
  • Connect your PC to the wifi e210bot.
  • Connect to the robot with ssh usermap_username@192.168.210.(20+turtlebot_number).
  • singularity instance start /opt/singularity/robolab/melodic ros.
  • tmux.
  • In the each new tmux window singularity shell instance://ros then source $ROS_WORKSPACE/devel/setup.bash.
  • In the first tmux window roscore. roslaunch itself would run roscore if no ROS master is detected but this master will be killed when the roslaunch command finishes (usually with Ctrl+C) and nodes such as rqt or rviz would have to be closed as well. It is then better to run roscore separately.
  • In the second tmux window roslaunch robolab_bringup turtlebot2.launch camera:=false.

How-To Use the Simulated Robots

  • singularity instance start /opt/singularity/robolab/melodic ros.
  • singularity shell instance://ros then source $ROS_WORKSPACE/devel/setup.bash.

Simulator flatland

  • roslaunch simulator_e130 two_turtlebots_in_flatland.launch. For the multi-robot planning task, you can also launch roslaunch multi_robot_planner two_turtlebots_in_flatland.launch, which also launches the planning node (multi_robot_planner) and the nodes that execute the trajectories (/turtle0/coordinator and /turtle1/coordinator).

Simulator stdr

  • roslaunch simulator_e130 simulator.launch. To be on the safe side, it's better to launch the simulation server and possibly the GUI first (roslaunch simulator_e130 server.launch, roslaunch simulator_e130 gui.launch) and then the robots (roslaunch simulator_e130 robots.launch). This avoid missing robots, especially with more than two robots.
  • The node robot_coordination/robot_node can be used to drive the robot, it basically accepts a trajectory as input through services and drives the robot along the trajectory. Launch one robot_coordination/robot_node for each robot: e.g. ROS_NAMESPACE=/robot1 rosrun robot_coordination robot_node __name:=controller.
  • Your node must connect to the appropriate services and send the trajectories. An example is given in Python, robot_coordination/example_robot_control.py, and can be launched e.g. with rosrun robot_coordination example_robot_control.py _server_namespace:=/robot0.

How-To Work Remotely

- ssh {usermap_username}@turtle.felk.cvut.cz. On this system, your personal NFS folder will be mounted as $HOME. Before you can log remotely, you need to set a password through this page. - alternatively, you can remotely start one of the lab's computer and log to it.

  1. Start the computer with ssh student@turtle.felk.cvut.cz (ask for password if you forgot it) and follow the instructions
  2. ssh {usermap_username}@turtle.felk.cvut.cz
  3. ssh {usermap_username}@desktop01 if you started desktop01.
  4. Please then turn off the computer with the shell command poweroff when you are done.

You can also load a remote desktop to use graphical applications. Only physical computers can be used for this. More information on this page:

- ssh student@turtle.felk.cvut.cz and follow the instructions. - tmux if you want to be able to open further text shells - remote-desktop start xpra, note the actual used display (e.g. ':1') - On your PC, start Xpra. Choose the method SSH→SSH (not available on Xpra version 2), username: usermap's username, proxy: turtle.felk.cvut.cz, hostname: desktop-01 or the one where you called remote-desktop.

Back to the course page.

courses/b3m33mkr/cviceni.txt · Last modified: 2020/12/09 13:55 by ecorcgae