Logitech F710 Gamepad를 사용하여 ROS- 구동 모바일 로봇을 제어 할 수있는 Dockerized ROS 노드. Joy2Twist 노드는 모바일 로봇에 대한 속도 명령을 제공하기 위해 sensor_msgs/Joy
메시지를 geometry_msgs/Twist
로 변환합니다. 따라서이 패키지는 sensor_msgs/Joy
메시지를 게시 할 수있는 다른 게임 패드 컨트롤러와 함께 준수 (Husarion에서 지원하지 않음)입니다.
Nano USB 수신기를 통해 Joy를 연결하고 DirectInput 모드 에 있는지 확인하십시오 (전면 O라는 전 스위치 O 문자 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 Dongle을 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을 사용하여 로봇을 제어하려면 Just Run :
ros2 run teleop_twist_keyboard teleop_twist_keyboard __ns:=/robot1
joy2twist
컨테이너를 실행하려면 joy2twist/demo/multiple_robots
디렉토리에서 PC에서 다음 명령을 실행합니다.
docker compose -f compose.pc.yaml up