SlideShare una empresa de Scribd logo
1 de 23
Descargar para leer sin conexión
STMとROSをシリアル通信させて
移動ロボットを作る
もじゃなり
@masanari7430
自己紹介
岡山大学の大学院生
ロボット関連の研究しています
ROSは2017/4~から初めて3年目
最近朝が起きれなくて,社会人になれるか不安
自分でROS対応ロボットを作ってみる
• 研究でi-Cart eduと呼ばれるROS対応ロボッ
トを使ってる(一台10万)
• 働いてからも自分で使えるロボットが欲しい
じゃあ,自分で作るか
ROSだけでロボットは動く?
• ROSは色んなライブラリがあるし,DYNAMIXELでサーボを動かせたら
ロボットは動く?
• SPI,I2Cで動くセンサは?エンコーダの値を読みたいときは?
沢山のセンサのデータを取りたいときは?モータをPID制御するときは?
→PCは考える頭としてはとても優秀だけど,
実際にロボットの手足動かすのはマイコンには勝てない
結局,ハードを動かすにはマイコンが必要
関連プロジェクト
• mROS
• rosserial stm32
マイコンにノードを乗せる取り組み
柔軟なデータのやり取りが可能
mROSはRenesas GR-PEACHに対応
rosserial stm32はSTM32に対応
シリアル通信を実装する理由
• 移動ロボットとやり取りするのは,
PCから移動速度,マイコンからオドメトリだけ
→どのデータをやり取りするかすでに分かっている
• mROSやrosserial stm32に依存すると,更新が止まった
時に何も出来なくなる
• 全てを自分で実装することでバグが発生した時に
原因を特定しやすくする
何のマイコンを使う?
今まで経験してきたマイコン
Renesas
(RX621)
Arduino STM32
• STM32:種類が豊富で,開発環境(stm32CubeIDE)が神
GUIでピン設定が出来て初期化の部分を自分で書く必要がない
チップを買ってきて自作する際も周辺回路が少なくて済む
しかも,開発ボードはデバッカの部分でシリアル通信が出来る!!!
優秀だと思うマイコン(個人の感想です)
PCとSTM32をシリアル通信して
移動ロボット作ろう
ハードウエアの構成(PC-マイコン間)
STM32 Nucleo Board
STM32F446REUSBケーブルPC(ROS)
シリアル通信
STM32 Nucleo Board
STM32F446RE
ハードウエアの構成(マイコン-ロボット間)
電源(12v)
モータドライバ
(L298N)
PWM
(1KHz)
ハードウエアの構成(全体図)
PC
モータドライバ
マイコン
モータ
どうやってシリアル通信すればいい?
ROSのシリアル通信の実装
先行例がある(みっちーさんに教えて頂いた)
https://qiita.com/srs/items/efaa8dc0a6d580c7c423
ROSとSTMのシリアル通信
• シリアル通信は8bitで通信が基本
• 送りたいデータは,前進速度と回転速度
• 前進速度の単位をcm/s,回転速度はdeg/sにして,
それぞれ2byte=16bit=-32768~32767あれば十分そう
0 0 0 0 1 0 1 0 SS 0 0 0 0 1 0 1 0 SS
0 0 0 0 1 0 1 0 SS 0 0 0 0 1 0 1 0 SS
前進速度
回転速度
16bitを8bit×2に分割
memcpy関数を使って,int16_tをchar二つに分割
0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0
char[0] char[1]
例えば
100=0b00000000 01100100
を送りたい時
なぜか10を送ると,13 10になる
0 0 0 0 1 0 1 0
10cm/sを送ろうとした時
10
0x0a
0 0 0 0 1 1 0 1
13 10
0x0d
0 0 0 0 1 0 1 0
0x0a
ROSのシリアルポートの設定が原因
デフォルトの設定では改行コード(0x0a)は
改行+復帰(0x0d 0x0a)のwindows基準に変換されて送信
(ただ,これはPC依存かも?)
conf_tio.c_oflag &= ~(ONLCR);
以下のコードを追加して,自動変換をやめる
実際に動かしてみた
移動ロボットの動作実験
移動ロボットの動作実験
考察
• エンコーダでフィードバックしていないため
真っ直ぐ進まない
• 回転しようとしても搭載したPCが重たいため回転
できなかった
• それでもコントローラに応じてとりあえず動いた
まとめ
• STMとROSのシリアル通信に成功して,自作の移動
ロボットを動かした
• 市販のROS対応ロボットの偉大さが分かった
• 本当は実際に書いたシリアル通信の部分や,
STMのコードについても解説したかった
• 続きはブログで(たぶん12月中に書きます)
http://mozyanari.hatenablog.com/

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

QoS for ROS 2 Dashing/Eloquent
QoS for ROS 2 Dashing/EloquentQoS for ROS 2 Dashing/Eloquent
QoS for ROS 2 Dashing/Eloquent
 
Cartographer と Autoware を用いた自律走行
Cartographer と Autoware を用いた自律走行Cartographer と Autoware を用いた自律走行
Cartographer と Autoware を用いた自律走行
 
MoveItの新機能、 OMPL Constrained Planningを試してみた
MoveItの新機能、 OMPL Constrained Planningを試してみた MoveItの新機能、 OMPL Constrained Planningを試してみた
MoveItの新機能、 OMPL Constrained Planningを試してみた
 
ROSによる今後のロボティクスのあり方
ROSによる今後のロボティクスのあり方ROSによる今後のロボティクスのあり方
ROSによる今後のロボティクスのあり方
 
オープンソース SLAM の分類
オープンソース SLAM の分類オープンソース SLAM の分類
オープンソース SLAM の分類
 
mcl_3dl: amcl並に軽量な3-D/6-DoFローカリゼーションパッケージ
mcl_3dl: amcl並に軽量な3-D/6-DoFローカリゼーションパッケージmcl_3dl: amcl並に軽量な3-D/6-DoFローカリゼーションパッケージ
mcl_3dl: amcl並に軽量な3-D/6-DoFローカリゼーションパッケージ
 
Turtlebot3とrealsenseで作るお手軽移動ロボットros japan ug #23 関西勉強会
Turtlebot3とrealsenseで作るお手軽移動ロボットros japan ug #23 関西勉強会Turtlebot3とrealsenseで作るお手軽移動ロボットros japan ug #23 関西勉強会
Turtlebot3とrealsenseで作るお手軽移動ロボットros japan ug #23 関西勉強会
 
CoRL2021論文読み会
CoRL2021論文読み会CoRL2021論文読み会
CoRL2021論文読み会
 
NEDO講座 MoveIt! チュートリアル 第1部
NEDO講座 MoveIt! チュートリアル 第1部NEDO講座 MoveIt! チュートリアル 第1部
NEDO講座 MoveIt! チュートリアル 第1部
 
ROSを用いた歩行ロボットの脚の開発
ROSを用いた歩行ロボットの脚の開発ROSを用いた歩行ロボットの脚の開発
ROSを用いた歩行ロボットの脚の開発
 
確率ロボティクス第11回
確率ロボティクス第11回確率ロボティクス第11回
確率ロボティクス第11回
 
ROSでつながるVRChat
ROSでつながるVRChatROSでつながるVRChat
ROSでつながるVRChat
 
【DL輪読会】"Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware"
【DL輪読会】"Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware"【DL輪読会】"Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware"
【DL輪読会】"Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware"
 
SSII2022 [TS2] 自律移動ロボットのためのロボットビジョン〜 オープンソースの自動運転ソフトAutowareを解説 〜
SSII2022 [TS2] 自律移動ロボットのためのロボットビジョン〜 オープンソースの自動運転ソフトAutowareを解説 〜SSII2022 [TS2] 自律移動ロボットのためのロボットビジョン〜 オープンソースの自動運転ソフトAutowareを解説 〜
SSII2022 [TS2] 自律移動ロボットのためのロボットビジョン〜 オープンソースの自動運転ソフトAutowareを解説 〜
 
【RSJ2021】LiDAR SLAMにおける高信頼なループ閉合の実装について
【RSJ2021】LiDAR SLAMにおける高信頼なループ閉合の実装について【RSJ2021】LiDAR SLAMにおける高信頼なループ閉合の実装について
【RSJ2021】LiDAR SLAMにおける高信頼なループ閉合の実装について
 
学ロボの制御
学ロボの制御学ロボの制御
学ロボの制御
 
02 第3.1節-第3.5節 ROS2の基本機能(1/2) ROS2勉強合宿 @別府温泉
02 第3.1節-第3.5節 ROS2の基本機能(1/2) ROS2勉強合宿 @別府温泉02 第3.1節-第3.5節 ROS2の基本機能(1/2) ROS2勉強合宿 @別府温泉
02 第3.1節-第3.5節 ROS2の基本機能(1/2) ROS2勉強合宿 @別府温泉
 
リンク機構を有するロボットをGazeboで動かす
リンク機構を有するロボットをGazeboで動かすリンク機構を有するロボットをGazeboで動かす
リンク機構を有するロボットをGazeboで動かす
 
移動ロボットのナビゲーション
移動ロボットのナビゲーション移動ロボットのナビゲーション
移動ロボットのナビゲーション
 
ORB-SLAMを動かしてみた
ORB-SLAMを動かしてみたORB-SLAMを動かしてみた
ORB-SLAMを動かしてみた
 

Similar a STMとROSをシリアル通信させて移動ロボットを作る

Similar a STMとROSをシリアル通信させて移動ロボットを作る (14)

ROS搭載ラズパイでLチカしてみる
ROS搭載ラズパイでLチカしてみるROS搭載ラズパイでLチカしてみる
ROS搭載ラズパイでLチカしてみる
 
Ros#を使ったROSとxRデバイスの通信
Ros#を使ったROSとxRデバイスの通信Ros#を使ったROSとxRデバイスの通信
Ros#を使ったROSとxRデバイスの通信
 
Agile Tech EXPO - 雑談会話ロボットを Agile に作る
Agile Tech EXPO - 雑談会話ロボットを Agile に作るAgile Tech EXPO - 雑談会話ロボットを Agile に作る
Agile Tech EXPO - 雑談会話ロボットを Agile に作る
 
瀬戸内ROS勉強会の紹介~地方でROSを勉強するコツ~
瀬戸内ROS勉強会の紹介~地方でROSを勉強するコツ~瀬戸内ROS勉強会の紹介~地方でROSを勉強するコツ~
瀬戸内ROS勉強会の紹介~地方でROSを勉強するコツ~
 
ROSのロボットモデルでバーチャルロボット受肉する
ROSのロボットモデルでバーチャルロボット受肉するROSのロボットモデルでバーチャルロボット受肉する
ROSのロボットモデルでバーチャルロボット受肉する
 
ロボットにできること あなたにしかできないこと - 近藤豊(IEEE Engineering Spotlight講演資料)
ロボットにできること あなたにしかできないこと - 近藤豊(IEEE Engineering Spotlight講演資料)ロボットにできること あなたにしかできないこと - 近藤豊(IEEE Engineering Spotlight講演資料)
ロボットにできること あなたにしかできないこと - 近藤豊(IEEE Engineering Spotlight講演資料)
 
RPALT 新入社員ロボット
RPALT 新入社員ロボットRPALT 新入社員ロボット
RPALT 新入社員ロボット
 
160608 01
160608 01160608 01
160608 01
 
名古屋CV_ROSによるロボットソフトウェア開発の準備
名古屋CV_ROSによるロボットソフトウェア開発の準備名古屋CV_ROSによるロボットソフトウェア開発の準備
名古屋CV_ROSによるロボットソフトウェア開発の準備
 
【3/13】【女性限定】ロボットで、何が出来る?ペッパーにふれてみよう&ミニアイデアソン【とのさまラボ】 powered by 朝日新聞メディアラボ
【3/13】【女性限定】ロボットで、何が出来る?ペッパーにふれてみよう&ミニアイデアソン【とのさまラボ】 powered by 朝日新聞メディアラボ【3/13】【女性限定】ロボットで、何が出来る?ペッパーにふれてみよう&ミニアイデアソン【とのさまラボ】 powered by 朝日新聞メディアラボ
【3/13】【女性限定】ロボットで、何が出来る?ペッパーにふれてみよう&ミニアイデアソン【とのさまラボ】 powered by 朝日新聞メディアラボ
 
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
 
仮想のPremaidAIを、既存のロボット用ボードで動かしてみた話
仮想のPremaidAIを、既存のロボット用ボードで動かしてみた話仮想のPremaidAIを、既存のロボット用ボードで動かしてみた話
仮想のPremaidAIを、既存のロボット用ボードで動かしてみた話
 
20230119IoTLT縦・横? ノーコードツールの フロー事情 (1).pptx.pdf
20230119IoTLT縦・横? ノーコードツールの フロー事情 (1).pptx.pdf20230119IoTLT縦・横? ノーコードツールの フロー事情 (1).pptx.pdf
20230119IoTLT縦・横? ノーコードツールの フロー事情 (1).pptx.pdf
 
ロボット用マイコンボードを 設計してみた
ロボット用マイコンボードを設計してみたロボット用マイコンボードを設計してみた
ロボット用マイコンボードを 設計してみた
 

STMとROSをシリアル通信させて移動ロボットを作る