myCobotをROSで動かす。Jetson Nano上で作成したら、ROS動作が早くて良い。
以下覚書。
(備忘録追加)
基本は GitHubの myCobotROS の手順に従うのだけども、一部うまくいかない対応を備忘録として記載。
ROS はmelodic インストール。
ROS は kinetic をインストールしろとの記載があるが、kinetic は Ubuntu16.04が対象の模様。Jetson NanoはUbuntu18.04LTSなので ROSは melodic にした。
catkin_make が何のパッケージにはいっているか解らず、catkin build 説明があったのでこちらで実行。
# ROS install.pdf のkinetic 指定以外は実行。kinetic 関係は下記に変更。 # よく見ると kinetic-desktop-full インストールが指示されている。melodic-desktop-full をインストールすべきだったが間違えた。 # 2つ追加だけで動いたので結果オーライ。 sudo apt update sudo apt install ros-melodic-desktop sudo apt install ros-melodic-serial sudo apt install ros-melodic-joint-state-publisher-gui #pymycobot インストールも基本 readmeに従うが、一部 pip install pyserial pip install pymycobot #pipでインストール時に--user を付けた場合は あとのPYTHONPATHパス位置を変更必要 # mycobot ROS用一式ダウンロード、コンパイル # catkin_make より catkin build のほうが新しいそうな。 mkdir -p ~/catkin_ws/src git clone https://github.com/elephantrobotics/myCobotROS.git cd ~/catkin_ws catkin init catkin build
USB刺しなおす度にchmod 666 /dev/ttyUSB0 実行が必要で面倒なので、デフォルト権限を変更。こちら やこちら を参照。ありがとうございます。
/etc/udev/rules.d/ 以下に 99-ttyusb.rules として下記内容のファイルを作成。今後USB複数利用の可能性もあり ttyUSB0-9 でcp210x であれば対象にした。
ACTION=="remove", GOTO="serial_end" SUBSYSTEM!="tty", GOTO="serial_end" KERNEL=="ttyUSB[0-9]*",ENV{ID_USB_DRIVER}=="cp210x",MODE="0666" LABEL="serial_end"
python2 (rosバージョン上制限) あちこちでrosとかmycobot が見つからないエラーが出る。
ImportError: No module named roslaunch とか ImportError: No module named pymycobot とか。対策で PYTHONPATHに明記する。 .bashrc に追加。
#.bashrc 最後に下の2行追加 PYTHONPATH=/opt/ros/melodic/lib/python2.7/dist-packages:/usr/local/lib/python2.7/dist-packages/ export PYTHONPATH
ROS関連ツール 一発起動スクリプト。xterm でそれぞれ起動。楽。
スライダーでコントロール版: 表示されるスライダーGUIで操作。
#!/bin/bash xterm -e roscore & sleep 5 xterm -e roslaunch myCobotROS control.launch & sleep 5 xterm -e rosrun rviz rviz -d ~/catkin_ws/src/myCobotROS/config/mycobot.rviz & sleep 5 xterm -e rosrun myCobotROS control_slider.py &
スクリプト制御を画面ROSエミュレーターと同期版:python の pymycobot で操作。楽しい。
#!/bin/bash xterm -e roscore & sleep 5 xterm -e roslaunch myCobotROS mycobot.launch & sleep 5 xterm -e rosrun rviz rviz -d ~/catkin_ws/src/myCobotROS/config/mycobot.rviz & sleep 5 xterm -e rosrun myCobotROS control_marker.py &
先端にM5Cameraをつけると楽しい。電源はアームのGROVE拡張ポートからとれる。マウンターはThingiverseにあります。
では、気を付け、礼。直れ。