rosErste Schritte mit ros


Bemerkungen

Robotic Operating System (ROS) ist eine Robotik-Middleware für die Softwareentwicklung von Robotern, die betriebssystemähnliche Funktionen auf heterogenen Computerclustern und Plattformen bietet.

Ursprünglich im Jahr 2007 vom Stanford Artificial Intelligence Laboratory mit Unterstützung des Stanford AI Robot STAIR gegründet, entwickelte sich die Entwicklung von 2008 bis 2013 für Willow Garage, ein Roboterforschungsinstitut. 2013 wechselte ROS Stewardship zur Open Source Robotics Foundation.

ROS stellt Bibliotheken und Tools zur Verfügung, mit denen Softwareentwickler Roboteranwendungen erstellen können. Es bietet Hardware-Abstraktion, Gerätetreiber, Bibliotheken, Visualizer, Nachrichtenübermittlung, Paketverwaltung und mehr. ROS ist unter einer Open Source-BSD-Lizenz lizenziert.

Heute integriert ROS mehr als hundert Roboter ( siehe vollständige Roboterliste ), von autonomen Fahrzeugen über UAVs bis hin zu humanoiden Robotern und die Verwendung einer Vielzahl von ROS-unterstützten Sensoren ( siehe vollständige Sensorliste ) ... ROS wird von der ROS stark beansprucht Forschungsgemeinschaft für Servicerobotik-Anwendungen, ihre Technologie kann jedoch auch auf andere Anwendungsbereiche angewendet werden, einschließlich Industrierobotik. Seine Anwendungen wie erweiterte Wahrnehmung, Pfad- / Griff-Planung und Bewegungsverfolgung ermöglichen die Herstellung von Roboteranwendungen, die zuvor technisch nicht durchführbar oder zu teuer waren.

ROS läuft derzeit nur auf Unix-basierten Plattformen. Software für ROS wird hauptsächlich auf Ubuntu- und Mac OS X-Systemen getestet, obwohl die ROS-Community Unterstützung für Fedora, Gentoo, Arch Linux und andere Linux-Plattformen zur Verfügung gestellt hat. Schließlich kann ROS-Codierung in jeder Programmiersprache geschrieben werden, vorausgesetzt, es verfügt über eine Clientbibliothek . Derzeit liegt der Fokus jedoch auf der Bereitstellung einer starken C ++ - und Python-Unterstützung.

ROS präsentiert heute die 10. Version von ROS Kinetic .

Weitere Informationen zu den Bemühungen von ROS und ROS Community finden Sie unter http://www.ros.org/.

Versionen

Ros Distro Unterstützte Ubuntu-Versionen Veröffentlichungsdatum
Kinetic Kame 15.10, 16.04 2016-05-23
Jade Schildkröte 14.04, 14.10, 15.04 2015-05-23
Indigo-Iglu 13.10, 14.04 2014-07-22
Hydro Medusa 12.04, 12.10, 13.04 2013-09-04
Groovige Galapagos 11.10, 12.04, 12.10 2012-12-31
Fuerte Schildkröte 10.04, 11.10, 12.04 2012-04-23
Elektrische Emys 10.04, 10.10, 11.04, 11.10 2011-08-30
Diamondback 10.04, 10.10, 11.04 2011-03-02
C Schildkröte 9.04, 9.10, 10.04, 10.10 2010-08-02
Schildkröte 8.04 2010-03-02

Hallo Weltverleger

Erstellen Sie einen Arbeitsbereich

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

Bauen Sie Ihren Arbeitsbereich auf

cd ~/catkin_ws/
catkin_make
 

Quelldatei Ihre Setup-Datei

source devel/setup.bash
 

Erstellen Sie ein neues Paket namens hello_world mit einigen grundlegenden Abhängigkeiten

catkin_create_pkg hello_world std_msgs rospy roscpp
 

Navigieren Sie zu Ihrem src-Verzeichnis und erstellen Sie eine neue Datei mit dem Namen talker.cpp

cd hello_world/src
touch talker.cpp
 

Bearbeiten Sie Ihre neue Datei und fügen Sie diesen Code ein, um eine "Hallo Welt" -Meldung zu veröffentlichen

#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;
}
 

Kehren Sie zum Stammverzeichnis Ihres Paketverzeichnisses zurück

cd ..
 

Fügen Sie diese Zeilen zu Ihrer CMakeLists.txt hinzu bzw. entfernen Sie deren Kommentar

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)
 

Kehren Sie zum Stamm Ihres Arbeitsbereichs zurück

cd ..
 

Bauen Sie Ihren neuen Publisher

catkin_make  
 

Stellen Sie Ihre Setup-Datei erneut bereit, damit Sie über das neue Paket und den neuen Publisher verfügen

source devel/setup.bash
 

Starten Sie ROS

roscore
 

Lassen Sie roscore laufen und starten Sie Ihren Publisher in einem neuen Terminal-Fenster

rosrun hello_world talker
 

Lassen Sie den Herausgeber laufen und wiederholen Sie die Ausgabe in EINEM ANDEREN Terminal / Fenster

rostopic echo /chatter
 

Installation

Abhängig von Ihrem Zielcomputer müssen Sie eine unterstützte ROS-Version auswählen (oder umgekehrt). Obwohl die Installation von ROS im ROS-Wiki gut dokumentiert ist, kann es verwirrend sein, sie zu finden. Hier ist eine Tabelle der ROS-Version, der Zielplattformen und der Architektur sowie der Links zu den entsprechenden Installationsanleitungen:

ROS-Version Plattform Bogen Status Installieren Sie den Guide Link
Kinetisch Ubuntu 16.04 (Xenial) amd64 / i386 / armhf Unterstützt Kinetic-Xenial-Guide
Ubuntu 15.10 (Wily) amd64 / i386 Unterstützt Kinetic-Wily-Guide
Debian 8 (Jessie) amd64 / arm64 Unterstützt Kinetic-Jessie-Führer
OS X (Homebrew) - Experimental Kinetic-Homebrew-Führer
Gentoo - Experimental Kinetic-Gentoo-Führer
OpenEmbedded / Yocto - Experimental Kinetic-Yocto-Führer

In Arbeit...!