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