start-jsk / 2015-semi

2 stars 6 forks source link

Baxterのシミュレータをつかってみる #2

Closed k-okada closed 8 years ago

k-okada commented 8 years ago

https://github.com/RethinkRobotics/baxter_simulator

k-okada commented 8 years ago

インストール方法 http://sdk.rethinkrobotics.com/wiki/Simulator_Installation

knorth55 commented 8 years ago

baxterのsimulationをインストールしてキーボード操作できるようになりました

k-okada commented 8 years ago

すばらしい https://github.com/RethinkRobotics/baxter_simulator/pull/52 でgripperのシミュレーションができるはずだけど,試せるかな.(動くかな)

k-okada commented 8 years ago

@wkentaro, @Tnoriaki に聞いてAPCの環境をシミュレーションできるといいですね.

knorth55 commented 8 years ago

gripperのシミュレーションもできました。 screenshot from 2015-10-27 23 54 36

wkentaro commented 8 years ago

@wkentaro, @Tnoriaki に聞いてAPCの環境をシミュレーションできるといいですね.

git clone https://github.com/start-jsk/jsk_apc
rosdep install --from-path . -r -y -I
cd jsk_apc/jsk_2015_apc_common
catkin bt
roslaunch gazebo_ros empty_world.launch

の後Insert からモデルを挿入すると以下のように出来ます。

knorth55 commented 8 years ago

Insertしてモデルを追加することが出来ました。

roslaunch baxter_gazebo baxter_world.launch rosrun baxter_interface joint_trajectory_action_server.py rosrun baxter_interface head_action_server.py を起動した状態でroseus baxter-interface.lを起動すると_baxter_が読み込まれません。 (setq baxter (instance baxter-robot :init))が行われていないのではないかと困っています。

[baxter - http://localhost:11311] mech-user@test1-pc:/opt/ros/indigo/share/baxtereus$ roseus baxter-interface.l 
configuring by "/opt/ros/indigo/share/euslisp/jskeus/eus//lib/eusrt.l"
;; readmacro ;; object ;; packsym ;; common ;; constants ;; stream ;; string ;; loader ;; pprint ;; process ;; hashtab ;; array ;; mathtran ;; eusdebug ;; eusforeign ;; coordinates ;; tty ;; history ;; toplevel ;; trans ;; comp ;; builtins ;; par ;; intersection ;; geoclasses ;; geopack ;; geobody ;; primt ;; compose ;; polygon ;; viewing ;; viewport ;; viewsurface ;; hid ;; shadow ;; bodyrel ;; dda ;; helpsub ;; eushelp ;; xforeign ;; Xdecl ;; Xgraphics ;; Xcolor ;; Xeus ;; Xevent ;; Xpanel ;; Xitem ;; Xtext ;; Xmenu ;; Xscroll ;; Xcanvas ;; Xtop ;; Xapplwin 
connected to Xserver DISPLAY=:0
X events are being asynchronously monitored.
;; pixword ;; RGBHLS ;; convolve ;; piximage ;; pbmfile ;; image_correlation ;; oglforeign ;; gldecl ;; glconst ;; glforeign ;; gluconst ;; gluforeign ;; glxconst ;; glxforeign ;; eglforeign ;; eglfunc ;; glutil ;; gltexture ;; glprim ;; gleus ;; glview ;; toiv-undefined ;; fstringdouble irtmath irtutil irtc irtgeoc irtgraph pgsql irtgeo euspqp pqp irtscene irtmodel irtdyna irtrobot irtsensor irtbvh irtcollada irtpointcloud irtx eusjpeg euspng png irtimage irtglrgb 
;; extending gcstack 0x5f86de0[16374] --> 0x63e2990[32748] top=3f7f
irtgl irtviewer 
EusLisp 9.15( 1.0.10) for Linux64 created on host02.storm.ros.org(Mon Aug 31 15:37:47 UTC 2015)
roseus ;; loading roseus("") on euslisp((9.15 host02.storm.ros.org Mon Aug 31 15:37:47 UTC 2015  1.0.10))
eustf roseus_c_util (instance r1                        
nil
1.irteusgl$ (instance baxter-robot :init)
#<baxter-robot #X7311cb8 baxter  0.0 0.0 0.0 / 0.0 0.0 0.0>
2.irteusgl$ *baxter*
sh: 1: baxter-interface.l: not found
32512
3.irteusgl$ setq *baxter* (instance baxter-robot :init)
#<baxter-robot #X679f1e8 baxter  0.0 0.0 0.0 / 0.0 0.0 0.0>
4.irteusgl$ *baxter*
#<baxter-robot #X679f1e8 baxter  0.0 0.0 0.0 / 0.0 0.0 0.0>
knorth55 commented 8 years ago

bazxter-initをするのを忘れていました。baxter-initをすれば動きました。

knorth55 commented 8 years ago

BaxterのシミュレーターでMove Itを扱おうとすると下記のようなエラーが出ます。

[baxter - http://localhost:11311] mech-user@test1-pc:~/jsk-semi/baxter_sample$ rqt 
cannot ping [/move_group]: unknown node
PluginManager._load_plugin() could not load plugin "rqt_moveit/Moveit":
Traceback (most recent call last):
  File "/opt/ros/indigo/lib/python2.7/dist-packages/qt_gui/plugin_handler.py", line 98, in load
    self._load()
  File "/opt/ros/indigo/lib/python2.7/dist-packages/qt_gui/plugin_handler_direct.py", line 54, in _load
    self._plugin = self._plugin_provider.load(self._instance_id.plugin_id, self._context)
  File "/opt/ros/indigo/lib/python2.7/dist-packages/qt_gui/composite_plugin_provider.py", line 71, in load
    instance = plugin_provider.load(plugin_id, plugin_context)
  File "/opt/ros/indigo/lib/python2.7/dist-packages/qt_gui/composite_plugin_provider.py", line 71, in load
    instance = plugin_provider.load(plugin_id, plugin_context)
  File "/opt/ros/indigo/lib/python2.7/dist-packages/rqt_gui_py/ros_py_plugin_provider.py", line 60, in load
    return super(RosPyPluginProvider, self).load(plugin_id, plugin_context)
  File "/opt/ros/indigo/lib/python2.7/dist-packages/qt_gui/composite_plugin_provider.py", line 71, in load
    instance = plugin_provider.load(plugin_id, plugin_context)
  File "/opt/ros/indigo/lib/python2.7/dist-packages/rqt_gui/ros_plugin_provider.py", line 94, in load
    return class_ref(plugin_context)
  File "/opt/ros/indigo/lib/python2.7/dist-packages/rqt_moveit/moveit_plugin.py", line 47, in __init__
    self._moveit_widget = MoveitWidget(self, plugin_context)
  File "/opt/ros/indigo/lib/python2.7/dist-packages/rqt_moveit/moveit_widget.py", line 111, in __init__
    self.sig_sysmsg = self._widget_topic.sig_sysmsg
AttributeError: 'TopicWidget' object has no attribute 'sig_sysmsg'

調べてみたところrqt_moveitのgithubにも同じissueを書いている人がいました。 https://github.com/ros-visualization/rqt_robot_plugins/issues/77

knorth55 commented 8 years ago

またrqtをおこなってJoint trajectory controllerを行っても選択するcontrollerに何も表示されない問題も解決していません。 screenshot from 2015-11-02 23 06 05

rosserviceで呼び出してみたところcontrollerはlist_controllersとlist_controller_typesには入っているようです。

[baxter - http://localhost:11311] mech-user@test1-pc:~/jsk-semi/baxter_sample/src$ rosservice call /robot/controller_manager/list_controllers
controller: 
  - 
    name: joint_state_controller
    state: running
    type: joint_state_controller/JointStateController
    hardware_interface: hardware_interface::JointStateInterface
    resources: []
  - 
    name: left_joint_position_controller
    state: running
    type: baxter_sim_controllers/BaxterPositionController
    hardware_interface: hardware_interface::EffortJointInterface
    resources: ['left_e0', 'left_e1', 'left_s0', 'left_s1', 'left_w0', 'left_w1', 'left_w2']
  - 
    name: right_joint_position_controller
    state: running
    type: baxter_sim_controllers/BaxterPositionController
    hardware_interface: hardware_interface::EffortJointInterface
    resources: ['right_e0', 'right_e1', 'right_s0', 'right_s1', 'right_w0', 'right_w1', 'right_w2']
  - 
    name: head_position_controller
    state: stopped
    type: baxter_sim_controllers/BaxterHeadController
    hardware_interface: hardware_interface::EffortJointInterface
    resources: ['head_pan']
  - 
    name: left_joint_velocity_controller
    state: stopped
    type: baxter_sim_controllers/BaxterVelocityController
    hardware_interface: hardware_interface::EffortJointInterface
    resources: ['left_e0', 'left_e1', 'left_s0', 'left_s1', 'left_w0', 'left_w1', 'left_w2']
  - 
    name: right_joint_velocity_controller
    state: stopped
    type: baxter_sim_controllers/BaxterVelocityController
    hardware_interface: hardware_interface::EffortJointInterface
    resources: ['right_e0', 'right_e1', 'right_s0', 'right_s1', 'right_w0', 'right_w1', 'right_w2']
  - 
    name: left_joint_effort_controller
    state: stopped
    type: baxter_sim_controllers/BaxterEffortController
    hardware_interface: hardware_interface::EffortJointInterface
    resources: ['left_e0', 'left_e1', 'left_s0', 'left_s1', 'left_w0', 'left_w1', 'left_w2']
  - 
    name: right_joint_effort_controller
    state: stopped
    type: baxter_sim_controllers/BaxterEffortController
    hardware_interface: hardware_interface::EffortJointInterface
    resources: ['right_e0', 'right_e1', 'right_s0', 'right_s1', 'right_w0', 'right_w1', 'right_w2']
[baxter - http://localhost:11311] mech-user@test1-pc:~/jsk-semi/baxter_sample/src$ rosservice call /robot/controller_manager/list_controller_types 
types: ['baxter_sim_controllers/BaxterEffortController', 'baxter_sim_controllers/BaxterHeadController', 'baxter_sim_controllers/BaxterPositionController', 'baxter_sim_controllers/BaxterVelocityController', 'controller_manager_tests/EffortTestController', 'controller_manager_tests/MyDummyController', 'diff_drive_controller/DiffDriveController', 'effort_controllers/GripperActionController', 'effort_controllers/JointEffortController', 'effort_controllers/JointGroupEffortController', 'effort_controllers/JointPositionController', 'effort_controllers/JointTrajectoryController', 'effort_controllers/JointVelocityController', 'force_torque_sensor_controller/ForceTorqueSensorController', 'imu_sensor_controller/ImuSensorController', 'joint_state_controller/JointStateController', 'position_controllers/GripperActionController', 'position_controllers/JointGroupPositionController', 'position_controllers/JointPositionController', 'position_controllers/JointTrajectoryController', 'velocity_controllers/JointGroupVelocityController', 'velocity_controllers/JointPositionController', 'velocity_controllers/JointTrajectoryController', 'velocity_controllers/JointVelocityController']
base_classes: ['controller_interface::ControllerBase', 'controller_interface::ControllerBase', 'controller_interface::ControllerBase', 'controller_interface::ControllerBase', 'controller_interface::ControllerBase', 'controller_interface::ControllerBase', 'controller_interface::ControllerBase', 'controller_interface::ControllerBase', 'controller_interface::ControllerBase', 'controller_interface::ControllerBase', 'controller_interface::ControllerBase', 'controller_interface::ControllerBase', 'controller_interface::ControllerBase', 'controller_interface::ControllerBase', 'controller_interface::ControllerBase', 'controller_interface::ControllerBase', 'controller_interface::ControllerBase', 'controller_interface::ControllerBase', 'controller_interface::ControllerBase', 'controller_interface::ControllerBase', 'controller_interface::ControllerBase', 'controller_interface::ControllerBase', 'controller_interface::ControllerBase', 'controller_interface::ControllerBase']
k-okada commented 8 years ago

@wkentaro kiva_pod を gazeboの中に表示して立ち上げるlaunch はありますか?なければ,@knorth55 にやってもらおうと思います.

wkentaro commented 8 years ago
$ roslaunch jsk_2015_05_baxter_apc baxter_world.launch
knorth55 commented 8 years ago

jsk_2015_05_baxter_apc/launch/にbaxter_world.launchというファイルはありませんでした。他にあったbaxter.launchを起動してもbaxterしかでてきませんでした。

k-okada commented 8 years ago

コレは治ったんだっけ?

◉ Kei Okada

On Wed, Nov 4, 2015 at 5:57 PM, Shingo Kitagawa notifications@github.com wrote:

jsk_2015_05_baxter_apc/launch/にbaxter_world.launchというファイルはありませんでした。他にあったbaxter.launchを起動してもbaxterしかでてきませんでした。

— Reply to this email directly or view it on GitHub https://github.com/start-jsk/2015-semi/issues/2#issuecomment-153644665.

knorth55 commented 8 years ago

screenshot from 2015-11-10 11 26 23 baxter_world.launchをlaunchすることはできました。

roslaunch jsk_2015_05_baxter_apc baxter_world.launch kiva:=True

とすることでkivaをgazeboに表示することが出来ました。

k-okada commented 8 years ago

https://github.com/RethinkRobotics/baxter_simulator/pull/52#issuecomment-151778517

は治ったんだかけ?あと,simulatorはhttps://github.com/start-jsk/jsk_apc/pull/964 に引き継がれているので,これをフォローしましょう.

knorth55 commented 8 years ago

これは治りました。

knorth55 commented 8 years ago

前回のゼミの際に助けてもらったおかげでBaxterの手の周りのPointCloudをリアルタイムでとることができるようになりました。robot_self_filterなどをかけて綺麗に手先周りだけを取れるようにしたいと思っています。 また、これをjskのbaxterと同じように掃除機のグリップの入ったurdfで行いたいと思っているんですが、それはどこにありますか? screenshot from 2015-11-20 09 02 22

k-okada commented 8 years ago

https://github.com/start-jsk/jsk_apc/blob/master/jsk_2015_05_baxter_apc/launch/baxter_world.launch かな. cc: @wkentaro

◉ Kei Okada

2015-11-20 9:06 GMT+09:00 Shingo Kitagawa notifications@github.com:

前回のゼミの際に助けてもらったおかげでBaxterの手の周りのPointCloudをリアルタイムでとることができるようになりました。robot_self_filterなどをかけて綺麗に手先周りだけを取れるようにしたいと思っています。 また、これをjskのbaxterと同じように掃除機のグリップの入ったurdfで行いたいと思っているんですが、それはどこにありますか? [image: screenshot from 2015-11-20 09 02 22] https://cloud.githubusercontent.com/assets/9300063/11288240/95801ba2-8f65-11e5-84a7-d4fb89330677.png

— Reply to this email directly or view it on GitHub https://github.com/start-jsk/2015-semi/issues/2#issuecomment-158239348.

wkentaro commented 8 years ago

また、これをjskのbaxterと同じように掃除機のグリップの入ったurdfで行いたいと思っているんですが、それはどこにありますか?

実機用がhttps://github.com/start-jsk/jsk_apc/blob/master/jsk_2015_05_baxter_apc/urdf/baxter_custom.xacro gazebo用がhttps://github.com/start-jsk/jsk_apc/blob/master/jsk_2015_05_baxter_apc/urdf/baxter.xacro

となっています。

前回のゼミの際に助けてもらったおかげでBaxterの手の周りのPointCloudをリアルタイムでとることができるようになりました。robot_self_filterなどをかけて綺麗に手先周りだけを取れるようにしたいと思っています。

手先だけの点群は https://github.com/start-jsk/jsk_apc/blob/master/jsk_2015_05_baxter_apc/launch/recognition_in_hand.launch#L43 robot_self_filter後の点群は https://github.com/start-jsk/jsk_apc/blob/master/jsk_2015_05_baxter_apc/launch/recognition_in_hand.launch#L57 をrvizで表示すると見られると思います。

https://github.com/start-jsk/jsk_apc/blob/master/jsk_2015_05_baxter_apc/launch/baxter_world.launch かな. cc: @wkentaro

gazeboで実際に付いている吸引ハンドを表示するにはbaxter_world.launchをそのまま実行すればできるはずです。 ただ、euslispがbaxterの公式のurdfに対応していないので、euslispで動かす際には、 https://github.com/start-jsk/jsk_apc/blob/master/jsk_2015_05_baxter_apc/urdf/baxter.xacro#L3 のbaxter.urdfをbaxter_simple.urdfへ変える必要があります。 ただ、gazebo上での見た目がかなり変わってしまい、多分色がつかないです。 @k-okada この問題はRethinkの方で治そうという動きはありますか。

knorth55 commented 8 years ago

前回のゼミで教えていただいた棚だけのmaskとそのindicesからpoint cloud をとることができました。 screenshot from 2015-11-27 16 10 43 この得たpoint cloudとmask画像を活用して棚にあるものだけのpoint cloudを抽出したいと思います。

knorth55 commented 8 years ago

screenshot from 2015-12-11 03 09 34 mask ものすごく反映は遅いですがmask画像を作れました。 棚の移動なしだとこんなかんじです。

knorth55 commented 8 years ago

棚の移動を行うとこうなってしまいました。補正が行われていないようなので直します。 mask