Submit Search
Upload
STMとROSをシリアル通信させて移動ロボットを作る
•
0 likes
•
2,682 views
M
mozyanari
Follow
瀬戸内ROS勉強会 #4
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 23
Download now
Download to read offline
Recommended
ROS を用いた自律移動ロボットのシステム構築
ROS を用いた自律移動ロボットのシステム構築
Yoshitaka HARA
ROS の活用による屋外の歩行者空間に適応した自律移動ロボットの開発
ROS の活用による屋外の歩行者空間に適応した自律移動ロボットの開発
Yoshitaka HARA
オープンソース SLAM の分類
オープンソース SLAM の分類
Yoshitaka HARA
Cartographer を用いた 3D SLAM
Cartographer を用いた 3D SLAM
Yoshitaka HARA
20180527 ORB SLAM Code Reading
20180527 ORB SLAM Code Reading
Takuya Minagawa
Turtlebot3とrealsenseで作るお手軽移動ロボットros japan ug #23 関西勉強会
Turtlebot3とrealsenseで作るお手軽移動ロボットros japan ug #23 関西勉強会
Hiroaki Kaneda
LiDAR-SLAM チュートリアル資料
LiDAR-SLAM チュートリアル資料
Fujimoto Keisuke
20190825 vins mono
20190825 vins mono
Takuya Minagawa
Recommended
ROS を用いた自律移動ロボットのシステム構築
ROS を用いた自律移動ロボットのシステム構築
Yoshitaka HARA
ROS の活用による屋外の歩行者空間に適応した自律移動ロボットの開発
ROS の活用による屋外の歩行者空間に適応した自律移動ロボットの開発
Yoshitaka HARA
オープンソース SLAM の分類
オープンソース SLAM の分類
Yoshitaka HARA
Cartographer を用いた 3D SLAM
Cartographer を用いた 3D SLAM
Yoshitaka HARA
20180527 ORB SLAM Code Reading
20180527 ORB SLAM Code Reading
Takuya Minagawa
Turtlebot3とrealsenseで作るお手軽移動ロボットros japan ug #23 関西勉強会
Turtlebot3とrealsenseで作るお手軽移動ロボットros japan ug #23 関西勉強会
Hiroaki Kaneda
LiDAR-SLAM チュートリアル資料
LiDAR-SLAM チュートリアル資料
Fujimoto Keisuke
20190825 vins mono
20190825 vins mono
Takuya Minagawa
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日
Kitsukawa Yuki
ORB-SLAMの手法解説
ORB-SLAMの手法解説
Masaya Kaneko
SLAM勉強会(PTAM)
SLAM勉強会(PTAM)
Masaya Kaneko
MoveItの新機能、 pilz industrial motion を試してみた
MoveItの新機能、 pilz industrial motion を試してみた
Ryo Kabutan
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
akio19937
ビーズセッターロボットのためのDYNAMIXEL Workbenchの評価
ビーズセッターロボットのためのDYNAMIXEL Workbenchの評価
Hirokazu Onomichi
20190307 visualslam summary
20190307 visualslam summary
Takuya Minagawa
ROSによる今後のロボティクスのあり方
ROSによる今後のロボティクスのあり方
Mori Ken
02 第3.1節-第3.5節 ROS2の基本機能(1/2) ROS2勉強合宿 @別府温泉
02 第3.1節-第3.5節 ROS2の基本機能(1/2) ROS2勉強合宿 @別府温泉
Mori Ken
tf,tf2完全理解
tf,tf2完全理解
Koji Terada
SLAM入門 第2章 SLAMの基礎
SLAM入門 第2章 SLAMの基礎
yohei okawa
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
SSII
SLAM開発における課題と対策の一例の紹介
SLAM開発における課題と対策の一例の紹介
miyanegi
複数のGNSSを用いたポーズグラフ最適化
複数のGNSSを用いたポーズグラフ最適化
TaroSuzuki15
Autoware: ROSを用いた一般道自動運転向けソフトウェアプラットフォーム
Autoware: ROSを用いた一般道自動運転向けソフトウェアプラットフォーム
Takuya Azumi
06 第5.1節-第5.7節 ROS2に対応したツール/パッケージ
06 第5.1節-第5.7節 ROS2に対応したツール/パッケージ
Mori Ken
Direct Sparse Odometryの解説
Direct Sparse Odometryの解説
Masaya Kaneko
03 第3.6節-第3.8節 ROS2の基本機能(2/2)
03 第3.6節-第3.8節 ROS2の基本機能(2/2)
Mori Ken
ドロネー三角形分割
ドロネー三角形分割
Yusuke Matsushita
SLAM勉強会(3) LSD-SLAM
SLAM勉強会(3) LSD-SLAM
Iwami Kazuya
ROSを用いた歩行ロボットの脚の開発
ROSを用いた歩行ロボットの脚の開発
ShomaUehara
ROS搭載ラズパイでLチカしてみる
ROS搭載ラズパイでLチカしてみる
mozyanari
More Related Content
What's hot
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日
Kitsukawa Yuki
ORB-SLAMの手法解説
ORB-SLAMの手法解説
Masaya Kaneko
SLAM勉強会(PTAM)
SLAM勉強会(PTAM)
Masaya Kaneko
MoveItの新機能、 pilz industrial motion を試してみた
MoveItの新機能、 pilz industrial motion を試してみた
Ryo Kabutan
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
akio19937
ビーズセッターロボットのためのDYNAMIXEL Workbenchの評価
ビーズセッターロボットのためのDYNAMIXEL Workbenchの評価
Hirokazu Onomichi
20190307 visualslam summary
20190307 visualslam summary
Takuya Minagawa
ROSによる今後のロボティクスのあり方
ROSによる今後のロボティクスのあり方
Mori Ken
02 第3.1節-第3.5節 ROS2の基本機能(1/2) ROS2勉強合宿 @別府温泉
02 第3.1節-第3.5節 ROS2の基本機能(1/2) ROS2勉強合宿 @別府温泉
Mori Ken
tf,tf2完全理解
tf,tf2完全理解
Koji Terada
SLAM入門 第2章 SLAMの基礎
SLAM入門 第2章 SLAMの基礎
yohei okawa
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
SSII
SLAM開発における課題と対策の一例の紹介
SLAM開発における課題と対策の一例の紹介
miyanegi
複数のGNSSを用いたポーズグラフ最適化
複数のGNSSを用いたポーズグラフ最適化
TaroSuzuki15
Autoware: ROSを用いた一般道自動運転向けソフトウェアプラットフォーム
Autoware: ROSを用いた一般道自動運転向けソフトウェアプラットフォーム
Takuya Azumi
06 第5.1節-第5.7節 ROS2に対応したツール/パッケージ
06 第5.1節-第5.7節 ROS2に対応したツール/パッケージ
Mori Ken
Direct Sparse Odometryの解説
Direct Sparse Odometryの解説
Masaya Kaneko
03 第3.6節-第3.8節 ROS2の基本機能(2/2)
03 第3.6節-第3.8節 ROS2の基本機能(2/2)
Mori Ken
ドロネー三角形分割
ドロネー三角形分割
Yusuke Matsushita
SLAM勉強会(3) LSD-SLAM
SLAM勉強会(3) LSD-SLAM
Iwami Kazuya
What's hot
(20)
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日
ORB-SLAMの手法解説
ORB-SLAMの手法解説
SLAM勉強会(PTAM)
SLAM勉強会(PTAM)
MoveItの新機能、 pilz industrial motion を試してみた
MoveItの新機能、 pilz industrial motion を試してみた
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
ビーズセッターロボットのためのDYNAMIXEL Workbenchの評価
ビーズセッターロボットのためのDYNAMIXEL Workbenchの評価
20190307 visualslam summary
20190307 visualslam summary
ROSによる今後のロボティクスのあり方
ROSによる今後のロボティクスのあり方
02 第3.1節-第3.5節 ROS2の基本機能(1/2) ROS2勉強合宿 @別府温泉
02 第3.1節-第3.5節 ROS2の基本機能(1/2) ROS2勉強合宿 @別府温泉
tf,tf2完全理解
tf,tf2完全理解
SLAM入門 第2章 SLAMの基礎
SLAM入門 第2章 SLAMの基礎
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
SLAM開発における課題と対策の一例の紹介
SLAM開発における課題と対策の一例の紹介
複数のGNSSを用いたポーズグラフ最適化
複数のGNSSを用いたポーズグラフ最適化
Autoware: ROSを用いた一般道自動運転向けソフトウェアプラットフォーム
Autoware: ROSを用いた一般道自動運転向けソフトウェアプラットフォーム
06 第5.1節-第5.7節 ROS2に対応したツール/パッケージ
06 第5.1節-第5.7節 ROS2に対応したツール/パッケージ
Direct Sparse Odometryの解説
Direct Sparse Odometryの解説
03 第3.6節-第3.8節 ROS2の基本機能(2/2)
03 第3.6節-第3.8節 ROS2の基本機能(2/2)
ドロネー三角形分割
ドロネー三角形分割
SLAM勉強会(3) LSD-SLAM
SLAM勉強会(3) LSD-SLAM
Similar to STMとROSをシリアル通信させて移動ロボットを作る
ROSを用いた歩行ロボットの脚の開発
ROSを用いた歩行ロボットの脚の開発
ShomaUehara
ROS搭載ラズパイでLチカしてみる
ROS搭載ラズパイでLチカしてみる
mozyanari
Ros#を使ったROSとxRデバイスの通信
Ros#を使ったROSとxRデバイスの通信
mozyanari
Agile Tech EXPO - 雑談会話ロボットを Agile に作る
Agile Tech EXPO - 雑談会話ロボットを Agile に作る
Harumitsu Nobuta
瀬戸内ROS勉強会の紹介~地方でROSを勉強するコツ~
瀬戸内ROS勉強会の紹介~地方でROSを勉強するコツ~
Hirokazu Onomichi
ROSのロボットモデルでバーチャルロボット受肉する
ROSのロボットモデルでバーチャルロボット受肉する
UnityTechnologiesJapan002
ロボットにできること あなたにしかできないこと - 近藤豊(IEEE Engineering Spotlight講演資料)
ロボットにできること あなたにしかできないこと - 近藤豊(IEEE Engineering Spotlight講演資料)
Preferred Networks
RPALT 新入社員ロボット
RPALT 新入社員ロボット
Shiro Fukuda
160608 01
160608 01
openrtm
名古屋CV_ROSによるロボットソフトウェア開発の準備
名古屋CV_ROSによるロボットソフトウェア開発の準備
ssuser6b6663
【3/13】【女性限定】ロボットで、何が出来る?ペッパーにふれてみよう&ミニアイデアソン【とのさまラボ】 powered by 朝日新聞メディアラボ
【3/13】【女性限定】ロボットで、何が出来る?ペッパーにふれてみよう&ミニアイデアソン【とのさまラボ】 powered by 朝日新聞メディアラボ
Nishida Kansuke
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
Yuhei Miyazato
仮想のPremaidAIを、既存のロボット用ボードで動かしてみた話
仮想のPremaidAIを、既存のロボット用ボードで動かしてみた話
Hirokazu Onomichi
20230119IoTLT縦・横? ノーコードツールの フロー事情 (1).pptx.pdf
20230119IoTLT縦・横? ノーコードツールの フロー事情 (1).pptx.pdf
ssusera06cae
ロボット用マイコンボードを設計してみた
ロボット用マイコンボードを設計してみた
Bizan Nishimura
Similar to STMとROSをシリアル通信させて移動ロボットを作る
(15)
ROSを用いた歩行ロボットの脚の開発
ROSを用いた歩行ロボットの脚の開発
ROS搭載ラズパイでLチカしてみる
ROS搭載ラズパイでLチカしてみる
Ros#を使ったROSとxRデバイスの通信
Ros#を使ったROSとxRデバイスの通信
Agile Tech EXPO - 雑談会話ロボットを Agile に作る
Agile Tech EXPO - 雑談会話ロボットを Agile に作る
瀬戸内ROS勉強会の紹介~地方でROSを勉強するコツ~
瀬戸内ROS勉強会の紹介~地方でROSを勉強するコツ~
ROSのロボットモデルでバーチャルロボット受肉する
ROSのロボットモデルでバーチャルロボット受肉する
ロボットにできること あなたにしかできないこと - 近藤豊(IEEE Engineering Spotlight講演資料)
ロボットにできること あなたにしかできないこと - 近藤豊(IEEE Engineering Spotlight講演資料)
RPALT 新入社員ロボット
RPALT 新入社員ロボット
160608 01
160608 01
名古屋CV_ROSによるロボットソフトウェア開発の準備
名古屋CV_ROSによるロボットソフトウェア開発の準備
【3/13】【女性限定】ロボットで、何が出来る?ペッパーにふれてみよう&ミニアイデアソン【とのさまラボ】 powered by 朝日新聞メディアラボ
【3/13】【女性限定】ロボットで、何が出来る?ペッパーにふれてみよう&ミニアイデアソン【とのさまラボ】 powered by 朝日新聞メディアラボ
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
仮想のPremaidAIを、既存のロボット用ボードで動かしてみた話
仮想のPremaidAIを、既存のロボット用ボードで動かしてみた話
20230119IoTLT縦・横? ノーコードツールの フロー事情 (1).pptx.pdf
20230119IoTLT縦・横? ノーコードツールの フロー事情 (1).pptx.pdf
ロボット用マイコンボードを設計してみた
ロボット用マイコンボードを設計してみた
STMとROSをシリアル通信させて移動ロボットを作る
1.
STMとROSをシリアル通信させて 移動ロボットを作る もじゃなり @masanari7430
2.
自己紹介 岡山大学の大学院生 ロボット関連の研究しています ROSは2017/4~から初めて3年目 最近朝が起きれなくて,社会人になれるか不安
3.
自分でROS対応ロボットを作ってみる • 研究でi-Cart eduと呼ばれるROS対応ロボッ トを使ってる(一台10万) •
働いてからも自分で使えるロボットが欲しい じゃあ,自分で作るか
4.
ROSだけでロボットは動く? • ROSは色んなライブラリがあるし,DYNAMIXELでサーボを動かせたら ロボットは動く? • SPI,I2Cで動くセンサは?エンコーダの値を読みたいときは? 沢山のセンサのデータを取りたいときは?モータをPID制御するときは? →PCは考える頭としてはとても優秀だけど, 実際にロボットの手足動かすのはマイコンには勝てない 結局,ハードを動かすにはマイコンが必要
5.
関連プロジェクト • mROS • rosserial
stm32 マイコンにノードを乗せる取り組み 柔軟なデータのやり取りが可能 mROSはRenesas GR-PEACHに対応 rosserial stm32はSTM32に対応
6.
シリアル通信を実装する理由 • 移動ロボットとやり取りするのは, PCから移動速度,マイコンからオドメトリだけ →どのデータをやり取りするかすでに分かっている • mROSやrosserial
stm32に依存すると,更新が止まった 時に何も出来なくなる • 全てを自分で実装することでバグが発生した時に 原因を特定しやすくする
7.
何のマイコンを使う?
8.
今まで経験してきたマイコン Renesas (RX621) Arduino STM32
9.
• STM32:種類が豊富で,開発環境(stm32CubeIDE)が神 GUIでピン設定が出来て初期化の部分を自分で書く必要がない チップを買ってきて自作する際も周辺回路が少なくて済む しかも,開発ボードはデバッカの部分でシリアル通信が出来る!!! 優秀だと思うマイコン(個人の感想です) PCとSTM32をシリアル通信して 移動ロボット作ろう
10.
ハードウエアの構成(PC-マイコン間) STM32 Nucleo Board STM32F446REUSBケーブルPC(ROS) シリアル通信
11.
STM32 Nucleo Board STM32F446RE ハードウエアの構成(マイコン-ロボット間) 電源(12v) モータドライバ (L298N) PWM (1KHz)
12.
ハードウエアの構成(全体図) PC モータドライバ マイコン モータ
13.
どうやってシリアル通信すればいい?
14.
ROSのシリアル通信の実装 先行例がある(みっちーさんに教えて頂いた) https://qiita.com/srs/items/efaa8dc0a6d580c7c423
15.
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 前進速度 回転速度
16.
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 を送りたい時
17.
なぜか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
18.
ROSのシリアルポートの設定が原因 デフォルトの設定では改行コード(0x0a)は 改行+復帰(0x0d 0x0a)のwindows基準に変換されて送信 (ただ,これはPC依存かも?) conf_tio.c_oflag &=
~(ONLCR); 以下のコードを追加して,自動変換をやめる
19.
実際に動かしてみた
20.
移動ロボットの動作実験
21.
移動ロボットの動作実験
22.
考察 • エンコーダでフィードバックしていないため 真っ直ぐ進まない • 回転しようとしても搭載したPCが重たいため回転 できなかった •
それでもコントローラに応じてとりあえず動いた
23.
まとめ • STMとROSのシリアル通信に成功して,自作の移動 ロボットを動かした • 市販のROS対応ロボットの偉大さが分かった •
本当は実際に書いたシリアル通信の部分や, STMのコードについても解説したかった • 続きはブログで(たぶん12月中に書きます) http://mozyanari.hatenablog.com/
Download now