コラム

ロボティクス関連で、感じたこと等を載せています。

ロボット開発について

2024/6/21

ロボット開発についての資料を作ったので、載せます。

私が作りましたし、別に、ここまでならば、内容はネット公開情報でも分かると思いますから載せます。


デザインは、主にマイクロソフト365?に標準搭載のモノを使っています。

マイクロソフトの自称で、Web上のものでない・引用であるならば(米国法では)使ってもよいみたいに、

マイクロソフト365のPPTで、画像を挿入する時の説明で、あると思います。

そして、マイクロソフトは米国の会社ですから、そのままにします。

ロボット開発についてです。

目次は次の通りです。

  1. ロボット開発の基礎
    1. 要素技術
    2. 大分類
    3. HWの概要
    4. SWの概要
  2. 開発手順
    1. ROSを用いた方法
      1. HW開発
      2. SW開発
    2. OpenRTM-aistを用いた方法
      1. HW開発
      2. SW開発

1. ロボット開発の基礎

要素技術、大分類、HWの概要、SWの概要

要素技術

ロボットは次のような要素技術で動く

  • IT (システムやプログラム)
  • 電気電子 (WiFiや配線)
  • 機械 (モーターやギア)

大分類

ロボットは次に分類できる

  • HW (ハードウェア)
  • 機械、電気電子的な要素

 

  • SW (ソフトウェア)
  • IT的な要素

一般的な開発方法

  • 汎用制御PCや汎用マイコンを選定する
    • JetsonRaspberry PiM5 StackESP 32Spresense
  • モーターやギアを選定する
    • アクチュエーター、サーボモーター、ギア(変速機・減速機)
      • アクチュエーター: 電気等を機械的な動きに変換し、機器を正確に動かす駆動装置
      • サーボモーター: 位置や速度、回転力(トルク)を正確に実現するモーター
      • 変速機: ギヤの組み合わせで変速を行う装置 (速度は可変)
      • 減速機: 上記のうち、速度が一定速のもの
  • WiFiや配線を考える
    • 電力線: ケーブルを使用する (アースを付ける場合もある)
    • 信号線: ケーブルやWiFi、Bluetoothを使用する (ケーブル長や応答速度を考慮する)
    • 接続: コネクターや、圧着、半田付けを使用する

SWの概要

  • ROS: 実質ミドルウェア
    • 基本Linux系のOS上で動く
    • オープンソースで、世界中の人が開発に使用している
    • 開発言語: C++、Python、Java
  • RT-middleware: OMG(The Object Management Group)の標準仕様
    • Windows、Linux/Unix、Mac OS上で動く
    • オープンソースで、国内団体が開発したものが多い
    • 開発言語: C++、Python、Java

2. 開発手順

ROSを用いた方法

(対応機器導入、HW開発、SW開発)

OpenRTM-aistを用いた方法

(対応機器導入、HW開発、SW開発)

ROSを用いた方法

  1. 対応機器を導入する
    • 購入する (かなり手っ取り早いが高価格になる)
    • 自分で機器を作り対応させる (一気に高難易度化する)
  2. Linuxをインストールする
  3. Linux上にROSをインストールする
  4. ROSにパッケージを入れる
  5. プログラムを作る等し、コマンドで動かす
  • HW開発 (対応機器導入)
  • かなり手軽な方法
    • 巷で売られているカスタマイズ可能なロボットを購入する
    • (PG改造のみの場合)
  • 高難易度な方法 ← 多くは営利のため、これをやりたい
  • 全部、または一部を設計して作る
    • 全部:
    • 運動学や逆運動学に基づいて設計し、機械を作る (モーターやギア等も選定する)
    • カメラやセンサー等を選定する
    • 筐体加工: CADデータを作りファブレスで作る、3Dプリンターで造形する
    • 配線: ノイズ等も考慮して設計する、回路設計・半導体設計等を必要に応じてする
    • 制御: 上記を汎用ロボットOS等で動かせるようにする ← これも、かなり難しい
  • 一部:
    • 上記のウチの一部を作る
  • HWSWの融合が、いずれにしても難しい

SW開発 (準備)

1. 汎用PCにLinuxをインストールする

  • ROSに合わせたバージョンを選定する

2. Linux上にROS 1/2をインストールする

  • バージョンを選定する (Linux と対応する)

3. ROSにパッケージを入れる

  • コマンドを打てば、自動的に入る

4. PGを作る

  • package.xmlを編集する
  • CMakeLists.txtを編集する
  • catkin_makeする

OpenRTM-aistを用いた方法

  1. 対応機器を導入する
    • 購入する (かなり手っ取り早いが高価格になる)
    • 自分で機器を作り対応させる (一気に高難易度化する)
  2. Win、Linux等で動作する
  3. Python等をインストールする
  4. GUIインストーラーでインストールする
  5. GUIでノードを繋いで実行する (パラメーター変更やPG動作も可能)

ROSと特に変わらない

  • HW開発 (対応機器導入)
  • かなり手軽な方法
    • 巷で売られているカスタマイズ可能なロボットを購入する
    • (PG改造のみの場合)
  • 高難易度な方法 ← 多くは営利のため、これをやりたい
  • 全部、または一部を設計して作る
    • 全部:
    • 運動学や逆運動学に基づいて設計し、機械を作る (モーターやギア等も選定する)
    • カメラやセンサー等を選定する
    • 筐体加工: CADデータを作りファブレスで作る、3Dプリンターで造形する
    • 配線: ノイズ等も考慮して設計する、回路設計・半導体設計等を必要に応じてする
    • 制御: 上記を汎用ロボットOS等で動かせるようにする ← これも、かなり難しい
  • 一部:
    • 上記のウチの一部を作る
  • HWSWの融合が、いずれにしても難しい

SW開発 (準備)

1. Pythonをインストールする

  • バージョンを合わせる

2. OpenRTM-aistを導入する

  • ダウンロードし、インストールする

3. VCVerChangerを実行する

  • レジストリーを整えるためである

4. RTSystemEditorを使用する

  • ノードとノードを接続し、適宜パラメーターを入力する

ロボットやAI、資格の今後の予想

2024/6/24

現在、ロボット技術開発により、別に、技術士でなくても、それより、多くの収入が得られる時代になっていると思います。

それ以上の技術士が、いたとしても、多くは、資格によって講演会とか、技術指導とか、出版で、お金を得たりしている位でしょう。

結局、実空間系の技術指導以外の、多くがAIに代替可能な気がしています。

机上の試験が無意味化するかもしれませんから、今後、専門職集団とか、どうなるのでしょうか??

それより、人類とか、どうなるのでしょうか???

更に、ロボットやAIが、自身を作成生成するようになったとしたら、どうなるのでしょうか?

私の予想ですと、人類に残された仕事は、多くが、ロボットやAIに置き換わる中で、

人類という種(しゅ)を絶滅しないようにするとか、人類をサイボーグ化するとかしか無くなる気がしています。

ロボットやAIが、悪用されなければ、よいです。

よい方向にも、そうでない方向にも、絶対値が人間に考えられない位に、大きすぎになるでしょうから。

創薬とかに適切に使われた場合、驚異的なスピードで、もしかすると、不老長寿の薬ができるかもしれません。

ゲノム解読とか、かもしれません。

宇宙の謎が解けるかは、分からないですが。

ただ、結局、高度な倫理観が必要になってくる気がしていて、仮に(大規模な)事故等が起きた場合は、

開発に関連した、法整備がされたり許認可制となっていくような気もしています。

その策定 等は、困難でしょうし、そういったモノを作るのにも、ロボットやAIが使われるのかもしれません。

後、世の中的に、よいロボットやAIと、よくないロボットやAIが、混在していくような気もしています。

もしかすると、よくない学習をしたり、バグ等で壊れて異常な行動を取るモノも出てくるかもしれません。

これからの世の中、技術革新が加速化して不確実性 等があると考えますし、

許認可制であっても、そうでなくても、法整備がどうであろうと、

できるたけ、よいモノを、割合としても、できるだけ沢山作る位しか、社会にとって、よい手は無いといったような気がしています。

Pub-Sub通信

2024/7/2

ロボット開発において、作るための情報が、割合として圧倒的に多い訳です。

しかし、セキュリティーや安全な運用 等、それ以外の情報が、ほとんど公開ネット上に無いと思います。

その話から、原発とかと同じで、作るだけ作っておいて、後で、どうなる/どうする のか、分からない、みたいな状況になるのではないか?と思ってしまいました…

今後、そういったことも含めて、世界中で議論が活発化することを期待します。

次の動画は、ROS上で、次を実施したものです。

“roscore” を起動

“rosrun beginner_tutorials talker”を実行

“rosrun beginner_tutorials listener”を実行

これにより、Pub-Sub 通信をしています。

ROS を使う人には、かなり基本的なモノだと思いますが。

@tiktok_tokyo_jp

Motion of ROS Basic Program, Publisher (Talker) and Subscriber (Listener). 1. "roscore" 2. "rosrun begineer_tutorials talker" 3. "rosrun begineer_tutorials listener" ROS の基本的なプログラムである、Pusbisher (Talker)とSubscriber (Listener)の動作結果です。

♬ オリジナル楽曲 - tiktok_tokyo_jp

turtlesim

2024/7/4

ROS でturtlesim を動かす様子を動画にしました。

“roscore” を起動

“rosrun turtlesim turtlesim_node”を実行

“rosrun teleop_twist_keyboard teleop_twist_keyboard.py cmd_vel:=/turtle1/cmd_vel _speed:=2.0 _turn:=2.0″を実行

 

teleoo_twist_keyboard がインストールされていない場合は、次を実行するとよいです。

https://wiki.ros.org/teleop_twist_keyboard

@tiktok_tokyo_jp

Movie of moving turtlesim on ROS. ROS でturtlesim を動かす様子です。

♬ うさぎとかめ - ひばり児童合唱団/藤家虹二クインテット+α