2019年4月29日月曜日

自律搬送クローラロボットの開発情報のまとめページ

某自動車メーカと共同開発のクローラを使った自律走行ロボット

ところで、開発でバタバタでベースになるソフトなどが整理できていない。
これはやばいので、ここで整理。

ロボットシステム開発の基本的な考え方
「安全を最優先、次にパフォーマン→最もコンパクト、最速に動くシステム」

従って、安全を最優先にしたアーキテクチャーのもとに、C言語で開発している。
アーキテクチャーはこんな感じ(笑)

もちろん、Pythonも使わないとならないところでは使っているけど
例えば、linux の top コマンドで確認し見るとよい。
pythonがどれだけCPU負荷をかけるのか?

ロボット制御システム
RDCS  僕が開発した、汎用のロボット制御システム
数百人の人、数百台のロボットが、数百の仕事を、数百の場所で協調分散しながら、
安全第一に行う為の基本プラットフォームと、
自律搬送、pickingなどの制御システムなどで構成されている

7月位にAGV部分は切り出して、Amazonで販売しようと計画中
駆動系のドライバーの追加により、どのような搬送機器もロボット化可能

この中は複雑で、SLAMや、4次元のMappingシステムが実装されていたり
良く説明できませんが、自律走行に必要な機能の塊ね。

C言語で記述、APIはC言語、python
  RDCSとは(6年前の投稿)---> What's RDCS

1.ハードウェア

1.1 ベース車体

某社のCAN制御可能なクローラ。もともとは除雪機なのだぁ。
積載重量
傾斜20度:130Kg
平地:200Kg

1.2 コントローラ

Raspberry Pi 3B+ (メイン) + 用途に応じた性能のRaspberry Pi

1.3 システム通信(CAN Ver 2.0)

CANネットワークを2系統制御する。
・駆動系CAN
駆動系を制御するCANネットワーク。仕様は駆動系メーカの仕様に準拠する。
・RDCS CANネットワーク
RDCS内の通信を制御するネットワーク。
ロボット内に複数のRaspberry Piを搭載し、協調分散処理が可能となる。

PICAN DUO  Rev 01/16
MCP2515  このようなモノ

1.4 車体制御

センサー制御ボード (クローラ側センサーを始動位置/走行位置にする為の工作)
ロボット制御側CANネットワーク通信基板

1.5 稼働状態を外部から確認可能なデバイス

FULL Color LED 2個
16x2 桁 LCD

1.6 操作デバイス

スマフォ
Joystick  (bluetooth接続)

1.7 センサー系

GPS (マゼランジャパン社製のGPSを借用。今後は秋月で売っているモノでOK)
Lidar(主にAGV用)
Intel D4351 (ToFセンサー)
Intel T265(自己位置推定)
ステレオカメラ(今後は不使用の予定)
VL53X0L(衝突防止センサー)
積載重量センサー
基準点センサー(AGVにおいて、作業空間の基準点になるもの)

1.8 Edge Device

Movidius または、Coral (検証中)

1.9 通信

Wifi
Bluetooth
920MHz帯通信 (マルチホップ通信)

2.ソフト

2.1 自律走行システム

前述「ロボット制御システム」参照

2.2 Raspberry Pi OS

Rasbian Stretch
Raspberry Piに最も最適化されたOS。
いろいろなOSでテストしたけどパフォーマンが最も高い
本当は、ArchLinuxに期待してたけど、Rasbianにはかなわない。

・service (/lib/systemd/system)
lighttpd.service

・service (/etc/systemd/system)
pigpiod.service
hndjs.service
rdcs_joystick.service
rdcs_if_01.service

・/etc/rc.local
home/pi/prj/hnd/bin/setcan.sh

2.3 各種ソフト

個別にインストールする必要があるソフト

・インストール基本
/home/pi/rdcs/bin , src, etc
/var/www/api/rdcs/v1/bin, etc. tmp

・環境変数
~/.bash_profile
RDCS=/home/pi/prj/rdcs
export PATH=".:$RDCS/bin:/home/pi/bin:/home/pi/.pyenv/bin:$PATH"$

・CAN関連
システムの中では、C言語で制御している
PICAN DUO  : 2系統のCANネットワークを制御する
MCP2515  : RDCSのCANネットワークノード。120Ωでターミネーター両端設定

・pigipio
システムの中では、C言語 + python (非同期処理)で開発している
PWM制御をすためのユーティリティ。Raspberry Piでは最も性能が良い。
インストールは、sudo apt install pigpio

・HTTP通信
C言語で開発している。
lighttpd 軽量高速なWebサーバを使って外部から制御可能
インストール

・深層学習
Python + C++言語で開発している
Tensorflow
インストールはネットで最新情報を探してください。

・画像処理
OpenCV 4.0
システムの中では、C++ & C言語で開発している
インストール

・Lidar
システムの中では、C言語で制御している
インストール

・Full Color LED
システムの中では、C言語で制御している
インストール

・16x2 LCD
システムの中では、C言語で制御している
インストール

・Bluetoothとjoystick
システムの中では、C言語で制御している

インストールと設定、確認
sudo apt-get install joystick
sudo apt-get install -y pi-bluetooth
sudo apt-get install libbluetooth-dev
sudo apt-get install joystick
sudo apt-get install jstest-gtk

bluetoothctl
scan on
scan off
pair XXXXXXXXXXXXX
trust XXXXXXXXXXXXX
show
info
exit

3.クラウド

3.1 インターネット上にクラウド
それを経由して全世界にあるロボットを制御することが可能。
そしてそれらのデータを再活用することができる。

3.2 ローカルサーバ

企業によってはクラウド接続が許されない場合がある。
その場合にはローカルサーバを設置して運用を行う。
また同一企業内ならローカルサーバを接続し様々な情報の共有も可能となる。

4.連動システム(利用者の目的)

4.1 倉庫管理システム

深層学習を活用したUIに、Android スマフォン を使うシステム
実在庫誤差3%以下を目指して、受け入れから払い出しまで一貫した
処理を提供する。またAGVと連動して、さらなる効率化を図る。

DBは、Raspberry Pi 3B+、DBはMariaDB。

少しづつ追記します。
いろいろ開発したなぁ。。。

Peace!!

0 件のコメント:

コメントを投稿