All Projects → socrob → autonomous_systems

socrob / autonomous_systems

Licence: other
Material used for learning ROS and robotics, as part of the Autonomous Systems course at Instituto Superior Tecnico

Programming Languages

shell
77523 projects
python
139335 projects - #7 most used programming language
CMake
9771 projects
TeX
3793 projects
C++
36643 projects - #6 most used programming language
matlab
3953 projects

Projects that are alternatives of or similar to autonomous systems

edgeofchaos
This repository is not maintained anymore. If I have any significant contributions, I usually do a PR for the Faust libraries. This repository contains the Faust libraries for sound and information processing that I use to implement my music complex adaptive systems.
Stars: ✭ 51 (+70%)
Mutual labels:  autonomous-systems
awesome-mobile-robotics
Useful links of different content related to AI, Computer Vision, and Robotics.
Stars: ✭ 243 (+710%)
Mutual labels:  autonomous-systems
Formula-Student-Driverless-Simulator
A virtual world where Autonomous Systems from different Formula Student teams can compete in time-trial challenges
Stars: ✭ 144 (+380%)
Mutual labels:  autonomous-systems
aas-course-notes
This repository contains my notes for the University of Bologna's Autonomous and Adaptive Systems course, held by prof. Mirco Musolesi.
Stars: ✭ 17 (-43.33%)
Mutual labels:  autonomous-systems
FusionAD
An open source autonomous driving stack by San Jose State University Autonomous Driving Team
Stars: ✭ 30 (+0%)
Mutual labels:  autonomous-systems
AI-Lab
🔬 Absolutely comfort lab for me to work around with my own AIs and to empirically observe how powerful and impactful these technologies are. I do love these technologies!
Stars: ✭ 19 (-36.67%)
Mutual labels:  autonomous-systems
pybot
Research tools for autonomous systems in Python
Stars: ✭ 60 (+100%)
Mutual labels:  autonomous-systems

Autonomous Systems

This repository holds code and resources for the Autonomous Systems course that takes place at Instituto Superior Tecnico, Lisboa.

For this course you will need to have a machine running Ubuntu, ROS and some other things, please follow the instructions bellow before the laboratory classes begin.

The supported distribution is ROS Kinetic on Ubuntu 16.04, although both ROS Melodic and ROS Noetic on Ubuntu 18.04 and 20.04 should also work. It is preferable to use ROS Kinetic, but if for some reason you already have one of the other Ubuntus you can try that distribution, at your own risk. If there is a problem of incompatibility, you might have to change to ROS Kinetic.

Ubuntu instalation

For the first classes you may use a virtual machine, but it is advisable, at some point, to use a native instalation of Ubuntu 16.04 64-bit in order to prevent unwanted issues that may arise from the use of a virtual machine.

ROS Kinetic installation

Install git on your system:

    sudo apt-get install git

It is advisable to go for the Desktop-Full Instalation of ROS, please go through the instructions in the following link: http://wiki.ros.org/kinetic/Installation/Ubuntu

Git and Repository setup

Navigate to your home folder:

    cd $HOME

Clone the repository:

    git clone https://github.com/socrob/autonomous_systems.git

Whenever the repo is updated you can get the latest updates with:

    cd $HOME/autonomous_systems
    git pull origin master

(Optional) Terminator is a usefull tool when you want to have several terminals open. If you want to install it just run:

    sudo apt-get install terminator

Setup catkin workspace and scripts structure (one time only)

A partial documentation of this can be found here and here

  1. Create a folder for your ros workspace in your system:

     mkdir -p ~/catkin_ws/src
    
  2. Install python catkin tools (to be able to compile with the new catkin build system, instead of catkin_make which is the old one)

     sudo apt-get install python-catkin-tools
    
  3. Source (enable) ROS on your system (only one time, this line should not be there on your .bashrc as it will be bashed by the scripts structure)

     source /opt/ros/kinetic/setup.bash
    
  4. Compile your workspace:

     cd ~/catkin_ws && catkin build
    
  5. Add lines of code to your .bashrc to source the scripts configuration files

     echo "# personal config starts here" >> ~/.bashrc && echo "source ~/scripts/permanent.sh" >> ~/.bashrc
    
  6. Copy scripts folder to your home directory:

     cp -r ~/autonomous_systems/resources/scripts $HOME
    
  7. Source your new scripts structure:

     source ~/.bashrc
    

Lab1

Lab1 will give you some concepts on ROS, and how to use it. Please open lab1 folder to access the lab slides.

Lab2

Lab2 has 2 components, a simulation focused part and the real robot part. Please open lab2-simulation or lab2-real-robot folders to access the content and follow the instructions for the practical exercise. There is README.md file inside. You should follow the instructions in the Before the Lab section so you can perform the tasks during the lab. This lab will be more hands on than the previous, and you are expected to experiment ROS yourself. If you can, perform all the tasks in lab2-simulation by yourself so in the classroom you can present your doubts and have time to try the real robot instructions.

Questions

Please post your questions under:

    https://github.com/socrob/autonomous_systems/issues

By creating an issue, so that we can all benefit from the answers.

Thanks!

Extra Resources

Wiki with summarized information about system setup, git useful commands and information about the robots

Learn how to program in python, google developers nice online course

ROS python example on how to publish / subcribe from code

ROS beginner tutorials

Nice ROS online course from ETH Zurich see their youtube lectures here

ROS tf tranformations library package

ROS tf tutorials

ROS AMCL package Adaptive Monte Carlo localization

ROS gmapping : SLAM algorithm (simultaneous localization and mapping)

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].