iRobotLab
開始行:
[[up>Speecysロボット/プログラミング関係]]
----
#contents
----
Speecysプログラミングでは,多少関数間の依存等がある.ここ...
*ほぼ共通の流れ [#idb976e8]
spsInitializeDeviceはSpeecysロボットを使用するための初期...
|>|int main(){|
| |spsInitializeDevice|
|~|各種処理|
|~|spsCloseDevice|
|>|}|
*サーボコントロール(動作) &aname(servo_control);[#i5ca95bc]
サーボはRS485経由でコントロールされる.よってspsOpenRS485...
設定1はサーボの諸設定であり,なくてもデフォルトの値が用い...
設定2に関しては安全に用いる為のものであり,使用者が気にし...
各設定が終われば,操作1によってトルクをオンにしてサーボに...
また操作2を用いながら各動作を行わせる.~
希望する動作が終わったら,操作3によってサーボの力を抜いて...
|>|int main(){|
| |spsInitializeDevice|
|~|spsOpenRS485|
|設定1:|spsSetAngleLimitServo|
|~|spsSetComplianceServo|
|~|spsSetPunchServo|
|~|spsSetTorqueRatioServo|
|設定2:|spsGetPresentDataServo|
|~|spsMoveServo|
|操作1:|spsPowerOnOffServo|
|操作2:|spsMoveServo|
|操作3:|spsPowerOnOffServo|
| |spsCloseRS485x|
|~|spsCloseDevice|
|>|}|
*サーボコントロール(状態取得) [#j2b1d3ae]
サーボの情報を取得するプログラムの流れである.状態取得1は...
状態取得1
|>|int main(){|
| |spsInitializeDevice|
|~|spsOpenRS485|
|状態取得1:|spsGetSettingDataServo|
|~|spsSendSettingDataServo, spsReadSettingDataServo|
| |spsCloseRS485x|
|~|spsCloseDevice|
|>|}|
状態取得2
|>|int main(){|
| |spsInitializeDevice|
|~|spsOpenRS485|
|状態取得2:|spsGetPresentDataServo|
|~|spsSendPresentDataServo, spsReadPresentDataServo|
| |spsCloseRS485x|
|~|spsCloseDevice|
|>|}|
**注意 [#w6388dac]
以下のようなプログラムは正常に動かなかった.
-spsSendSettingDataServo ⇒ サーボ1に指令
-spsSendSettingDataServo ⇒ サーボ2に指令
-spsSendSettingDataServo ⇒ サーボ3に指令
-spsReadSettingDataServo ⇒ サーボ1の情報取得
-spsReadSettingDataServo ⇒ サーボ2の情報取得
-spsReadSettingDataServo ⇒ サーボ3の情報取得
よって以下のように記述する必要がある.
-spsSendSettingDataServo ⇒ サーボ1に指令
-spsReadSettingDataServo ⇒ サーボ1の情報取得
-spsSendSettingDataServo ⇒ サーボ2に指令
-spsReadSettingDataServo ⇒ サーボ2の情報取得
-spsSendSettingDataServo ⇒ サーボ3に指令
-spsReadSettingDataServo ⇒ サーボ3の情報取得
*サーボコントロール(一括制御) [#wa4f6a82]
この操作は,動作と状態取得両方を行えるものである.基本的...
|>|int main(){|
| |spsInitializeDevice|
|~|spsOpenRS485|
|操作:|spsSetLongDataServo|
| |spsCloseRS485x|
|~|spsCloseDevice|
|>|}|
*頭部(カメラ以外) [#pb4a28f4]
頭部の制御は二種類.目を光らせるのと首を動かすものである...
首
|>|int main(){|
| |spsInitializeDevice|
|操作1:|spsWritePWM|
| |spsCloseDevice|
|>|}|
目
|>|int main(){|
| |spsInitializeDevice|
|操作2:|spsSetLedSenser|
| |spsCloseDevice|
|>|}|
**注意 [#h596229a]
目のLEDにおけるidと色の対応関係
-led0 ⇒ 左黄
-led1 ⇒ 左緑
-led2 ⇒ 右緑
-led3 ⇒ 左赤
-led4 ⇒ 右赤
-led5 ⇒ 右黄
*頭部(カメラ) [#xef944d7]
操作1は,システム起動後一回だけ実行.Speecysロボットをデ...
操作2はカメラのデータを取得する関数.timeoutを設定するか...
操作3は画像データの変換であり,Speecysロボット上で実行し...
カメラ初期化
|>|int main(){|
| |spsInitializeDevice|
|操作1:|spsInitializeSaa7113|
| |spsCloseDevice|
|>|}|
カメラデータ取得
|>|int main(){|
| |spsInitializeDevice|
|操作2:|spsGetCameraData, spsGetCameraData2|
| |spsCloseDevice|
|>|}|
画像データ変換
|>|int main(){|
|操作3:|spsYUV2RGB|
|>|}|
*主にRPU-100関係 [#a87c6426]
操作1はRPU-100のA/Bボタンの状態取得である.~
操作2はRPU-100のLedの操作・状態取得である.~
操作3はバッテリーの残量の取得であり,相対量(%)ではなく絶...
A/Bボタン
|>|int main(){|
| |spsInitializeDevice|
|操作1:|spsIsPushSwitch|
| |spsCloseDevice|
|>|}|
Led関係
|>|int main(){|
| |spsInitializeDevice|
|操作2:|spsSetLed, spsGetLed|
| |spsCloseDevice|
|>|}|
バッテリー量
|>|int main(){|
| |spsInitializeDevice|
|操作2:|spsGetBatteryVoltage|
| |spsCloseDevice|
|>|}|
*センサーボード関連 [#xaa57f86]
センサーボードに対する各種処理.~
操作1はハードウェアの初期化であり,フレームが歪んだりサー...
操作2はセンサー基盤の通信速度であり,これを変更した場合に...
操作3はセンサーボードの各種情報(Gセンサー・ジャイロセンサ...
初期化・設定
|>|int main(){|
| |spsInitializeDevice|
|操作1:|spsInitSenser|
|操作2:|spsSetBaudRateSenser|
|~|spsSendDataSenser, spsReadDataSenser|
| |spsCloseDevice|
|>|}|
使用
|>|int main(){|
| |spsInitializeDevice|
|操作3:|spsGetDataSenser|
|~|spsSendDataSenser, spsReadDataSenser|
| |spsCloseDevice|
|>|}|
*サーボのハードウェア設定 [#ac560b44]
この操作はサーボのハードウェアをいじくるものであり,非常...
|>|int main(){|
| |spsInitializeDevice|
|~|spsOpenRS485|
|操作:|spsSetIDServo, spsSetIDandBaudRateServo|
| |spsCloseRS485x|
|~|spsCloseDevice|
|>|}|
終了行:
[[up>Speecysロボット/プログラミング関係]]
----
#contents
----
Speecysプログラミングでは,多少関数間の依存等がある.ここ...
*ほぼ共通の流れ [#idb976e8]
spsInitializeDeviceはSpeecysロボットを使用するための初期...
|>|int main(){|
| |spsInitializeDevice|
|~|各種処理|
|~|spsCloseDevice|
|>|}|
*サーボコントロール(動作) &aname(servo_control);[#i5ca95bc]
サーボはRS485経由でコントロールされる.よってspsOpenRS485...
設定1はサーボの諸設定であり,なくてもデフォルトの値が用い...
設定2に関しては安全に用いる為のものであり,使用者が気にし...
各設定が終われば,操作1によってトルクをオンにしてサーボに...
また操作2を用いながら各動作を行わせる.~
希望する動作が終わったら,操作3によってサーボの力を抜いて...
|>|int main(){|
| |spsInitializeDevice|
|~|spsOpenRS485|
|設定1:|spsSetAngleLimitServo|
|~|spsSetComplianceServo|
|~|spsSetPunchServo|
|~|spsSetTorqueRatioServo|
|設定2:|spsGetPresentDataServo|
|~|spsMoveServo|
|操作1:|spsPowerOnOffServo|
|操作2:|spsMoveServo|
|操作3:|spsPowerOnOffServo|
| |spsCloseRS485x|
|~|spsCloseDevice|
|>|}|
*サーボコントロール(状態取得) [#j2b1d3ae]
サーボの情報を取得するプログラムの流れである.状態取得1は...
状態取得1
|>|int main(){|
| |spsInitializeDevice|
|~|spsOpenRS485|
|状態取得1:|spsGetSettingDataServo|
|~|spsSendSettingDataServo, spsReadSettingDataServo|
| |spsCloseRS485x|
|~|spsCloseDevice|
|>|}|
状態取得2
|>|int main(){|
| |spsInitializeDevice|
|~|spsOpenRS485|
|状態取得2:|spsGetPresentDataServo|
|~|spsSendPresentDataServo, spsReadPresentDataServo|
| |spsCloseRS485x|
|~|spsCloseDevice|
|>|}|
**注意 [#w6388dac]
以下のようなプログラムは正常に動かなかった.
-spsSendSettingDataServo ⇒ サーボ1に指令
-spsSendSettingDataServo ⇒ サーボ2に指令
-spsSendSettingDataServo ⇒ サーボ3に指令
-spsReadSettingDataServo ⇒ サーボ1の情報取得
-spsReadSettingDataServo ⇒ サーボ2の情報取得
-spsReadSettingDataServo ⇒ サーボ3の情報取得
よって以下のように記述する必要がある.
-spsSendSettingDataServo ⇒ サーボ1に指令
-spsReadSettingDataServo ⇒ サーボ1の情報取得
-spsSendSettingDataServo ⇒ サーボ2に指令
-spsReadSettingDataServo ⇒ サーボ2の情報取得
-spsSendSettingDataServo ⇒ サーボ3に指令
-spsReadSettingDataServo ⇒ サーボ3の情報取得
*サーボコントロール(一括制御) [#wa4f6a82]
この操作は,動作と状態取得両方を行えるものである.基本的...
|>|int main(){|
| |spsInitializeDevice|
|~|spsOpenRS485|
|操作:|spsSetLongDataServo|
| |spsCloseRS485x|
|~|spsCloseDevice|
|>|}|
*頭部(カメラ以外) [#pb4a28f4]
頭部の制御は二種類.目を光らせるのと首を動かすものである...
首
|>|int main(){|
| |spsInitializeDevice|
|操作1:|spsWritePWM|
| |spsCloseDevice|
|>|}|
目
|>|int main(){|
| |spsInitializeDevice|
|操作2:|spsSetLedSenser|
| |spsCloseDevice|
|>|}|
**注意 [#h596229a]
目のLEDにおけるidと色の対応関係
-led0 ⇒ 左黄
-led1 ⇒ 左緑
-led2 ⇒ 右緑
-led3 ⇒ 左赤
-led4 ⇒ 右赤
-led5 ⇒ 右黄
*頭部(カメラ) [#xef944d7]
操作1は,システム起動後一回だけ実行.Speecysロボットをデ...
操作2はカメラのデータを取得する関数.timeoutを設定するか...
操作3は画像データの変換であり,Speecysロボット上で実行し...
カメラ初期化
|>|int main(){|
| |spsInitializeDevice|
|操作1:|spsInitializeSaa7113|
| |spsCloseDevice|
|>|}|
カメラデータ取得
|>|int main(){|
| |spsInitializeDevice|
|操作2:|spsGetCameraData, spsGetCameraData2|
| |spsCloseDevice|
|>|}|
画像データ変換
|>|int main(){|
|操作3:|spsYUV2RGB|
|>|}|
*主にRPU-100関係 [#a87c6426]
操作1はRPU-100のA/Bボタンの状態取得である.~
操作2はRPU-100のLedの操作・状態取得である.~
操作3はバッテリーの残量の取得であり,相対量(%)ではなく絶...
A/Bボタン
|>|int main(){|
| |spsInitializeDevice|
|操作1:|spsIsPushSwitch|
| |spsCloseDevice|
|>|}|
Led関係
|>|int main(){|
| |spsInitializeDevice|
|操作2:|spsSetLed, spsGetLed|
| |spsCloseDevice|
|>|}|
バッテリー量
|>|int main(){|
| |spsInitializeDevice|
|操作2:|spsGetBatteryVoltage|
| |spsCloseDevice|
|>|}|
*センサーボード関連 [#xaa57f86]
センサーボードに対する各種処理.~
操作1はハードウェアの初期化であり,フレームが歪んだりサー...
操作2はセンサー基盤の通信速度であり,これを変更した場合に...
操作3はセンサーボードの各種情報(Gセンサー・ジャイロセンサ...
初期化・設定
|>|int main(){|
| |spsInitializeDevice|
|操作1:|spsInitSenser|
|操作2:|spsSetBaudRateSenser|
|~|spsSendDataSenser, spsReadDataSenser|
| |spsCloseDevice|
|>|}|
使用
|>|int main(){|
| |spsInitializeDevice|
|操作3:|spsGetDataSenser|
|~|spsSendDataSenser, spsReadDataSenser|
| |spsCloseDevice|
|>|}|
*サーボのハードウェア設定 [#ac560b44]
この操作はサーボのハードウェアをいじくるものであり,非常...
|>|int main(){|
| |spsInitializeDevice|
|~|spsOpenRS485|
|操作:|spsSetIDServo, spsSetIDandBaudRateServo|
| |spsCloseRS485x|
|~|spsCloseDevice|
|>|}|
ページ名:
既存のページ名で編集する