MRC/Tutorials: Difference between revisions

From Control Systems Technology Group
Jump to navigation Jump to search
No edit summary
No edit summary
 
(11 intermediate revisions by 4 users not shown)
Line 1: Line 1:
In here, one can find the programs that are going to be used for this course and the proper way of operating them. If one encounters a problem/error, this is typically resolved in the tutorial. If not, then one can also consult the [[Embedded_Motion_Control_2018/FAQ | FAQ]].
During the Mobile Robot Control (MRC) course you will encounter many tools, systems and concepts that you are currently unfamiliar with. This may be daunting at first, but soon you will notice the strengths of each of the tools and find out how they work together to allow you to program a real, physical robot. The following tutorials are aimed at getting you up speed with these tools as fast as possible.


# [[ MRC_2020/Tutorials/Introduction | Introduction ]]
Let's start with an overview of the tools we will be using and the roles they play within your project:
# [[ Embedded Motion Control/Tutorials/Installing Ubuntu | Installing Ubuntu ]]
# [[ Embedded Motion Control/Tutorials/Customizing Ubuntu | Customizing Ubuntu ]]
# Do the following C++ tutorials:
## [http://www.cplusplus.com/doc/tutorial/ cplusplus.com]: up to and including '''Name visibility'''
## [http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-096-introduction-to-c-january-iap-2011/lecture-notes/ MIT's Introduction to C++]: up to and including '''Classes'''
#* Remarks:
#** For now, use a simple editor such as ''gedit'' (the ubuntu version of Notepad). We will install a more advanced editor (IDE - Integrated Development Environment) later.
#** Once you have saved your C++ program (e.g. as ''example.cpp''), it can be compiled from a terminal using:<pre>g++ example.cpp -o example</pre>and run with<pre>./example</pre>
# [[ MRC/Tutorials/Installing the MRC environment | Installing the MRC environment ]]
# [[ MRC/Tutorials/Setting up your project | Setting up your project ]]
# [[ MRC/Tutorials/Setting up an IDE | Setting up an IDE ]]
# [[ MRC/Tutorials/Setting_up_the_PICO_simulator| Setting up the PICO simulator ]]
# [[ MRC/Tutorials/Towards an autonomous robot | Towards an autonomous robot ]]
# [[ MRC/Tutorials/Obtaining laser, odometry, and control effort data | Obtaining laser, odometry, and control effort data ]]
# [[ MRC/Tutorials/Sharing your project through git | Sharing your project through git ]]
# [[ MRC/Using_Pico | Testing on the real robot and recording data]]
# [[ MRC/FullExample | Full Example ]]
# [[ MRC/OpenCV | Additional OpenCV ]]
# [[ MRC/WallfollowerCode | Wall following code example ]]
# [[ MRC/Tutorials/JSON_Parsing| JSON Parsing ]]


<!--
* Ubuntu: the Operating System we will be using. Ubuntu is a popular Linux distribution.
# .. More tutorials coming up ..!
* C++: is the programming language we will be using. This means that your program, or code, will be written in C++.
* git: is a software versioning and revision control system. You will use it to share your project code between different group members, while maintaining a file version history. Think of it as Dropbox.
* VSCode: an Integrated Development Environment (IDE) for C++. All you need to create a C++ program is a simple text editor and a C++ compiler. However, it can become difficult to manage large projects, trace back where compile errors are coming from, etc. Think of VSCode as a very advanced text editor that understands C++ and makes programming C++ a lot nicer.




# [[ Embedded Motion Control/Tutorials/Using Subversion to share and manage your project | Using Subversion to share and manage your project ]]
Tutorials
# [[ Embedded Motion Control/Tutorials/Building a ROS package | Building a ROS package ]]
# On the [http://wiki.ros.org/ROS/Tutorials ROS tutorials page], do tutorials 5 ([http://wiki.ros.org/ROS/Tutorials/UnderstandingNodes Understanding ROS Nodes]) to 17 ([http://wiki.ros.org/ROS/Tutorials/Recording%20and%20playing%20back%20data Recording and playing back data]), but '''keep this in mind''':
#* If you can choose between ''rosbuild'' and ''catkin'', select '''rosbuild'''
#* If you can choose between ''C++'' and ''Python'', select '''C++'''
#* Whenever the tutorial refers to the ''beginners_tutorial'' ROS package, use the name of the package you created above instead (that is, ''beginners_tutorial_<YOUR_NAME>''). Of course, you can use TAB completion when possible.
#* The path to your ROS package differs from the path in the ROS tutorials
# [[ Embedded Motion Control/Tutorials/Setting up an IDE | Setting up an IDE ]]
# [[ Embedded Motion Control/Tutorials/Setting up the PICO simulator | Setting up the PICO simulator ]]


# [[ Embedded Motion Control/Tutorials/Creating your first PICO-related ROS package | Creating your first PICO-related ROS package ]]
# Ubuntu
## [[MRC/Tutorials/Installing Ubuntu|Ubuntu Installation]]
## [[MRC/Tutorials/The terminal|The terminal]]
## [[MRC/Tutorials/Installation of EMC environment|Installation of EMC environment]]
# Using the simulator
## [[MRC/Tutorials/Starting the simulator|Starting the simulator]]
## [[MRC/Tutorials/Controlling the robot|Controlling the robot]]
# Your project
## [[MRC/Tutorials/Setting up and building your project|Setting up and building your project]]
## [[MRC/Tutorials/The EMC framework|The EMC framework]]
## [[MRC/Tutorials/Cmake|Cmake]]
# [[MRC/Tutorials/Simple C++ programs|Simple C++ programs]]
# [[MRC/Tutorials/Git|Git]]
# [[MRC/Tutorials/Vscode|Setting up VScode]]


Learn about ROS concepts on the ROS tutorial page. Start [http://wiki.ros.org/ROS/Tutorials/UnderstandingNodes here] and continue up until the tutorial '''Using RosEd'''
 
# [[ Embedded Motion Control/Tutorials/Understanding ROS nodes | Understanding ROS nodes ]]
Documentation
# [[ Embedded Motion Control/Tutorials/Understanding ROS topics | Understanding ROS topics ]]
 
# [[ Embedded Motion Control/Tutorials/Understanding ROS services and parameters | Understanding ROS services and parameters ]]
The goal of the documentation is to guide as a reference to use the simulator and EMC environment. Use them when you need them.
# [[ Embedded Motion Control/Tutorials/Using rqt_console and roslaunch | Using rqt_console and roslaunch  ]]
 
# [[ Embedded Motion Control/Tutorials/Using rosed to edit files in ROS | Using rosed to edit files in ROS  ]]
# Using the simulator
# [[ Embedded Motion Control/Tutorials/Creating a ROS msg and srv | Creating a ROS msg and srv  ]]
## [[MRC/Tutorials/Using a custom simulator map|Using a custom simulator map]]
# [[ Embedded Motion Control/Tutorials/Writing a simple publisher and subscriber | Writing a simple publisher and subscriber ]]
## [[MRC/Tutorials/Adding clutter and simulating wheelslip|Adding clutter and simulating wheelslip]]
# [[ Embedded Motion Control/Tutorials/Examining the simple publisher and subscriber | Examining the simple publisher and subscriber ]]
## [[MRC/Tutorials/Adding doors|Adding doors]]
# [[ Embedded Motion Control/Tutorials/Writing a simple service and client | Writing a simple service and client ]]
# [[MRC/Tutorials/The EMC environment|The EMC environment]]
# [[ Embedded Motion Control/Tutorials/Examining the simple service and client | Examining the simple service and client ]]
# [[ Embedded Motion Control/Tutorials/Recording and playing back data | Recording and playing back data ]]
-->

Latest revision as of 13:14, 31 January 2025

During the Mobile Robot Control (MRC) course you will encounter many tools, systems and concepts that you are currently unfamiliar with. This may be daunting at first, but soon you will notice the strengths of each of the tools and find out how they work together to allow you to program a real, physical robot. The following tutorials are aimed at getting you up speed with these tools as fast as possible.

Let's start with an overview of the tools we will be using and the roles they play within your project:

  • Ubuntu: the Operating System we will be using. Ubuntu is a popular Linux distribution.
  • C++: is the programming language we will be using. This means that your program, or code, will be written in C++.
  • git: is a software versioning and revision control system. You will use it to share your project code between different group members, while maintaining a file version history. Think of it as Dropbox.
  • VSCode: an Integrated Development Environment (IDE) for C++. All you need to create a C++ program is a simple text editor and a C++ compiler. However, it can become difficult to manage large projects, trace back where compile errors are coming from, etc. Think of VSCode as a very advanced text editor that understands C++ and makes programming C++ a lot nicer.


Tutorials

  1. Ubuntu
    1. Ubuntu Installation
    2. The terminal
    3. Installation of EMC environment
  2. Using the simulator
    1. Starting the simulator
    2. Controlling the robot
  3. Your project
    1. Setting up and building your project
    2. The EMC framework
    3. Cmake
  4. Simple C++ programs
  5. Git
  6. Setting up VScode


Documentation

The goal of the documentation is to guide as a reference to use the simulator and EMC environment. Use them when you need them.

  1. Using the simulator
    1. Using a custom simulator map
    2. Adding clutter and simulating wheelslip
    3. Adding doors
  2. The EMC environment