Dockerized ROS Node ช่วยให้สามารถควบคุมหุ่นยนต์มือถือที่ขับเคลื่อนด้วย ROS ด้วย GamePad Logitech F710 โหนด Joy2twist กำลังแปลง sensor_msgs/Joy
Message เป็น geometry_msgs/Twist
เพื่อให้คำสั่งความเร็วสำหรับหุ่นยนต์มือถือ ดังนั้นแพ็คเกจนี้จึงเป็นไปตามมาตรฐาน (แต่ไม่รองรับโดย Husarion) กับตัวควบคุม gamepad อื่น ๆ ซึ่งสามารถเผยแพร่ข้อความ sensor_msgs/Joy
ได้
เชื่อมต่อ Joy ผ่านตัวรับสัญญาณ Nano USB และตรวจสอบให้แน่ใจว่าอยู่ใน โหมด DirectInput (สวิตช์ด้านหน้า o แผ่นพร้อมตัวอักษร D และ X เลือก D )
หากต้องการทดสอบว่า Joy ใช้งานได้หรือไม่ให้ใช้ jstest /dev/input/js0
หากผลลัพธ์คือ:
jstest: No such file or directory
ดู ls /dev/input | grep js
และค้นหาหมายเลขความสุขของคุณ หากแตกต่างให้ใช้การเปลี่ยนแปลงใน pospose.yaml และเปิดไฟล์
ROS2 distro | สถาปัตยกรรมที่รองรับ |
---|---|
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 Dongle กับ Rosbot XL และ Run (บน 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 Dongle กับ Rosbot 2R และ Run (บน Rosbot):
cd joy2twist/demo/single_robot
docker compose -f compose.rosbot2r.yaml up
เชื่อมต่อดองเกิล Logitech F710 กับพีซีของคุณ โคลน repo นี้ไปยังพีซีของคุณและไปที่ 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
การกรองหัวข้อ
หากคุณจะตรวจสอบบนพีซีโหนด ROS 2 ที่มีอยู่คุณจะได้รับ:
$ ros2 topic list /parameter_events /robot1/cmd_vel /rosoutโปรดทราบว่าหัวข้อ Single
/robot1/cmd_vel
นั้นมีอยู่ด้านนอกหุ่นยนต์ด้วยการกำหนดค่าจากไฟล์ros2router_config.yaml
ในการควบคุมหุ่นยนต์โดยใช้ teleop เพียงแค่เรียกใช้:
ros2 run teleop_twist_keyboard teleop_twist_keyboard __ns:=/robot1
ในการเรียกใช้คอนเทนเนอร์ joy2twist
ดำเนินการคำสั่งต่อไปนี้บนพีซีของคุณในไดเรกทอรี joy2twist/demo/multiple_robots
:
docker compose -f compose.pc.yaml up