Dockerized ROS節點允許使用Logitech F710 GamePad控制ROS驅動的移動機器人。 Joy2Twist節點將sensor_msgs/Joy
消息轉換為geometry_msgs/Twist
以便為移動機器人提供速度命令。因此,此軟件包與任何其他能夠發布sensor_msgs/Joy
消息的遊戲手柄控制器合規(但不受Husarion的支持)。
通過Nano USB接收器連接歡樂,並確保它處於直接輸入模式(在前方o板上用字母d和x切換,選擇D )。
要測試Joy是否有效,請使用jstest /dev/input/js0
。如果輸出為:
jstest: No such file or directory
請參閱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 /rosout請注意,由於
ros2router_config.yaml
文件的配置,因此可以在機器人之外提供單個/robot1/cmd_vel
主題。要使用Teleop來控制機器人,只需運行:
ros2 run teleop_twist_keyboard teleop_twist_keyboard __ns:=/robot1
要運行joy2twist
容器在joy2twist/demo/multiple_robots
目錄中執行以下命令:
docker compose -f compose.pc.yaml up