====== Lab05 - Mobile Robot Exploration ====== ^ Motivations and Goals ^ | Become familiar with frontier based exploration | | Become familiar with the ROS framework | ^ Tasks ([[courses:b4m36uir:internal:instructions:lab05|teacher]]) ^ | [[courses:b4m36uir:hw:t1e-expl|T1e-expl]] **(3 Points)** Implement a frontier detector | ^ Projects ^ | [[courses:b4m36uir:projects:p1-expl|P1-expl]] **(15 Points)** Implement and integrate ROS nodes to solve the exploration task | ^ Lab resources ^ | {{ :courses:b4m36uir:hw:uir-t1e-expl.zip |T1e-expl resource package}} | | {{ :courses:b4m36uir:hw:uir-p1-expl.zip |P1 resource package}} | \\ ===ROS=== The Robot Operating System (ROS) is a set of open-source software libraries designed to build and connect robotic applications. \\ ==Setup== To run the ROS nodes, it is strongly recommended to use either Ubuntu 16 with ROS Kinetic or Ubuntu 18 with ROS Melodic. Detailed installation instructions may be found on ROS web pages [[http://wiki.ros.org/kinetic/Installation/Ubuntu|ROS Kinetic]], [[http://wiki.ros.org/melodic/Installation/Ubuntu|ROS Melodic]]. On the lab computers, ROS Kinetic is already preinstalled but two more libraries need to be installed before using it. pip install rospkg pip install netifaces Moreover, it is necessary to source the main ROS setup script, which has to be done in each new terminal instance. Thus, it is recommended to add the following source command in your ''~/.bashrc'' file echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc or alternatively when running ROS Meloding echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc Finally, on Ubuntu 16 the STDR simulator is installed using sudo apt-get install ros-kinetic-stdr-* On Ubuntu 18, STDR has to be compiled from source, which can be found at [[https://github.com/stdr-simulator-ros-pkg/stdr_simulator]]. \\ ==ROS Basics== On Ubuntu 16 and 18 the ROS workspace is created as follows cd ~/ mkdir rds_ws mkdir rds_ws/src cd rds_ws catkin_make # source the workspace cd devel devel_path=$(pwd) echo "source $devel_path/setup.bash" >> ~/.bashrc source setup.bash The main study material for ROS is [[http://wiki.ros.org/ROS/Tutorials]]. A special attention should be given to ROS message-based communication presented in [[http://wiki.ros.org/ROS/Tutorials/WritingPublisherSubscriber%28python%29]].