MRC/Tutorials/Simple C++ programs: Difference between revisions

From Control Systems Technology Group
Jump to navigation Jump to search
m Slight sentence structure changes
Change syntax add links to examples
Line 1: Line 1:
So far, we have seen how to create a simple C++ project, run the simulator, show some visualizations and drive the simulated robot around using the keyboard. That's nice and all, but we don't want to manually drive around a virtual robot. We want an autonomous, real robot!
= Overview =
So far, we have seen how to create a simple C++ project, run the simulator, visualize data, and manually control the simulated robot using the keyboard. While this is a great starting point, the ultimate goal is to develop an autonomous, real-world robot!


As was already stated during the lecture, we won't expose you to the (sometimes somewhat frustrating) low-level details of connecting software to hardware. Instead, we provide you with an abstraction layer that can be easily used within your program to read sensor data and send goals to the base. Under the hood this layer communicates using ROS, but unless things go horribly wrong you won't have to worry about that.
== Abstraction Layer ==
As mentioned in the lecture, we won't expose you to the (sometimes somewhat frustrating) low-level details of connecting software to hardware. Instead, we provide an abstraction layer that allows you to easily access sensor data and send movement commands to the robot. Under the hood this layer communicates using ROS, but unless things go horribly wrong you won't have to worry about that.


We advise you to look into the following topics as they might be useful for designing your robotic software.
== Key Topics to Explore ==
To design efficient robotic software, we recommend familiarizing yourself with the following concepts:


* Loops
* '''Loops:''' Essential for continuous execution and iterative processing.
* Robot movement
* '''Robot Movement:''' Understanding how to send motion commands programmatically.
* Sensor inputs
* '''Sensor Inputs:''' Learning how to interpret data from various sensors.


Furthermore it will be useful to familiarise yourself with the C++ syntax. You can find many useful and up-to-date resources online.
Examples of these topics can be found in the wiki page related to the [[MRC/Tutorials/The EMC environment|EMC environment.]] '''Make sure that you complete the tutorial before continuing from this page!'''
 
== Learning C++ ==
Since your programs will be written in '''C++''', we advise you to familiarize yourself with its syntax and best practices. There are many up-to-date resources available online that can help you get started.
 
By mastering these topics, you'll be well on your way to developing intelligent, autonomous robotic systems!

Revision as of 10:06, 3 April 2025

Overview

So far, we have seen how to create a simple C++ project, run the simulator, visualize data, and manually control the simulated robot using the keyboard. While this is a great starting point, the ultimate goal is to develop an autonomous, real-world robot!

Abstraction Layer

As mentioned in the lecture, we won't expose you to the (sometimes somewhat frustrating) low-level details of connecting software to hardware. Instead, we provide an abstraction layer that allows you to easily access sensor data and send movement commands to the robot. Under the hood this layer communicates using ROS, but unless things go horribly wrong you won't have to worry about that.

Key Topics to Explore

To design efficient robotic software, we recommend familiarizing yourself with the following concepts:

  • Loops: Essential for continuous execution and iterative processing.
  • Robot Movement: Understanding how to send motion commands programmatically.
  • Sensor Inputs: Learning how to interpret data from various sensors.

Examples of these topics can be found in the wiki page related to the EMC environment. Make sure that you complete the tutorial before continuing from this page!

Learning C++

Since your programs will be written in C++, we advise you to familiarize yourself with its syntax and best practices. There are many up-to-date resources available online that can help you get started.

By mastering these topics, you'll be well on your way to developing intelligent, autonomous robotic systems!