rosIniziare con Ros


Osservazioni

Robotic Operating System (ROS) è un middleware di robotica per lo sviluppo di software per robot che fornisce funzionalità come sistemi operativi su cluster e piattaforme di computer eterogenei.

Originariamente avviato nel 2007 dal Laboratorio di Intelligenza Artificiale di Stanford nel supporto dello Stanford AI Robot STAIR, lo sviluppo, dal 2008 al 2013, è migrato per essere eseguito presso la Willow Garage, un istituto di ricerca di robotica. Nel 2013, la gestione delle ROS è passata alla Open Source Robotics Foundation.

ROS fornisce librerie e strumenti per aiutare gli sviluppatori di software a creare applicazioni robot. Fornisce l'astrazione hardware, driver di dispositivo, librerie, visualizzatori, trasmissione di messaggi, gestione dei pacchetti e altro ancora. ROS è concesso in licenza con licenza open source BSD.

Oggi, ROS integra più di un centinaio di robot ( vedi la lista completa dei robot ), che vanno dalle auto autonome, agli UAV ai robot umanoidi e utilizzando una moltitudine di sensori supportati da ROS ( vedi elenco completo dei sensori ) ... ROS è fortemente utilizzato dal comunità di ricerca per applicazioni di robotica di servizio, ma la sua tecnologia può essere applicata ad altre aree di applicazione, compresa la robotica industriale. Le sue applicazioni come la percezione avanzata, la pianificazione del percorso / della presa, il rilevamento del movimento possono consentire applicazioni robotiche di produzione che prima erano tecnicamente irrealizzabili o proibitive.

Attualmente ROS funziona solo su piattaforme basate su Unix. Il software per ROS è principalmente testato su sistemi Ubuntu e Mac OS X, sebbene la comunità ROS abbia contribuito al supporto di Fedora, Gentoo, Arch Linux e altre piattaforme Linux. Alla fine, la codifica ROS può essere scritta in qualsiasi linguaggio di programmazione, purché abbia la libreria client , tuttavia, l'obiettivo attuale è fornire un forte supporto C ++ e Python.

ROS presenta oggi la sua decima uscita ROS Kinetic .

Per ulteriori informazioni sugli sforzi della comunità ROS e ROS, visitare http://www.ros.org/

Versioni

Ros Distro Versioni di Ubuntu supportate Data di rilascio
Kinetic Kame 15.10, 16.04 2016/05/23
Jade Turtle 14.04, 14.10, 15.04 2015/05/23
Igloo indaco 13.10, 14.04 2014/07/22
Hydro Medusa 12.04, 12.10, 13.04 2013/09/04
Groovy Galapagos 11.10, 12.04, 12.10 2012-12-31
Fuerte Turtle 10.04, 11.10, 12.04 2012-04-23
Emys elettrico 10.04, 10.10, 11.04, 11.10 2011-08-30
Diamondback 10.04, 10.10, 11.04 2011-03-02
C Tartaruga 9.04, 9.10, 10.04, 10.10 2010-08-02
Scatola tartaruga 8.04 2010-03-02

Ciao World Publisher

Crea uno spazio di lavoro

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
 

Costruisci il tuo spazio di lavoro

cd ~/catkin_ws/
catkin_make
 

Dai il tuo file di installazione

source devel/setup.bash
 

Crea un nuovo pacchetto chiamato hello_world con alcune dipendenze di base

catkin_create_pkg hello_world std_msgs rospy roscpp
 

Passare alla directory src e creare un nuovo file denominato talker.cpp

cd hello_world/src
touch talker.cpp
 

Modifica il tuo nuovo file e incolla questo codice per pubblicare un messaggio "ciao mondo"

#include "ros/ros.h"
#include "std_msgs/String.h"

#include <sstream>

int main(int argc, char **argv)
{
  ros::init(argc, argv, "talker");

  ros::NodeHandle n;

  ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);

  ros::Rate loop_rate(10);

  int count = 0;
  while (ros::ok())
  {
    std_msgs::String msg;

    std::stringstream ss;
    ss << "hello world " << count;
    msg.data = ss.str();

    ROS_INFO("%s", msg.data.c_str());

    chatter_pub.publish(msg);

    ros::spinOnce();

    loop_rate.sleep();
    ++count;
  }

  return 0;
}
 

Torna alla radice della directory del pacchetto

cd ..
 

Aggiungi / Rimuovi queste righe al tuo CMakeLists.txt

catkin_package(
 INCLUDE_DIRS include
 LIBRARIES hello_world
#  CATKIN_DEPENDS roscpp rospy std_msgs
#  DEPENDS system_lib
)

include_directories(include ${catkin_INCLUDE_DIRS})

add_executable(talker src/talker.cpp)
target_link_libraries(talker ${catkin_LIBRARIES})
add_dependencies(talker hello_world_generate_messages_cpp)
 

Torna alla radice del tuo spazio di lavoro

cd ..
 

Costruisci il tuo nuovo editore

catkin_make  
 

Inserisci di nuovo il file di installazione in modo da disporre del nuovo pacchetto e del nuovo editore

source devel/setup.bash
 

Inizia ROS

roscore
 

Lascia in esecuzione roscore e in una nuova scheda / finestra del terminale, avvia il tuo editore

rosrun hello_world talker
 

Lascia in esecuzione il publisher e in ALTRO una nuova scheda / finestra del terminale, fai eco all'output

rostopic echo /chatter
 

Installazione

A seconda del computer di destinazione, è necessario scegliere una versione ROS supportata (o viceversa). Sebbene l'installazione di ROS sia ben documentata nel wiki di ROS, potrebbe essere difficile trovarli. Quindi, ecco una tabella della versione ROS, piattaforme di destinazione e architettura e i collegamenti per le guide di installazione appropriate:

Versione ROS piattaforma Arco Stato Installa il link della guida
cinetico Ubuntu 16.04 (Xenial) amd64 / i386 / armhf supportato Kinetic-Xenial-guida
Ubuntu 15.10 (Wily) amd64 / i386 supportato Kinetic-Wily-guida
Debian 8 (Jessie) amd64 / arm64 supportato Kinetic-Jessie-guida
OS X (Homebrew) - Sperimentale Kinetic-Homebrew-guida
Gentoo - Sperimentale Kinetic-Gentoo-guida
OpenEmbedded / Yocto - Sperimentale Kinetic-Yocto-guida

Lavori in corso...!