プログラミングROS ―Pythonによるロボットアプリケーション開発
by Morgan Quigley, Brian Gerkey, William D. Smart, 河田 卓志, 松田 晃一, 福地 正樹, 由谷 哲夫
8章Teleop-bot(テレオペボット)
第I部ではROSにおける基礎的なコンセプトを扱い、多くのロボットに共通のサブシステムについて概要を説明してきました。そして第I部の最後ではWander-botを作りました。これは、Turtlebotを目的なく動き回らせるプログラムでした。これ以降の第II部では、ロボットの動きを徐々に洗練していき、最先端の2次元のナビゲーションシステムまでの一連のロボットの作り方を解説します。第II部の最後では、標準的なROSパッケージを使ってマニピュレーターアームを動かす方法を説明します。
本章では、ロボットを遠隔操作でどのようにして動かすかについて説明します。ロボットという用語は、どのような状況でも自分自身で判断し行動できる完全自律型のロボットのイメージを思い起こさせます。しかし、多くの領域では、さまざまなことに起因し、近くにいる人間がガイドするというのが普通です。一般的に、遠隔操作システムは、自律システムより簡単なので、そこから始めるのが自然です。本章では、徐々に複雑な遠隔操作システムを作っていきます。
前章に引き続き、Twistメッセージを配信してTurtlebotを動かします。Twistメッセージは完全な3次元の動きを記述することができますが、差動駆動の平面ロボットを操作する場合には、2つのメンバーを与えるだけで十分です。並進速度(前進/後退)と鉛直軸周りの回転角速度です。その回転角速度は、ヨーレートとも呼ばれ、どのくらい速くロボットが回転できるかの簡単な尺度です。これら2つのフィールド情報をもとに、実際に動かさなければならない各車輪の速度が、車輪の間隔と車輪の直径から求められます。この計算は、通常、ソフトウェアスタックの低レベル、つまり、ロボットのデバイスドライバーかオンボードのマイクロコントローラーのファームウェアで行われます。遠隔操作ソフトウェアの観点からは、それぞれm/sとラジアン/sで表した並進速度と回転角速度を単に命令すればよいのです。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access