概要
Pepperに対して毎回手動で行っていた下記3つの作業を自動化しました。
・ログ取得(Naoqiログ、ADBログ)
・PKG/APKインストール
・Package名/Activity名取得
今回作成した自動化ツールはコマンド1つで実行できるため、コマンド入力ミスをなくしたり、作業時間の短縮など業務効率化に寄与します。
また、以下のようなケースで特に力を発揮します。
・作業に必須なコマンドがまだ覚えられなくて時間がかかってしまう
・作業対象のPepperやPKG/APKが複数ある
・コマンド出力内容のどこを見たらいいかわからない
今回記載する内容は主にPythonで作成した自動化スクリプトですが、PCによって会社からPythonのインストールを禁止されていて使えない場合やインストール方法がわからないといった方でも気にすることなく使えるようにshellスクリプト版も作成しています。
【目次】
- 要件定義
- 基本設計
- 環境構築
- 制作物
- 所感
1. 要件定義
~達成したい目標~
・作業時間の短縮による業務効率化
~現在の課題~
以下の理由により作業の開始から完了まで時間がかかる
・コマンド初心者の理解度不足
・1つの作業に対して複数回コマンドを実行する必要がある
・1つのコマンド実行完了まで待機する必要がある
・複数機体に対して実施する場合、機体数分の手間が増える
・コマンド実行結果の該当箇所を探す必要がある
~課題解決のために必要なこと~
〇機能要件
・1つのコマンドですべての処理が全機体で実行されること
・成功と失敗の判定を出力する
・1つのエラーや失敗によって処理が中断されないこと
・ユーザの求める情報をわかりやすく出力すること
〇非機能要件
・スクリプト実行時間が長くならないこと
・エラー内容や失敗した理由をユーザーに知らせること
・機体の設定環境に依存せずスクリプトを実行できること
・入力内容に誤りがある場合は入力をリトライすること
2. 基本設計
〇共通
・コマンドの引数が正しいかをスクリプト実行前にチェックすること
・IPアドレスやネットワーク設定の間違いによるエラーをユーザに通知すること
・スクリプトの実行状況を逐次ターミナルに出力すること
・処理が失敗した場合は、どの処理が何の原因で失敗したかをユーザが把握できるようにすること
〇ログ取得
・Naoqiログ/ADBログ(2種類)の取得
・ADBログ取得用のPKGが存在しない場合は、後続の処理を実行
・複数機体に対して一括で実行できること
・機体ごとに複数のログファイルを1つのフォルダにまとめてコピーすること
〇PKG/APKインストール
・PKGとAPKのどちらもインストールできること
・ADBコマンドが使用不可に設定されている機体でもAPKをインストールできること
・ADBコマンドを使用しない方法でのインストールに失敗した場合、開発者モードが有効に設定されていればADBコマンドでリトライすること
・インストール済みのバージョンを確認し、正確にインストールの成功/失敗判定をすること
・複数のファイルを一括でインストールできること
・複数機体に対して一括で実行できること
〇Package/Activity名取得
・アプリのパッケージ名とアクティビティ名を取得できること
・ユーザが探しているアプリを一覧で表示すること
・ダンス/エンタメアプリのみ抽出できること
・一覧から任意のアプリをユーザが指定できること
・入力内容が正しくない場合、入力をリトライできること
3. 環境構築
・MacOS
・Python3
・shell(Python使用不可のPC用)
4. 制作物
python 版スクリプト
shell 版スクリプト
5. 所感
このスクリプトを書き始めた頃は1からPythonで書くという経験がなかったため右も左もわからない状態だったが、Pepperにssh接続する部分でつまづいた。だが、ドキュメントやChatGPTを活用して試行錯誤していくうちにこのスクリプトを書き終える頃には知識を深めることができたと感じている。
この自動化ツールを作成したことで、実際に自分自身の業務効率化にも役立っていると感じている。
今までは、ログ取得やファイルのインストールの最初から最後まで1分以上、長い時は5分ほど時間を取られる作業だったが、ツール実行用のコマンドを叩いた後は別の業務に着手できるため、要件として掲げていた「作業時間の短縮による業務効率化」に貢献できていると考えている。