PCA9685HAT基盤をRaspberry pi で使うためのROSパッケージ.
最大で16台のサーボモータを同時に指定した角度に動かすことができます.
- Raspberry pi 3 b+
- ubuntu 20.04 server
- ROS Noetic
- 本パッケージは千葉工業大学ロボットシステム学の講義内で作成したパッケージに変更を加えたものです.また,それに合わせて講義内の環境構築方法に沿って進めております.
- PCA9685 ServoDriverHATデータシート
- Raspberry pi 3b+
- PCA9685 ServoDriverHAT
- Futaba s3003 (同シリーズs3010でも動作確認をしております)
- 12V 直流電源 (RAspberry piの電源も兼ねます)
- Raspberry piのgpioピンにHAT基盤を取り付ける.
- 信号線,電源,GNDの向きに注意してサーボのケーブルをHAT基板に取り付ける.
- 12Vの出力端子をHAT基板に注意して取り付ける.
- 配線を確認し , 12V電源をオンにする.
cd ~/catkin_ws/src
git clone https://github.com/mibuchiyuta/ROS_ServoDriverHAT
cd ~/catkin_ws
catkin_make
source ~/.bashrc
ファイルの編集をする
sudo vi /boot/firmware/config.txt
...
include syscfg.txt
include usercfg.txt
dtparam=i2c_arm=on #末尾にこの行を追加
sudo vi /etc/modules
...
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
i2c-dev
i2c-bcm2708 #末尾にこの2行を追加
その後再起動してツールのインストールを行う
sudo reboot
sudo apt install i2c-tools
sudo apt install python3-smbus
Adafruit Python PCA9685 のインストール
sudo apt install python-pip python3-pip
sudo apt-get install git build-essential python-dev
cd ~
git clone https://github.com/adafruit/Adafruit_Python_PCA9685.git
cd Adafruit_Python_PCA9685
sudo python3 setup.py install
sudo pip install adafruit-pca9685
roslaunch を使う方法
cd ~/catkin_ws/
roslaunch servo_hat servo_hat.launch
...
process[deg_change-2]: started with pid [9555]
process[pulse_out-3]: started with pid [9560]
#0〜180の数字を入力
端末を2画面にし,rosrunを使う方法.
cd ~/catkin_ws/
rosrun servo_hat servo_hat.py
cd ~/catkin_ws/
rosrun servo_hat input_deg.py
deg = #0〜180の数字を入力
計測を行ったところ,s3003を0度から180度動かすときのパルス幅は100から570であることがわかった.従って以下の計算式をプログラムに用いている. また他の利用できるサーボモータを使用する場合,パルス幅の値を変えれば使用可能である.
deg * (570-100) / 180 + 100 = pulse
- ROS : BSD 3-Clause License
- Adafruit Python PCA9685 : MIT License