rosrosを使い始める


備考

ロボットオペレーティングシステム(ROS)は、異種のコンピュータクラスタやプラットフォーム上でオペレーティングシステムのような機能を提供するロボットソフトウェア開発用のロボットミドルウェアです。

もともとスタンフォード人工知能研究所によって2007年にスタンフォードAIロボットSTAIRの支援を受けてスタートし、2008年から2013年までの開発は、ロボット研究所のWillow Garageで実施されました。 2013年、ROSのスチュワードシップはOpen Source Robotics Foundationに移行しました。

ROSは、ソフトウェア開発者がロボットアプリケーションを作成するためのライブラリとツールを提供します。ハードウェア抽象化、デバイスドライバ、ライブラリ、ビジュアライザ、メッセージパッシング、パッケージ管理などを提供します。 ROSはオープンソースのBSDライセンスの下でライセンスされています。

今日、ROSは、自律車からUAV、ヒューマノイドロボット、そして多数のROSサポートされたセンサー( 完全なセンサーのリストを参照 )を使用して、100以上のロボット( フルロボットリストを参照 )を統合しています。サービスロボットアプリケーションの研究コミュニティでもありますが、その技術は産業用ロボットを含む他のアプリケーション分野にも適用できます。進化した知覚、パス/把握計画、モーショントラッキングなどのアプリケーションは、以前は技術的に実行不可能であったか、またはコストが高すぎるロボットアプリケーションを製造することができます。

現在、ROSはUnixベースのプラットフォーム上でのみ動作します。 ROSのソフトウェアは主にUbuntuおよびMac OS Xシステムでテストされていますが、ROSコミュニティはFedora、Gentoo、Arch Linuxおよびその他のLinuxプラットフォームのサポートに貢献しています。結局のところ、ROSコーディングはクライアントライブラリを持っていればどのプログラミング言語で記述することもできますが、現在は強力なC ++とPythonのサポートを提供することに焦点を当てています。

ROSは今日、10回目のリリースROS Kineticを発表します。

ROSおよびROSコミュニティの取り組みの詳細については、 http: //www.ros.org/をご覧ください。

バージョン

ロスディストロサポートされているUbuntuのバージョン発売日
キネティックカメ 15.10,16.04 2016年5月23日
翡翠タートル 14.04、14.10、15.04 2015-05-23
インディゴイグルー 13.10、14.04 2014-07-22
ハイドロメデューサ 12.04、12.10、13.04 2013-09-04
グルーヴィーガラパゴス 11.10,12.04,12.10 2012-12-31
フエルテタートル 10.04,11.10,12.04 2012-04-23
電気エミ 10.04、10.10、11.04、11.10 2011-08-30
ダイヤモンドバック 10.04、10.10、11.04 2011年03月02日
Cタートル 9.04、9.10、10.04、10.10 2010-08-02
ボックスタートル 8.04 2010年03月02日

ハローワールドパブリッシャー

ワークスペースを作成する

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

ワークスペースを構築する

cd ~/catkin_ws/
catkin_make
 

セットアップファイルを入手する

source devel/setup.bash
 

基本的な依存関係を持つhello_worldという名前の新しいパッケージを作成する

catkin_create_pkg hello_world std_msgs rospy roscpp
 

srcディレクトリに移動し、talker.cppという新しいファイルを作成します。

cd hello_world/src
touch talker.cpp
 

新しいファイルを編集し、このコードを貼り付けて「こんにちは世界」のメッセージを公開してください

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

パッケージディレクトリのルートに戻る

cd ..
 

これらの行を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)
 

作業領域のルートに戻る

cd ..
 

新しいパブリッシャーを構築する

catkin_make  
 

新しいパッケージとパブリッシャを持つようにセットアップファイルを再度ソースにします

source devel/setup.bash
 

ROSを開始する

roscore
 

roscoreを実行したままにして、新しいターミナルタブ/ウィンドウでパブリッシャーを開始する

rosrun hello_world talker
 

パブリッシャーを実行したままにして、別の新しい端末タブ/ウィンドウで出力をエコーし​​ます

rostopic echo /chatter
 

インストール

ターゲットマシンに応じて、サポートされているROSバージョンを選択する必要があります(またはその逆)。 ROSのインストールはROSのwikiによく書かれていますが、見つけにくいかもしれません。 ROSのバージョン、ターゲットプラットフォームとアーキテクチャ、および適切なインストールガイドのリンクは次のとおりです。

ROSバージョンプラットフォームアーチ状態インストールガイドリンク
キネティック Ubuntu 16.04(Xenial) amd64 / i386 / armhf サポートされる キネティック - ゼニア - ガイド
Ubuntu 15.10(ワイリー) amd64 / i386 サポートされる キネティック - ウィリーガイド
Debian 8(Jessie) amd64 / arm64 サポートされる キネティック - ジェシーガイド
OS X(自作) - 実験的 キネティック - 自家製ガイド
Gentoo - 実験的 Kinetic-Gentoo-guide
OpenEmbedded / Yocto - 実験的 キネティックヨコガイド

進行中の作業...!