عقدة ROS مقيد تتيح التحكم في روبوتات المحمول التي تعمل بها ROS مع Logitech F710 Gamepad. تقوم Joy2Twist Node بتحويل رسالة sensor_msgs/Joy
إلى geometry_msgs/Twist
من أجل توفير أوامر السرعة للروبوت المحمول. لذلك فإن هذه الحزمة متوافقة (ولكنها لا تدعمها Husarion) مع أي وحدة تحكم أخرى في GamePad قادرة على نشر رسالة sensor_msgs/Joy
.
قم بتوصيل الفرح عبر جهاز استقبال Nano USB وتأكد من وجوده في وضع DirectInput (قم بالتبديل في المقدمة o الوسادة مع الحروف D و X ، حدد D ).
لاختبار ما إذا كان Joy يعمل ، استخدم jstest /dev/input/js0
. إذا كان الإخراج هو:
jstest: No such file or directory
انظر ls /dev/input | grep js
وتجد رقم فرحة الخاص بك. إذا كان يختلف ، فطبق التغييرات في compose.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
قم بتوصيل Dongle Logitech F710 USB بجهاز الكمبيوتر الخاص بك. استنساخ هذا الريبو إلى جهاز الكمبيوتر الخاص بك وانتقل إلى 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