0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Pepperの移動

Last updated at Posted at 2020-05-20

目的

Pepperを移動させるアプリを作るために、関連情報を整理し、メモします。

簡単な移動

まず、第一歩の目標としてPepperを動かす。

前提

  • Pepperの周囲に十分のスペースがあること。
  • 充電口のフタを閉めっていること。

必要なObjectsやActions

  1. Object:Frame 位置情報を表すオブジェクト
    • Robot Frame: ロボット自身の位置情報
    • Free Frame: 任意の位置情報(移動先を指定する時に使う)
  2. Object:Transform 移動ルートを表すオブジェクト、
  3. Action:GoTo 移動アクション

移動させる

Gotoアクションに移動先の位置情報を指定すれば、その位置に移動できます。
今回はロボットの1メートル先を目標として、移動させてみます。

1. ロボットの位置情報を取得

val actuation: Actuation = qiContext.actuation
val robotFrame: Frame = actuation.robotFrame()

2. 移動ルートを作成

val transform = TransformBuilder.create().fromXTranslation(1.0)

3. 移動先の位置情報を作成

val targetFrame: FreeFrame = qiContext.mapping.makeFreeFrame()
targetFrame.update(robotFrame, transform, 0L)

4. Gotoアクションを作成し、実行する

val goTo = GoToBuilder.with(qiContext)
            .withFrame(targetFrame.frame())
            .build()
val goToFuture: Future<Void> = goTo.async().run()

goToアクションに関する感想

goToアクションに関する感想

  1. 障害物を自動的に回避できますので、移動先へ真直ぐに進行するではありません。
  2. 移動する時に地面の状態や、Pepperのハードより、最後の着地は想定した目標位置とズレが存在します。
  3. 途中で何かの原因で移動を完了できない場合があります。(大きな原因は障害物)
  4. 処理が中断されば場合に、再開できない時もある。(障害物に囲まれた、または前回の処理はまだキャンセルされてないなど)

Mapベースの移動

マーカーの運用

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?