Giter Site home page Giter Site logo

mypkg's Introduction

mypkg

test

こちらは、千葉工業大学先進工学部未来ロボティクス学科2年後期のロボットシステム学の講義で扱っているROS2のパッケージのリポジトリです。

リポジトリの概要

talker.py, listener.py

  • クラスやメソッドを用いて整理し、publisherとsubscriberを実装

talker_before_lesson_11.py, listener_before_lesson_11.py

  • 講義のlesson_11までのtalkerとlistener

talk_listen.launch.py

  • talker.py と listener.py の launchファイル

hit_and_blow.py, hit_and_blow_B.py

  • 一般的にHit&Blowと呼ばれるゲームをpythonを用いて実装

リポジトリの使用方法

ターミナルで以下のコマンドを実行する

$ cd ~/ros2_ws/src/
$ git clone https://github.com/IkuoShige/mypkg.git
$ git clone https://github.com/IkuoShige/hit_and_blow_msgs.git
$ cd ~/ros2_ws/
$ colcon build

talker と listener

機能

talker.py で1ずつ加算したnをpublishし、listener.py でnをsubscribeする

使いかた

先述したlaunchファイルを実行する

$ cd ~/ros2_ws/
$ ros2 launch mypkg talk_listen.launch.py

出力結果は以下のようになります

[INFO] [launch]: All log files can be found below /home/ikuo/.ros/log/2022-12-31-22-38-47-736373-ikuo-CFSV1-1-116125
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [talker-1]: process started with pid [116127]
[INFO] [listener-2]: process started with pid [116129]
[listener-2] [INFO] [1672493928.746150294] [listener]: Listen: 0
[listener-2] [INFO] [1672493929.230498671] [listener]: Listen: 1
[listener-2] [INFO] [1672493929.730591909] [listener]: Listen: 2
[listener-2] [INFO] [1672493930.230547673] [listener]: Listen: 3
...
...

hit_and_blow

機能

pythonを用いてHit&Blowを行う

Hit&Blowとは

  • はじめにプレイヤーは3桁の整数であり、かつ百の位と十の位と一の位の数字にかぶりのないものを用意する(今回はランダムで設定する)
  • ターン制で3桁の整数を選択する
  • 数字と場所があっていればHitのカウントが1増加する
  • 数字はあっているが場所はあっていないならBlowのカウントが1増加する
  • このときに相手の3桁の整数を当てれば(Hitのカウントが3になれば)勝利
  • 両方が同じターンで当てた場合は引き分けとなる

使いかた

以下のコマンドで実行が可能

$ bash ~/ros2_ws/src/mypkg/launch/run.bash

それぞれのターミナルでゲームを進めていく 先手は誘導のある方のターミナルから

上記コマンド実行時点での出力(例)

(player A)
player_B answer: [1, 6, 4]
1番目の数を入力してください:

(player B)
player_A answer: [2, 1, 6]

プログラムの誘導に沿ってゲームを進める

決着時の出力(例)

(player A)
1番目の数を入力してください: 1
2番目の数を入力してください: 2
3番目の数を入力してください: 3
hit :0, blow :2
answer_B: [1, 6, 4]
hit_B: 3, blow_B: 0
you lose
Press a key... close the window

(player B)
answer_A: [1, 2, 3]
hit_A: 0, blow_A: 2
1番目の数を入力してください: 1
2番目の数を入力してください: 6
3番目の数を入力してください: 4
hit :3, blow :0
clear!
you win
Press a key... close the window

ノードとトピック

Test Image 6

/hit_and_blow_AのノードからA側のプレイヤーの答案の情報が含まれているトピックである/Aをlistener_Bのノードに渡している

/hit_and_blow_BのノードからB側のプレイヤーの答案の情報が含まれているトピックである/Bをlistener_Aのノードに渡している

トピックの内容

  • プレイヤーの答案
  • hitのカウント
  • blowのカウント
  • 勝利のカウント
  • ターンのカウント

テスト環境

  • Ubuntu 20.04.5 LTS

  • ROS2 noetic

  • Python 3.7~3.10

LICENSE

  • このソフトウェアパッケージは,3条項BSDライセンスの下,再頒布および使用が許可されます.
  • このパッケージのコードは,下記のスライド(CC-BY-SA 4.0 by Ryuichi Ueda)のものを,本人の許可を得て自身の著作としたものです.
  • © 2022 Ikuo Shige

mypkg's People

Contributors

ikuoshige avatar

Watchers

 avatar

Forkers

matsuyamayusaku

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.