実際のところ
サービスを有効化し、力覚センサーを有効化する
設定ファイル
$ cd ~/dev_ws/install/xarm_api/share/xarm_api/config/ $ vim xarm_params.yaml
最終的に、falseになっている以下の行をtrueにして有効化。
ft_sensor_enable: true ... get_ft_sensor_data: true
この状態で、xarm ros2のlaunchを起動
$ ros2 launch xarm_api xarm7_driver.launch.py robot_ip:=192.168.1.200
トピックを確認すると……ある
$ ros2 service list | grep ft /xarm/ft_sensor_enable /xarm/get_ft_sensor_data
力覚センサーの有効化
ROS2はデータ型もちゃんと指定してやらないと何も受け付けてくれません。
私はこれで20分ほど無駄に使いました(自己批判
$ ros2 service call /xarm/ft_sensor_enable xarm_msgs/srv/SetInt16 "{data : 1}" waiting for service to become available... requester: making request: xarm_msgs.srv.SetInt16_Request(data=1) response: xarm_msgs.srv.SetInt16_Response(ret=0, message='data=1')
値の取得
$ ros2 service call /xarm/get_ft_sensor_data xarm_msgs/srv/GetFloat32List waiting for service to become available... requester: making request: xarm_msgs.srv.GetFloat32List_Request() response: xarm_msgs.srv.GetFloat32List_Response(ret=0, message='datas=[ 0.273371, 1.218725, 3.875058, 0.008263, 0.003249, 0.005028 ]', datas=[0.2733708918094635, 1.2187250852584839, 3.87505841255188, 0.008263208903372288, 0.003248709486797452, 0.005027981474995613])