Dockerized ROSノードにより、Logitech F710ゲームパッドを使用したROS駆動のモバイルロボットを制御できます。 Joy2twistノードは、モバイルロボットに速度コマンドを提供するために、 sensor_msgs/Joy
メッセージをgeometry_msgs/Twist
に変換しています。したがって、このパッケージはsensor_msgs/Joy
メッセージを公開できる他のGamepadコントローラーに準拠しています(しかし、Husarionによってサポートされていません)。
Nano USB受信機を介してJoyを接続し、 DirectInputモード(文字dとxを使用してパッドを前に切り替え、 Dを選択します)を確認します。
Joyが機能するかどうかをテストするには、 jstest /dev/input/js0
使用してください。出力が次の場合:
jstest: No such file or directory
ls /dev/input | grep js
参照してくださいls /dev/input | grep js
とあなたの喜び番号を見つけてください。異なる場合は、 compose.yamlと起動ファイルに変更を適用します。
ROS2ディストリビューション | サポートされているアーキテクチャ |
---|---|
galactic | linux/amd64 、 linux/arm64 |
humble | linux/amd64 、 linux/arm64 |
Docker Hubで入手可能
適切なファームウェアをフラッシュします:
docker stop rosbot-xl microros || true &&
docker run --rm -it --privileged
--mount type=bind,source=/dev/ttyUSBDB,target=/dev/ttyUSBDB
husarion/rosbot-xl:humble-0.8.2-20230913
flash-firmware.py -p /dev/ttyUSBDB
Logitech F710ドングルをRosbot XLに接続して実行(Rosbotで):
cd joy2twist/demo/single_robot
docker compose -f compose.rosbotxl.yaml up
適切なファームウェアをフラッシュします:
docker stop rosbot microros || true && docker run
--rm -it --privileged
husarion/rosbot:humble-0.6.1-20230712
flash-firmware.py /root/firmware.bin
Logitech F710ドングルをRosbot 2Rに接続して実行(Rosbotで):
cd joy2twist/demo/single_robot
docker compose -f compose.rosbot2r.yaml up
Logitech F710 USBドングルをPCに接続します。このリポジトリをPCにクローンし、 joy2twist/demo/
directoryに移動し、別の端末で実行します。
./sync_with_robot.sh < YOUR_ROSBOT_IP >
multiple_robots/.env
ファイルの名前空間を変更します。
ROS_NAMESPACE=robot1
今、あなたのロボットへのssh:
ssh husarion@ < YOUR_ROSBOT_IP >
フォルダー/home/husarion/demo/multiple_robots
に移動し、Rosbotのコンテナを起動します。
docker compose -f compose.rosbot2r.yaml up
トピックフィルタリング
その後、PCで利用可能なROS 2ノードを確認します。
$ ros2 topic list /parameter_events /robot1/cmd_vel /rosoutnly
/robot1/cmd_vel
トピックは、ros2router_config.yaml
ファイルの構成のおかげで、ロボットの外部で利用できることに注意してください。テレオップを使用してロボットを制御するには、
ros2 run teleop_twist_keyboard teleop_twist_keyboard __ns:=/robot1
joy2twist
コンテナを実行するには、 joy2twist/demo/multiple_robots
ディレクトリのPCで次のコマンドを実行します。
docker compose -f compose.pc.yaml up