Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

ROS2 humbleでxArm公式力覚センサーを使えるようにする

実際のところ

サービスを有効化し、力覚センサーを有効化する

設定ファイル

$ 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])