Skip to main content
qrb_ros_transport ๆ˜ฏ้ขๅ‘ Qualcomm ๆœบๅ™จไบบๅนณๅฐ็š„้›ถๆ‹ท่ด ROS 2 ไผ ่พ“ใ€‚ๅฎƒๅŸบไบŽ REP 2007๏ผˆ็ฑปๅž‹้€‚้…๏ผ‰ๅฎž็Žฐ๏ผŒ่ฏฅ่ง„่Œƒๅ…่ฎธ ROS ่Š‚็‚นๅฃฐๆ˜ŽๆŸไธช่‡ชๅฎšไน‰ๆถˆๆฏ็ฑปๅž‹ๅฏไธŽๆ ‡ๅ‡†็ฑปๅž‹ไบ’ๆขโ€”โ€”ๅ› ๆญคไธญ้—ดไปถๅฏไปฅ็›ดๆŽฅไผ ้€’ๆ‘„ๅƒๅคด ISP ๅ†™ๅ…ฅ็š„ DMAโ€‘buf ๆ–‡ไปถๆ่ฟฐ็ฌฆ๏ผŒ่€Œไธๆ˜ฏๅบๅˆ—ๅŒ–ๅนถๅคๅˆถๅƒ็ด ่ฝฝ่ทใ€‚ ๅœจๆ ‡ๅ‡†่ทฏๅพ„ไธญ๏ผŒๆฏไธช่ฎข้˜…่€…้ƒฝไผšๆ”ถๅˆฐๅธง็š„็‹ฌ็ซ‹ๅ‰ฏๆœฌ๏ผŒ่€Œๆฏไปฝๅ‰ฏๆœฌ้ƒฝๆ˜ฏไธ€ๆฌก CPU memcpyใ€‚ๅœจ QRB ่ทฏๅพ„ไธญ๏ผŒ็”Ÿไบง่€…ๅ’Œๆ‰€ๆœ‰ๆถˆ่ดน่€…ๅ…ฑไบซๅŒไธ€ไธช DMA ็ผ“ๅ†ฒๅŒบโ€”โ€”ๅœจ ROS ๅ›พไธญไผ ่พ“็š„ๆ˜ฏ fd๏ผŒ่€Œไธๆ˜ฏๅƒ็ด ใ€‚

ๆ”ฏๆŒ็š„้€‚้…็ฑปๅž‹

ไธŠๆธธ่ฟ˜ๅญ˜ๅœจไธ€ไธช Imu ้€‚้…็ฑปๅž‹๏ผŒไฝ†้€š่ฟ‡ๅฎƒ็”Ÿไบงๆ•ฐๆฎ้œ€่ฆ qrb_sensor_client + RB3 Gen2 ๅฅ—ไปถไธŠ็‰นๅฎš็š„ ICM-42688 IMUใ€‚ๅฆ‚ๆžœๆ‚จๆฐๅฅฝๆ‹ฅๆœ‰่ฏฅ็กฌไปถ๏ผŒ่ฏทๅ‚่ง qrb_ros_imuใ€‚ๅฏนไบŽๅ…ธๅž‹็”จไพ‹๏ผŒๅธฆๅฎฝๆ”ถ็›Šไธป่ฆๅœจ Image ๅ’Œ PointCloud2 ไธŠโ€”โ€”IMU ่ฝฝ่ท้žๅธธๅฐ๏ผŒ้›ถๆ‹ท่ดๅธฆๆฅ็š„ๆ”ถ็›Šไธๅคงใ€‚

ๆ”ฏๆŒ็š„็›ฎๆ ‡

ไธŠๆธธ qrb_ros_transport README ็›ฎๅ‰ๆœชๅˆ—ๅ‡บ IQโ€‘8275 EVKใ€‚ๆž„ๅปบไน‹ๅ‰่ฏทๆŸฅ็œ‹ไธŠๆธธไป“ๅบ“ไปฅ่Žทๅ–ๆœ€ๆ–ฐๆ”ฏๆŒ็š„็›ฎๆ ‡ใ€‚

ไธŽๆ ‡ๅ‡† image_transport ๅฏนๆฏ”

ๆ ‡ๅ‡† image_transport / sensor_msgs::Image ๆ€ปๆ˜ฏๅฐ†่ฝฝ่ทๅบๅˆ—ๅŒ–ๅˆฐ ROS ๆถˆๆฏไธญ๏ผŒๅนถๅฐ†ๅ…ถๅคๅˆถๅˆฐๆฏไธช่ฎข้˜…่€…็š„็ผ“ๅ†ฒๅŒบใ€‚่ฟ™ๅฏนไบŽๅฐ่ฏ้ข˜ๅ’Œ้ฉป็•™ๅœจ CPU ไธญ็š„ๆ•ฐๆฎๆฒก้—ฎ้ข˜๏ผŒไฝ†ๅฝ“็”Ÿไบง่€…ๆ˜ฏไธ€ไธชๅฐ†ๅธงๅ†™ๅ…ฅ DMA ๅ†…ๅญ˜็š„็กฌไปถๆจกๅ—๏ผˆๆ‘„ๅƒๅคด ISP ๆ˜ฏๅธธ่งๆƒ…ๅ†ต๏ผ‰ใ€่€Œๆถˆ่ดน่€…ๆ˜ฏๅฆไธ€ไธช็กฌไปถๆจกๅ—๏ผˆGPU ็”จไบŽ้ขœ่‰ฒ่ฝฌๆขใ€NPU ็”จไบŽๆŽจ็†ใ€EVA ็”จไบŽ่ฎก็ฎ—ๆœบ่ง†่ง‰ๆ“ไฝœ๏ผ‰ๆ—ถ๏ผŒ่ฟ™ๅฐฑๆ˜ฏ็™ฝ่ดนๅŠŸๅคซใ€‚qrb_ros_transport ๆญฃๆ˜ฏไธบ่ฟ™็ง็กฌไปถๅˆฐ็กฌไปถ็š„ๅœบๆ™ฏ่€Œๅญ˜ๅœจโ€”โ€”ๅƒ็ด ็•™ๅœจ DMA ๅ†…ๅญ˜ไธญ๏ผŒๅชๆœ‰ fd ๅœจ็งปๅŠจใ€‚ ๅฆ‚ๆžœๆ‚จ่ฏ้ข˜็š„ไธค็ซฏ้ƒฝๆ˜ฏ CPU ไปฃ็ ๏ผŒๆ ‡ๅ‡† image_transport ๅฐฑๅคŸ็”จไธ”ๆ›ด็ฎ€ๅ•ใ€‚้›ถๆ‹ท่ด็š„ๆ”ถ็›Š้š๏ผˆ่ฝฝ่ทๅคงๅฐ ร— ่ฎข้˜…่€…ๆ•ฐ้‡ ร— ่ทจ่ถŠ็š„่Š‚็‚น่พน็•Œๆ•ฐ้‡๏ผ‰่€Œๅขž้•ฟใ€‚

ๅฎ‰่ฃ…

่ฟ™ไบ›ๆญฅ้ชค้œ€่ฆ Qualcommยฎ IoT ๅนณๅฐไธŠ็š„ Ubuntu ๅ’Œ ROS 2 Jazzyใ€‚ๅฆ‚ๆžœๅฐšๆœชๅ‡†ๅค‡ๅฅฝ๏ผŒ่ฏทไปŽๅœจ Qualcomm IoT ๅนณๅฐไธŠๅฎ‰่ฃ… Ubuntu ๅ’Œๅฎ‰่ฃ… ROS Jazzy ๅผ€ๅง‹ใ€‚ๅฏนไบŽ Qualcomm Linux๏ผŒ่ฏทๆ”น็”จ QIRP SDKใ€‚
1

ๆทปๅŠ  Qualcomm IoT PPA

2

ๅฎ‰่ฃ… Debian ่ฝฏไปถๅŒ…

็”จๆณ•

ๅฐ†้€‚้…็ฑปๅž‹ๆทปๅŠ ไธบไพ่ต–้กน๏ผŒ็„ถๅŽๅƒ้’ˆๅฏนไปปไฝ•็ฑปๅž‹ๅŒ– ROS ๆถˆๆฏไธ€ๆ ท็ผ–ๅ†™ไปฃ็ โ€”โ€”ๅ…ถไฝ™ไบค็”ฑไธญ้—ดไปถๅค„็†ใ€‚
ๅฎ‰่ฃ…ๅผ€ๅ‘ไพ่ต–้กน๏ผš
ไฝฟ็”จ colcon ๅ…‹้š†ๅนถๆž„ๅปบ๏ผš
qrb_ros_transport ๅปบ็ซ‹ๅœจๅŒไธ€็ป„็ป‡ไธญ็š„ไธคไธชไธŠๆธธ่ฝฏไปถๅŒ…ไน‹ไธŠ๏ผšไฝฟ็”จ qrb_ros_transport ๆ—ถ๏ผŒๆ‚จไธไผš็›ดๆŽฅไธŽ่ฟ™ไธค่€…ไบคไบ’โ€”โ€”ๅฎƒไปฌไผš่ขซไผ ้€’ๆ€งๅœฐๅผ•ๅ…ฅใ€‚่ฟ™ไบ›้“พๆŽฅๆ˜ฏไธบๆƒณไบ†่งฃๅฎŒๆ•ดๆŠ€ๆœฏๆ ˆใ€ๆˆ–้œ€่ฆๅฐ†ไปฃ็ ็งปๆคๅˆฐๆ”ฏๆŒ DMA-heap ็š„้ž Qualcomm Linux SoC ็š„่ฏป่€…ๆไพ›็š„๏ผš
  • dmabuf_transport โ€” ้ขๅ‘ Image ๅ’Œ PointCloud2 ็š„ๅฏ็งปๆค REP 2007 ้€‚้…็ฑปๅž‹ใ€‚ๅฏๅœจไปปไฝ•ๅธฆ DMA heap ็š„ Linux 5.12+ SoC ไธŠ่ฟ่กŒใ€‚
  • lib_mem_dmabuf โ€” ็”จๆˆทๆ€ C++ DMA-buf ๅˆ†้…ๅบ“ใ€‚ไป…ๅœจ่ฟ›่กŒ้ž ROS ไบ’ๆ“ไฝœ๏ผˆGStreamerใ€V4L2ใ€่‡ชๅฎšไน‰้ฉฑๅŠจใ€OpenGL ES๏ผ‰ๆ—ถๆ‰็›ดๆŽฅไฝฟ็”จใ€‚

็›ธๅ…ณๅ†…ๅฎน

  • ๅฐ† qrb_ros_transport ็”จไฝœๆ‘„ๅƒๅคด่ทฏๅพ„็š„็คบไพ‹ๆตๆฐด็บฟ๏ผšQRB ROS Samplesใ€‚
  • ไธŠๆธธๆบ็ ๅ’Œๆœ€ๆ–ฐๆ–‡ๆกฃ๏ผšqualcomm-qrb-ros/qrb_ros_transportใ€‚