MRC/Tutorials: Difference between revisions

From Control Systems Technology Group
Jump to navigation Jump to search
No edit summary
(add frame transformation tutorial)
Tag: 2017 source edit
(11 intermediate revisions by 3 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 ]]
# .. More tutorials coming up ..!
<!--
# [[ 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.
* 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


# [[ Embedded Motion Control/Tutorials/Using Subversion to share and manage your project | Using Subversion to share and manage your project ]]
# Ubuntu
# [[ Embedded Motion Control/Tutorials/Building a ROS package | Building a ROS package ]]
## [[MRC/Tutorials/Installing Ubuntu|Ubuntu Installation]]
# 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''':
## [[MRC/Tutorials/The terminal|The terminal]]
#* If you can choose between ''rosbuild'' and ''catkin'', select '''rosbuild'''
## [[MRC/Tutorials/Installation of EMC environment|Installation of EMC environment]]
#* If you can choose between ''C++'' and ''Python'', select '''C++'''
# Using the simulator
#* 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.
## [[MRC/Tutorials/Starting the simulator|Starting the simulator]]
#* The path to your ROS package differs from the path in the ROS tutorials
## [[MRC/Tutorials/Controlling the robot|Controlling the robot]]
# [[ Embedded Motion Control/Tutorials/Setting up an IDE | Setting up an IDE ]]
# Your project
# [[ Embedded Motion Control/Tutorials/Setting up the PICO simulator | Setting up the PICO simulator ]]
## [[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]]


# [[ Embedded Motion Control/Tutorials/Creating your first PICO-related ROS package | Creating your first PICO-related ROS package ]]


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'''
Documentation
# [[ Embedded Motion Control/Tutorials/Understanding ROS nodes | Understanding ROS nodes ]]
 
# [[ Embedded Motion Control/Tutorials/Understanding ROS topics | Understanding ROS topics ]]
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/Understanding ROS services and parameters | Understanding ROS services and parameters ]]
 
# [[ Embedded Motion Control/Tutorials/Using rqt_console and roslaunch | Using rqt_console and roslaunch  ]]
# Using the simulator
# [[ Embedded Motion Control/Tutorials/Using rosed to edit files in ROS | Using rosed to edit files in ROS  ]]
## [[MRC/Tutorials/Using a custom simulator map|Using a custom simulator map]]
# [[ Embedded Motion Control/Tutorials/Creating a ROS msg and srv | Creating a ROS msg and srv  ]]
## [[MRC/Tutorials/Adding clutter and simulating wheelslip|Adding clutter and simulating wheelslip]]
# [[ Embedded Motion Control/Tutorials/Writing a simple publisher and subscriber | Writing a simple publisher and subscriber ]]
## [[MRC/Tutorials/Adding doors|Adding doors]]
# [[ Embedded Motion Control/Tutorials/Examining the simple publisher and subscriber | Examining the simple publisher and subscriber ]]
# [[MRC/Tutorials/The EMC environment|The EMC environment]]
# [[ Embedded Motion Control/Tutorials/Writing a simple service and client | Writing a simple service and client ]]
# [[MRC/Tutorials/Frame transformations| Frame transformations]]
# [[ 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 ]]
-->

Revision as of 14:35, 25 March 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
  3. Frame transformations