rosAan de slag met ros


Opmerkingen

Robotic Operating System (ROS) is een robotica-middleware voor robotsoftware-ontwikkeling die besturingssysteemachtige functionaliteiten biedt op heterogene computerclusters en platforms.

Oorspronkelijk gestart in 2007 door het Stanford Artificial Intelligence Laboratory ter ondersteuning van de Stanford AI Robot STAIR, werd de ontwikkeling van 2008 tot 2013 gemigreerd om te worden uitgevoerd bij Willow Garage, een onderzoeksinstituut voor robotica. In 2013 ging ROS rentmeesterschap over naar de Open Source Robotics Foundation.

ROS biedt bibliotheken en hulpmiddelen om softwareontwikkelaars te helpen bij het maken van robotapplicaties. Het biedt hardware-abstractie, apparaatstuurprogramma's, bibliotheken, visualizers, berichten doorgeven, pakketbeheer en meer. ROS heeft een licentie onder een open source, BSD-licentie.

Tegenwoordig integreert ROS meer dan honderd robots ( zie volledige robotslijst ), variërend van autonome auto's, tot UAV's tot humanoïde robots en het gebruik van een groot aantal door ROS ondersteunde sensoren ( zie complete sensorenlijst ) ... ROS wordt intensief gebruikt door de onderzoeksgemeenschap voor service robotica-toepassingen, maar de technologie kan worden toegepast op andere toepassingsgebieden, waaronder industriële robotica. De applicaties zoals geavanceerde perceptie, pad / grijpplanning, motion tracking kunnen robotica-applicaties produceren die voorheen technisch niet haalbaar waren of kostenbeperkend.

ROS werkt momenteel alleen op Unix-gebaseerde platforms. Software voor ROS wordt voornamelijk getest op Ubuntu- en Mac OS X-systemen, hoewel de ROS-gemeenschap ondersteuning biedt voor Fedora, Gentoo, Arch Linux en andere Linux-platforms. Uiteindelijk kan ROS-codering in elke programmeertaal worden geschreven, mits het een clientbibliotheek heeft , maar de huidige focus ligt op het bieden van krachtige C ++ en Python-ondersteuning.

ROS presenteert vandaag zijn 10e release ROS Kinetic .

Ga naar http://www.ros.org/ voor meer informatie over de inspanningen van ROS en ROS Community.

versies

Ros Distro Ondersteunde Ubuntu-versies Publicatiedatum
Kinetische Kame 15.10, 16.04 2016/05/23
Jade Turtle 14.04, 14.10, 15.04 2015/05/23
Indigo Iglo 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-schildpad 10.04, 11.10, 12.04 2012-04-23
Electric Emys 10.04, 10.10, 11.04, 11.10 2011-08-30
Diamondback 10.04, 10.10, 11.04 2011-03-02
C Schildpad 9.04, 9.10, 10.04, 10.10 2010-08-02
Box Turtle 8.04 2010-03-02

Hallo werelduitgever

Maak een werkruimte

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

Bouw uw werkruimte

cd ~/catkin_ws/
catkin_make
 

Bron uw installatiebestand

source devel/setup.bash
 

Maak een nieuw pakket met de naam hello_world met enkele basisafhankelijkheden

catkin_create_pkg hello_world std_msgs rospy roscpp
 

Navigeer naar uw src-map en maak een nieuw bestand met de naam talker.cpp

cd hello_world/src
touch talker.cpp
 

Bewerk uw nieuwe bestand en plak deze code om een "hallo wereld" -bericht te publiceren

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

Keer terug naar de hoofdmap van uw pakketmap

cd ..
 

Voeg deze regels toe / verwijder deze aan uw 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)
 

Keer terug naar de hoofdmap van uw werkruimte

cd ..
 

Bouw je nieuwe uitgever

catkin_make  
 

Bron uw installatiebestand opnieuw zodat u het nieuwe pakket en de uitgever hebt

source devel/setup.bash
 

Start ROS

roscore
 

Laat roscore actief en start uw uitgever in een nieuw tabblad / venster van de terminal

rosrun hello_world talker
 

Laat de uitgever actief en echo de uitvoer in EEN ANDER nieuw tabblad / venster van de terminal

rostopic echo /chatter
 

Installatie

Afhankelijk van uw doelcomputer moet u een ondersteunde ROS-versie kiezen (of omgekeerd). Hoewel de ROS-installatie goed is gedocumenteerd in de ROS-wiki, kan het verwarrend zijn om ze te vinden. Dus, hier is een tabel met de ROS-versie, doelplatforms en architectuur en de links voor de juiste installatiehandleidingen:

ROS-versie Platform Boog Toestand Installatiegidskoppeling
kinetisch Ubuntu 16.04 (Xenial) amd64 / i386 / armhf ondersteunde Kinetic-Xenial-gids
Ubuntu 15.10 (Wily) amd64 / i386 ondersteunde Kinetic-Wily-gids
Debian 8 (Jessie) amd64 / arm64 ondersteunde Kinetic-Jessie-gids
OS X (Homebrew) - experimenteel Kinetic-Homebrew-gids
Gentoo - experimenteel Kinetic-Gentoo-gids
OpenEmbedded / yocto - experimenteel Kinetic-yocto-gids

Lopende werkzaamheden...!