This is a repository made by MU Robotics that's dedicated to educating people on the software development aspect of robotics that's seen within higher level devices. These topics will include robotic movements, sensing, navigation and more with an introduction and tutorial to each section within the branch documentation.
With our tutorials we hope to fulfill several goals to ensure our tutorials can maintain a sufficient level of quality and engagement with those who are willing to learn, this includes:
-
Relevant Topics: Our focus is to ensure what we aspire to teach you will directly benefit yourselves within your future with robotics. Within this pursuit, any technology or topic that will not directly benefit your experience within the future will be updated or removed.
-
Practical Exercises: To show the practical application of what we're learning, we've included the use and implementation of a simulation software to allow the testing and demonstration of our code.
-
Ease of Use: These tutorials are intended for those who are new to robotics or are beginners with some experience in programming. Our goal is to teach you the software development aspect of robotics, without taking away from your experience with excess technology or topics. Additional topics will be addressed in future tutorials and additional technology added to the course is only present to help remove aspects not relevent to the current topic.
-
Relevant Technology: In the pursuit of a relevant education, the technology that we will use and teach within these tutorials have been selected as they play a major role within the development of industry-grade robots.
-
Accessible Technology: In addition to the pursuit of relevant technology, the software that we use will be free and accessible to everyone. With the modern culture of open source robotics, the only limitation to creation should be learning.
Throughout these tutorials we'll be developing and testing using these technologies:
-
Robot Operating System (ROS, version Melodic): ROS is an open source framework for developers to build robots with. Its benefits include many development libraries, tools and standards that help remove many trivial and niche aspects that can take away from software development of robots.
-
Gazebo (version 9): Made with ROS in mind, Gazebo is an open source simulation software that allows for the testing and development of robots within a local environment.
-
Docker and Docker-Compose: While we will use this technology, it will only serve to remove the package management aspects of software development, as we will address those topics within an intermediate course.
-
Ubuntu Virtual Machine (Optional, setup included): While not required for the tutorials, a Ubuntu virtual machine will allow for improved graphical performance of our simulation software, this is due to the difference in protocol between VNC and Gazebo Client communication.
If you are experiencing technical difficulties throughout these courses, you may report these on our repository issues page. We'll attempt to keep an active eye on issues that are presented and help provide some guidence to these issues, we want to actively encourge the reporting of issues to better improve the learning experience for everone. Additionally, if you have any questions regarding the completion of these tutorials, be sure to ask fellow MU Robotic members for any questions or help.
To begin the series of tutorials, be sure to select a new branch to change your lessons, our next section will begin us on how to setup our development environment showing two methods of how we can follow through wih our course. Here is a link to our tutorials.