macでkachakaでros2でdocker

Mac上でROS2の開発環境を構築中.
kachakaのros2_bridge を動かして,ros2のdocker(Tiryoh)を動かしたはいいけれど,その2つの間がつながっていないので通信ができない….
【Docker】networksで複数のDocker Compose環境間を通信可能にするって記事を参考に作業を進めてみたものの,ros2_bridgeのネットワークが見えない….

wataru@Mac-mini-3 ros2_bridge % docker network ls
NETWORK ID     NAME           DRIVER    SCOPE
58e46623f322   bridge         bridge    local
64f5ce0c2712   host           host      local
4cbb4fba2ca2   none           null      local

kachakaのdocker-compoerを見ると,network_mode: “host”になっている.
これ,Mac だと動かないのでは?
仕方がないので,発想の転換.
まずは,ros2のdockerを動かし,そちらのネットワークに対してkachakaの方から接続しに行きましょう.
というわけで,kachakaの方のdocker-compose.yaml の最後に以下を追加.
(今から考えると,nameの項目ってテキトーかも)

networks:
  default:
    name: rcll2025_default
    external: true

ros2のdockerの方もdocker-compose.yamlを用意して,

    ports:
      - "6080:80"
      - "10000:10000"
      - "10022:22"

で,localhost の10022番ポートに接続することで,sshでつながるようになりました.

ubuntu@b58884aa0df5:~$ ros2 topic list
/kachaka/back_camera/camera_info
/kachaka/back_camera/image_raw
/kachaka/back_camera/image_raw/camera_info
/kachaka/back_camera/image_raw/compressed
/kachaka/diagnostics/error_status
/kachaka/front_camera/camera_info
/kachaka/front_camera/image_raw
/kachaka/front_camera/image_raw/camera_info
/kachaka/front_camera/image_raw/compressed
/kachaka/goal_pose
/kachaka/imu/imu
/kachaka/joint_states
/kachaka/layout/locations/list
/kachaka/layout/shelves/list
/kachaka/lidar/scan
/kachaka/manual_control/cmd_vel
/kachaka/mapping/map
/kachaka/robot_description
/parameter_events
/rosout
/tf
/tf_static

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

*