ROS có thể chạy trên Raspberry Pi không?


28

ROS có thể chạy trên Raspberry Pi không?

ROS được từ chức để chạy trên một mạng máy, với các máy khác nhau, thậm chí các lõi khác nhau trên cùng một máy làm các công việc khác nhau. Một trong những máy đó có thể là Raspberry Pi không?

Tôi đang xem xét sử dụng R-Pi làm chủ EtherCAT trên robot di động, giao tiếp với PC chính qua WiFi, sử dụng khóa.

  • Một R-Pi thậm chí có thể chạy ROS không?
  • R-Pi có đủ sức mạnh xử lý để thực hiện một số servo 1kHz không?
  • Có thể chạy một số servo trên máy chủ thông qua kết nối WiFi không?

Câu trả lời:


16

Hệ điều hành RaspberryPi chính thức là phiên bản của Debian, nhưng cũng có phiên bản ArchLinux trên trang web của họ .

Bất chấp tuyên bố của ROS là đa nền tảng, họ chỉ chính thức hỗ trợ Ubuntu vào lúc này. Tuy nhiên, cài đặt thử nghiệm đã được thực hiện cho các HĐH sau, theo ros.org :

  • OS X (Homebrew)
  • Fedora
  • Gentoo
  • OpenSUSE
  • Debian
  • Arch Linux
  • các cửa sổ

Mặc dù tôi không có kinh nghiệm trực tiếp nào (hai Pis của tôi đang xấu hổ ngồi trong góc), ros.org có một hướng dẫn thiết lập nhanh chóng và bẩn thỉu .

Có hướng dẫn tương tự trên answer.ros.org .

Trong trường hợp bạn gặp phải bất kỳ vấn đề nào, diễn đàn RaspberryPi cũng có thể giúp ích. Và, tất nhiên, SE đã có PI.SE rất riêng (Cảm ơn @Jivings và @ppumkin đã nhắc nhở).

Nếu không, chỉ cần google "ros raspberry pi" và bạn sẽ tìm thấy nhiều thông tin hơn.


IMO, Debian là lựa chọn tốt hơn cho Raspberry Pi. Tôi tin rằng bạn sẽ thấy nó dễ dàng hơn và được hỗ trợ tốt hơn từ góc độ cộng đồng khi phản đối các hương vị khác của Hạt nhân Linux.
DogEatDog

3
@DogEatDog Tôi không đồng ý, Arch cũng được hỗ trợ rất tốt. Ngoài ra, không biết xấu hổ cắm ở đây; Bất kỳ vấn đề nào của Raspberry Pi từ câu hỏi này sẽ được nhận một cách biết ơn tại Raspberry Pi cũng như các diễn đàn chính thức.
Jivings

@Jivings Tôi không thể tin rằng tôi đã quên kiểm tra RaspberryPi.SE ... Mặc dù tìm kiếm nhanh cho ROS không đưa ra bất kỳ kết quả nào cho đến nay ;-)
ThomasH

@ThomasH - Bạn có nghĩ rằng bạn có thể thêm vào câu trả lời của mình một liên kết để đến với PI.SE Chúng tôi có phân bổ câu trả lời ở đó và có thể là một số giải pháp. Tôi không chỉ muốn chỉnh sửa câu trả lời của mình vì nó đúng.
Piotr Kula

Bởi vì ROS chạy theo BSD - Nó không được hỗ trợ cho đến khi bản FreeBSD mới phát hành- Và tất nhiên, nguồn ROS cũng sẽ phải chạy trên mã BSD mới nhất. Tất cả phải làm với phao cứng và một số cập nhật trình điều khiển cho ARM cụ thể được tạo bởi BroadCom (PS - Trình điều khiển video từ BCM sẽ được mở nguồn để có sự hỗ trợ nhiều hơn trong tương lai)
Piotr Kula

6

Robotics là đủ khó như nó là khi tất cả các phụ thuộc của bạn đang làm việc. Điều cuối cùng bạn cần là các vấn đề bổ sung đến từ các thành phần không tương thích hoặc các kết hợp không được hỗ trợ.

Tôi đã xem xét điều này một chút và đây là sự tiến bộ của tôi:

Raspberry Pi không hỗ trợ Ubuntu vì CPU ARM sử dụng bộ hướng dẫn cũ hơn (ARM v6 tôi tin không?) Và nhóm Ubuntu đã bỏ hỗ trợ cho việc này trở lại vào năm 2009.

Beaglebone tương tự như Raspberry Pi theo nhiều cách và có bộ hướng dẫn mới hơn để nó sẽ chạy Ubuntu. Tuy nhiên, bản phân phối Ubuntu ARM 'tốt nhất' sắp ra khỏi dự án Linaro và họ đã bỏ hỗ trợ cho Beaglebone một vài bản sửa đổi (cuối cùng là Linaro 12.03) vì nó sử dụng bộ xử lý TI OMAP 3 cũ hơn (chào mừng bạn đến với thế giới tuyệt vời của điện thoại thông minh nhanh chóng phát triển).

Bước tiếp theo của tôi là xem xét TI Pandaboard sử dụng bộ xử lý OMAP 4 mới hơn hiện đang được hỗ trợ, nhưng nó có giá gần hơn với phạm vi 200 đô la.

Nhưng giờ đây, Ubuntu chính thức được phát hành cho Nexus 7. Với 200 đô la, Nexus 7 mang đến cho bạn mọi thứ mà Raspberry Pi cung cấp cùng với nhiều thứ khác. Hãy nhớ rằng ngay cả với Raspberry Pi, một khi bạn thêm bộ sạc, bộ điều hợp wifi, thẻ lưu trữ và dây cáp, bạn sẽ tăng gần 100 đô la hơn 35 đô la, vì vậy, Nexus 7 là một thỏa thuận tốt hơn nhiều.

Cuối cùng, đừng thử và xuất tín hiệu 1 khz ra khỏi hệ điều hành không theo thời gian thực. Đính kèm cho bạn một bộ vi điều khiển giá rẻ như PJRC Teensy (bản sao Arduino) và để nó xử lý các tác vụ thời gian thực đơn giản cho bạn. Bằng cách này, bạn dành CPU không tốn kém cho các tác vụ nhạy cảm thời gian đơn giản này. Với 16 MHz với sự hỗ trợ cho nhiều bộ định thời, một MCU nhỏ có thể xử lý nửa tá tác vụ như thế này mà không gặp vấn đề gì.


1
Chạy robot của bạn với Ubuntu trên Nexus 7, thật tuyệt! Tình cờ, bạn có biết bất kỳ dự án robot nào sử dụng nexus theo cách này không?
cướp biển bit

5

Câu hỏi này đã được ThomasH trả lời tốt , nhưng ngoài ra tôi chỉ muốn đề xuất khả năng kết nối không dây của quad quad với máy tính xách tay. Đó là, chỉ cần viết một giao thức truyền thông không dây nhanh và nhanh (wifi?, Bluetooth?) Cho quad quad, sau đó thực hiện các công cụ CPU nặng trên máy tính xách tay, trong khi truyền các hướng dẫn và truy vấn cảm biến đến R-PI. Chúng tôi đã thử nhiều triển khai và giải quyết một thiết lập tương tự cho tất cả các robot nhỏ của chúng tôi. Ngoài ra, hầu hết mọi triển khai quad quad-jaw-drop được thiết lập theo cách này. Nó làm cho cuộc sống dễ dàng và cho phép bạn sử dụng các thư viện lớn mà không làm giảm tốc độ.

Hãy trung thực ở đây, rằng quad quad rất có thể sẽ không đi ra ngoài phạm vi không dây của máy tính xách tay của bạn.


Để rõ ràng, khi bạn nói "công cụ CPU nặng" ở đây, bạn có nghĩa là các điều khiển cấp cao có liên quan đến nhiều tiếng lách tách, chẳng hạn như SLAM hoặc thị giác máy tính. Điều khiển bay ở mức độ thấp sẽ phải xảy ra trong thời gian thực và ở tần số đủ cao, điều đó sẽ không khả thi đối với kết nối không dây.
yoos

Điều khiển chuyến bay, như trong các đầu ra servo, sẽ phải được tạo ra bởi các thiết bị điện tử trên máy bay, vâng. Nhưng các lệnh bay, như tốc độ cánh quạt mong muốn và như vậy có thể được tạo ra bởi một máy tính có dây buộc (bluetooth là điều tuyệt vời cho việc này), nhưng không có lý do gì để bạn có thể chạy chúng trên R-Pi. Nếu đó là trường hợp, thì có, "công cụ CPU nặng" đề cập đến kế hoạch cấp cao, phối hợp đa phương tiện, SLAM, CV, v.v.
Josh Vander Hook


4

Một kho lưu trữ thử nghiệm vừa được cung cấp với các gói ROS Groovy cho Raspbian (khò khè), hướng dẫn sử dụng có thể được tìm thấy ở đây:

http://www.ros.org/wiki/groovy/Installation/Raspbian

Kho lưu trữ có hơn 350 gói và các gói ROS cốt lõi có thể được cài đặt trong vài phút trên bản cài đặt Raspbian mới.


2

Tôi sẽ kiểm tra dự án rosserial . Về cơ bản, nó tạo ra một số mã cho Arduino để giao tiếp nối tiếp với nút ROS trên máy tính. Tôi cá là bạn có thể chuyển đổi nó thành Raspberry Pi, để bạn có thể sử dụng một số giao thức khác để liên lạc giữa Pi và máy tính chủ.


2

Vâng. Chắc chắn rồi. Chúng tôi đã làm điều này trong thời gian dài.
ROS không phải là một "HĐH" và nó không lớn. Nó chỉ là "phần mềm trung gian" chạy tốt trong "raspbian".
Chúng tôi chỉ đốt cháy với raspbian chính thức (vì vậy chúng tôi hy vọng nó có thể khiến chúng tôi làm việc trên môi trường "ổn định") và biên dịch ROS với nguồn. đây là liên kết từng bước (dành cho Kinetic):
http://wiki.ros.org/ROSberryPi/Installing%20ROS%20Kinetic%20on%20the%20Raspberry%20Pi
bạn có thể thử ros_comm hoặc máy tính để bàn.
Tôi đã thử ros_comm và sau đó thêm các gói khác sau.


1
Tại sao bạn không sử dụng Ubuntu Mate và chỉ cần cài đặt ROS từ các gói?
FooTheBar

bởi vì Ubuntu Mate chạy chậm trên chip ARM trên mâm xôi, cả Pi2 và Pi3. Raspbian là debian lite và chạy thực sự tốt trên chip ARM. @FooBar
Nick Qian

Bất kỳ nguồn cho điều đó? Tôi chưa gặp vấn đề về tốc độ.
FooTheBar

Tôi đã không cố gắng nhiều hơn sau khi tôi chọn raspbian. có lẽ bây giờ Ubuntu Mate dist cho mâm xôi tốt hơn và dễ sử dụng hơn. Tôi có hứng thú để thử lại vì trong ubfox quản lý phần mềm tốt. Nhưng còn GPIO thì sao? có lẽ ub Ubuntu mới cũng có hỗ trợ gpio, tôi không biết ....
Nick Qian

1
Vậy tại sao bạn nói rằng nó chậm nếu bạn chưa thử nghiệm?
FooTheBar

1

Có một dự án tên là ROSpberry Pi bạn có thể kiểm tra. Và một công ty ở Pasadena có tên Acrobotic hiện đang bán hình ảnh SD của ROSpberry được cài đặt sẵn.


1

Ngược lại với những gì đã được nói trong các câu trả lời (chứ không phải là lỗi thời) khác, tôi đã thành công đã cố gắng chạy ROS ở hai Raspbian hoặc Ubuntu với Raspberry Pi Model B 2 .

Sau một vài lần qua lại, tôi sẽ gắn bó với Ubuntu: Mặc dù tôi không thể truy cập mô-đun máy ảnh Raspberry bằng Ubuntu, tôi thấy những lợi thế lớn trong việc quản lý gói ưu việt và khả năng tương thích với ROS. Bạn cần một số tính năng mới lạ của ROS? Chỉ cần sudo aptitude installgói và bạn đã hoàn tất.


0

Tôi có kinh nghiệm cài đặt ROS trên Raspi bằng Ubuntu Mate làm hệ điều hành. Nó thực chất là một hệ điều hành Ubuntu thông thường, nhưng trên một thiết bị cánh tay. Nó có thể cài đặt ROS thông qua các nhị phân dựng sẵn. Nó không yêu cầu cấu hình nhiều hơn một máy tính xách tay Ubuntu thông thường. Tôi biết rằng có một phiên bản Pi không được hỗ trợ chính thức (tôi nghĩ đó là 3B +, đã được một thời gian kể từ khi cài đặt một cách may mắn), nhưng ai đó đã tìm ra cách khắc phục vấn đề đó trên một bài đăng trên diễn đàn mà tôi đã tìm hiểu.


liên kết đến bài viết diễn đàn?
drerD

Tôi đã liên kết với trang web để bạn có thể tải xuống Ubuntu mate. Nó thực sự đơn giản như một máy Ubuntu thông thường để cài đặt ROS. Tôi không biết lý do tại sao bạn cần một liên kết bài đăng trên diễn đàn ... Đó là một dự án trường học về kho riêng (vì vậy, mã nguồn ROS không công khai), nhưng Ubuntu mate có sẵn công khai. Đây là một liên kết cụ thể hơn .
thatrobotguy


-2

Vâng,

tìm tải về tại đây:

http://answers.ros.org/question/200504/raspbian-jessie-ros-indigo-doad-image/

bao gồm trình điều khiển bộ đệm khung cho màn hình C-Berry TFT


Xin lỗi Martin, nhưng chỉ liên kết các câu trả lời không thực sự hữu ích trên Stack Exchange, nếu bạn trích dẫn thông tin liên quan từ trang (được CC-BY-SA cấp phép), câu trả lời của bạn sẽ hữu ích hơn rất nhiều và bạn có thể nhận được phiếu bầu đảo ngược.
Gian hàng Mark
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.