続き
前回からマニピュレーターを動かす部分について解説します。
- 下記をしたらサブディレクトリにmoveit_configパッケージが含まれています。
$ git clone https://github.com/ROBOTIS-GIT/turtlebot3_manipulation.git
Manipulatorを動かす
Moveit Python TutorialのPlanning to a Joint Goalを参考にします。
スクリプト書く
- manipulator_controllerパッケージを作成する
$ cd ~/catkin_ws/src
$ catkin_create_pkg manipulator_controller std_msgs rospy
- パッケージの中に移動してscriptsってフォルダ作る
$ makdir scripts
- manipulation_controller.pyの実行スクリプト作成
$ touch manipulation_controller.py
manipulation_controller.py作成して、やってること
- group_nameからmove group objectを取得する
group_name = "panda_arm"
group = moveit_commander.MoveGroupCommander(group_name)
- Jointの現在のポジションを取得
# We can get the joint values from the group and adjust some of the values:
joint_goal = group.get_current_joint_values()
- こんな感じでとれます
[-0.002, -1.011, 0.311, 0.699]
4つのJointのマニプレーターなので。4つ取れる。
- Homeポジション: [-0.002, -1.011, 0.311, 0.699]
joint_goal[0] = -0.002
joint_goal[1] = -1.011
joint_goal[2] = 0.311
joint_goal[3] = 0.699
- 指定のポジションへの実行、終了を伝える
self.group.go(joint_goal, wait=True)
group.stop()
実行
- そのまえにビルドしておく
$ cd ~/catkin_ws/
$ catkin build
- 実行
rosrun manipulator_controller manipulation_controller.py
DEMO結果
- DEMOの様子がYoutubeに公開されるはずです。。。ARMarkerを使用して巡回しながら、マニュピレーターでメータをチェックすることができました。
終わりに
-
ROSの基礎知識は基本的にRobot Ignite Academyからでサブスクリプションもあります。
-
トラブルシューティングなど
-
タイヤのモーターが回らなくなる問題が結構発生する
下記の方法で解決しました。マニュアルはしっかり見るべきという。自戒。
Setup DYNAMIXEL’s for TurtleBot3 -
タイヤの大きさを変更したらプログラムも変更しないと行けない話
Turtlebot3とrealsenseで作るお手軽移動ロボットros japan ug #23 関西勉強会参考にしました。
タイヤの値を変更してArduinoIDEでOpenCRにアップロードしないといけません。
-
参考
Webの人がROSを勉強するには
- オンライン
- 書籍
- ROS Robot Programming : Englishはfree
- ROS2