PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Brauche Kaufempfehlung: Roboter Kit



lms
21.07.2017, 13:42
Hallo,
Ich weiß nicht, ob dieses Thema in diese Rubrik gehört... . Wenn Ja, ich bin relativ unerfahren im Bereich der Robotik und deshalb Frage ich euch: ich bin auf der Suche nach einem günstigen Einsteigerkit für fahrende oder laufende Roboter. Kann mir jemand ein solches kit empfehlen? Bisher habe ich diese Kits in die nähere Auswahl genommen: 1. Das kuman sm5 th
https://www.amazon.de/gp/aw/d/B017XBZZU8/ref=mp_s_a_1_1?__mk_de_DE=%C3%85M%C3%85Z%C3%95%C3% 91&qid=1500640475&sr=8-1&pi=SL75_QL70&keywords=kuman+sm5+th
und 2. Das mbot ranger
https://www.amazon.de/gp/aw/d/B01DY3OTHO/ref=mp_s_a_1_1?__mk_de_DE=%C3%85M%C3%85Z%C3%95%C3% 91&qid=1500640624&sr=8-1&pi=SL75_QL70&keywords=mbot+ranger

Eignen sich diese kits? Oder soll ich komplett andere nehmen?
Schon mal vielen Dank für alle Antworten!

Mit vielen Grüßen
lms

HaWe
21.07.2017, 15:06
hallo,
aus meiner Erfahrung ist es schwer etwas zu Sets allgemein zu sagen und zu empfehlen, weil man nicht weiß, wohin die Reise letztendlich gehen soll und man auch nicht immer sehen kann, welche Erweiterungen überhaupt theoretisch und praktisch möglich sind, wenn man mal etwas aus den Kinderschuhen raus ist.
Das 1. Set von kuman macht einen mechanisch guten Eindruck mit anscheinend viel Patz für Erweiterungen. Der Knackpunkt ist das Uno-Board, das dabei ist:
es ist sicher gut und ausreichend für allererste Robotik-Anwendungen, ab er sehr leistungsschwach und läuft mit (weitgehend veralteten) 5V, ich würde sagen: Note 4.
Reicht aus, um damit anzufangen.

Ob die Motoren Encoder haben, um ihre Drehung zu ermitteln, sehe ich nicht, und sie später noch dran zubauen, ist sicherlich empfehlenswert, wenn das möglich ist - aber erkennen kann ich es nicht. Motoren duch andere zu ersetzen mit eingebauten Encodern wäre die Alternative, das würde sicherlich funktionieren.

Man kann (hoffentlich?) auch später den Uno durch einen Mega ersetzen, wenn der Platz es zulässt, der ist angemessen für Robotik-Anwendungen , und er ist sogar noch 5V-Kompatibel, und er kostet als China-Klon unter 10 EUR. : dann wäre das als Note insgesamt eine 3(+).

Wenn das also ginge als erste Eweiterung, dann kann man das Set sicherlich empfehlen, und was du danach noch daraus machst, kannst du dann später immer noch sehen.
Ich kenn aber absolut keine besseren Sets für einen ähnlich günstigen Preis.

Wenn du etwas mehr anlegen willst, kauf dir einen
Raspberry Pi (40 EUR)
ein gebrauchtes Lego Mindstorms Set für die Mechanik, die Encodermotoren und die Sensoren (Mindstorms NXT 2.0, ca. 150 EUR oder EV3, ca. 200 EUR)
ein BrickPi3 Shield für den Raspi für den Anschluss von Lego-Motoren und Lego-Sensoren (130 EUR),
ein 5-10" TFT Display, ggf. mit Touch (30-90 EUR, , je nach Größe und Zusatzfunktionen)
sowie später noch evtl. Standard-Erweiterungsmodule für den Raspi.
Den Original Lego-Steurerbrick brauchst du dann gar nicht oder kannst sonstwie damit rumexperimentieren.

Durch das Lego-Technik-basierte Bausystem bist du recht flexibel, was die Modelle angeht,
und mit dem Raspi samt Shield, was die Programmierung angeht (Python, Scratch, C++, Java),
und seine Kompatibilität zu Industrie-Standards (I2C, UART) macht ihn fast unbezahlbar, was sonst für Lego nicht und niemals gilt.
Fast (!) schon die eierlegende Wollmilchsau, was die Programmierung und die Sensorik angeht.
Guckst du hier:
http://www.mindstormsforum.de/viewtopic.php?f=78&t=9054

für Outdoors auf normalen Wegen (mit Abstrichen) durchaus ebenfalls geeignet, allerdings nicht für raues Gelände (Off-Road-Terrain) und mit den Lego-Motoren nicht für hohe Geschwindigkeiten..

Defiant
22.07.2017, 10:52
Die Frage ist: Was soll der Roboter überhaupt können?

-Soll er einer Linie folgen?
-Soll er nicht vom Tisch fallen?
-Soll er fahren und dabei Gegenständen ausweichen?
-Soll er selbständig navigieren (Vom Wohnzimmer zur Küche)

Für Navigation ist z.B. oftmals eine Positionsermittlung mittel Odometrie erforderlich. Die Durchführung einer guten Odometrie mit Kettenantrieben wie in deinen beiden Links zu sehen ist eine Herausforderung. Ein Beispiel für einen Roboter der autonom fährt ist übrigens der neue Turtlebot 3 (https://nodna.de/TURTLEBOT-3-Burger) (Nur zur Veranschaulichung, für den sollte man schon ein wenig Erfahrung mitbringen)

lms
22.07.2017, 20:02
Vielen Dank für eure Antworten!
@ HaWe Danke für die Ausführliche Bewertung. Ich habe bereits einen mindstorm ev3 und beherrsche die Programmierung, aber ich möchte mich an Roboter aus Metall ranwagen und dort Erfahrungen sammeln . Das mit dem Pi und Lego ist mir auch durch den Kopf gegangen, aber ich möchte mit so einem Metallroboter die Sprache von arduino praktisch erlernen, denn soweit ich weiß haben der Raspberry Pi und der arduino verschiedene Sprachen.

@Defiant Der Roboter soll Gegenständen ausweichen und später eventuell autonom navigieren, z.B. zu einem GPS Signal oder so...

Defiant
22.07.2017, 21:06
Soweit ich weiß verwendet Arduino auch "nur" c++, nur mit eigener Bibliothek (Framework). C++ ist eine mögliche Sprache, die man auf dem Rpi verwenden kann. Die Programmiersprache ist also nicht verschieden. Allerdings sind die Konzepte und Umgebungen unterschiedlich, z.B. Rpi unter einem Linux-Betriebssystem vs Arduino direkt auf der embedded Hardware.

Vielleicht wäre der nächste Schritt für dich einfach nur den Mindstorms rauszuwerfen und die Lego Sensoren und Aktoren durch den Arduino anzusteuern, einfach nur um Erfahrung zu sammeln.

Mit der Anforderung "GPS" kommt kommt also die Aufgabe draußen zu fahren, d.h. es ist also ein wenig Geländegängigkeit erwünscht. Dies erfordert stärkere Motoren. Der Kuman scheint die stärkeren Motoren zu haben (12V/1.5W wenn ich die Amazon-Seite richtig lese..). Wie schon gesagt, eine Odometrie kann man mit dem Kettenantrieb nur schwer durchführen. Die Positionierung mittels GPS ist leider auch nicht kontinuierlich (sog. jumps), also auch hier keine lokale Positionsermittlung. Was genau verstehst du unter "autonom navigieren"? Hast du einen konkreten Anwendungsfall?

HaWe
22.07.2017, 22:06
Vielen Dank für eure Antworten!
@ HaWe Danke für die Ausführliche Bewertung. Ich habe bereits einen mindstorm ev3 und beherrsche die Programmierung, aber ich möchte mich an Roboter aus Metall ranwagen und dort Erfahrungen sammeln . Das mit dem Pi und Lego ist mir auch durch den Kopf gegangen, aber ich möchte mit so einem Metallroboter die Sprache von arduino praktisch erlernen, denn soweit ich weiß haben der Raspberry Pi und der arduino verschiedene Sprachen.

@Defiant Der Roboter soll Gegenständen ausweichen und später eventuell autonom navigieren, z.B. zu einem GPS Signal oder so...

Arduino basiert auf C++, ist aber durch die abgespeckten AVR- und ARM- Libs kein "richtiges" C++ mehr, sondern durch die ganze Java-IDE samt internen Arduino Libs eher zu einem C++ "Dialekt" verkommen. Dafür aber sehr einfach zu handhaben, nur eben mit Abstrichen, Arduinisch eben.

C++ auf dem Pi dagegen ist "richtiges" C++, und auch "richtiges" ANSI C (ohne Objekte) läuft auf dem Pi, denn es ist der originale GCC Compiler mit Standard Linux- und POSIX-Libs.
Gerade wenn du kein Arduinisch, sondern richtiges C/C++ lernen willst, ist der Raspi also die bessere Wahl.

Geht es dir dagegen ums Metall-Chassis, auch kein Problem, sowohl mit Arduino als auch mit Raspi möglich, sowohl deine Variante als auch ganz andere:

Projektbeschreibung:

http://www.mindstormsforum.de/viewtopic.php?f=78&t=8851

Video:

https://www.youtube.com/watch?v=IBvyu2-AAKM&feature=youtu.be



ps,
hier funktioniert das Gerät noch mit den selbstgebauten Motortreiber-Platinen, inzwischen habe ich sie hier auch ersetzt durch die BrickPi3-Platine, da man die problemlos stapeln und daher die IOs vervielfachen kann (32 Lego-Motoren und 32 Lego-Sensoren plus fast unbegrenzt alles, was sowieso auf dem Pi möglich ist, also Taster, digital- und analog-Muxer, Sound, Cam, ... alles was auf oder mit oder über Linux läuft.

Spricht also auch nichts dagegen, wenn du dir erst das Arduino-Metallchassis kaufst und erst später auf Raspi umrüstest.

Defiant
22.07.2017, 22:18
stimmt absolut, was lms geschrieben hat.
Arduino basiert auf C++, ist aber durch die abgespeckten AVR- und ARM- Libs kein "richtiges" C++ mehr, sondern durch die ganze Java-IDE samt internen Arduino Libs eher zu einem C++ "Dialekt" verkommen. Dafür aber sehr einfach zu handhaben, nur eben mit Abstrichen, Arduinisch eben.
Kurze Websuche ergab: Arduino setzt auf die AVR-GCC als Compiler. Die Unterschiede auf Sprachebene sind dann doch recht überschaubar.. (https://gcc.gnu.org/wiki/avr-gcc). Und die IDE hat mit der Sprache gar nichts zu tun.

HaWe
22.07.2017, 22:36
Kurze Websuche ergab: Arduino setzt auf die AVR-GCC als Compiler. Die Unterschiede auf Sprachebene sind dann doch recht überschaubar.. (https://gcc.gnu.org/wiki/avr-gcc). Und die IDE hat mit der Sprache gar nichts zu tun.

Arduino BENUTZT C++, es IST aber kein C++, da die IDE im Hintergrund Arduino-typische Libs einsetzt, die NICHTS mehr mit Standard-C-Libs zu tun haben, z.B. Serial oder Wire oder String oder SD.
Manche Standard-Libs existieren überhaupt nicht für Arduino, z.B. das komplette und vollständige stdio.h - stattdessen abgespeckte oder ganz andere Funktionen
(z.B. kein int main(int argc, char** argv), sondern setup() und loop(), kein FILE * stream und kein fprintf, fopen, fclose, fgets, fscanf für files - und das für eine Sprache, die als ihr Grundprinzip bezeichnet: "everything is a file").

Die Syntax ist zwar immer noch C- und C++- BASIERT, aber sie IST kein C++ (Originalton eines Arduino-Entwicklers (Paul Stoffregen, wenn ich mich recht erinnere) ).
Die Arduino-IDE greift dazu extrem tief in das Library-, Linker- und Make/Build-Management ein.

Vieles, was mit dem Standard-GCC Compiler OHNE Arduino-IDE möglich ist oder wäre, geht nicht mehr MIT der Arduino-IDE, dafür aber andere Dinge. Wenn du selber bereits viel mit Arduino gearbeitet hast oder hättest, weißt oder wüsstest du die Unterschiede. Sie fallen einem extrem dann auf, wenn man von Arduinisch zu C++ für Raspi/Linux wechselt.

Das sollte der OP wissen, dennoch ist es kein Hinderungsgrund.

Defiant
22.07.2017, 22:37
Arduino BENUTZT C++, es IST aber kein C++, da die IDE im Hintergrund Arduino-typische Libs einsetzt, die NICHTS mehr mit Standard-C-Libs zu tun haben, z.B. Serial oder Wire oder String.

Nochmal: Bibliotheken haben nix mit der Programmiersprache zu tun. Wer u.a. mit C++ die Boost-Bibliothek verwendet wird hinterher nicht sagen er verwende kein C++. Und die IDE ist nur Frontend. Man kann die Bibliotheken auch außerhalb der IDE linken. (https://www.heise.de/developer/meldung/Eclipse-wird-zur-C-IDE-fuer-Arduino-Entwickler-3270300.html)

fprintf und FILE existieren im avr-gcc.

Da es zu sehr vom Thema abschweift, dürfte dies das letzte Posting von mir zu diesem Thema sein.

P.S. HaWe: Kann es sein, dass du in anderen Foren als "Ford" unterwegs bist?

HaWe
22.07.2017, 23:10
nein, bin ich nicht.
Aber zu Arduino solltest du dich etwas besser informieren, insb. durch eigenen langen und intensiven Gebrauch der Arduino IDE (und kein Arduino-Anfänger benutzt etwas anderes als die Arduino-IDE). Dann wird dir sehr schnell klar, das deine theoretischen Statements für den praktischen Gebrauch unsinnig und fehlweisend sind.
ps,
von avr-gcc rede ich nicht.

- - - Aktualisiert - - -

ps, nur damit es nicht untergeht, dies ist wie gesagt der wesentliche Punkt, den der OP wissen muss, wenn er sich entscheiden möchte, welche Sprache er auf welcher Plattform lernen will :


Arduino basiert auf C++, ist aber durch die abgespeckten AVR- und ARM- Libs kein "richtiges" C++ mehr, sondern durch die ganze Java-IDE samt internen Arduino Libs eher zu einem C++ "Dialekt" verkommen. Dafür aber sehr einfach zu handhaben, nur eben mit Abstrichen, Arduinisch eben.

C++ auf dem Pi dagegen ist "richtiges" C++, und auch "richtiges" ANSI C (ohne Objekte) läuft auf dem Pi, denn es ist der originale GCC Compiler mit Standard Linux- und POSIX-Libs.
Gerade wenn du kein Arduinisch, sondern richtiges C/C++ lernen willst, ist der Raspi also die bessere Wahl.

Arduino ist aber um ein vielfaches einfacher zu lernen als "echtes" C++, andererseits gibt es für den Pi auch noch zusätzlich das einfache Python.

lms
23.07.2017, 17:45
Was genau verstehst du unter "autonom navigieren"? Hast du einen konkreten Anwendungsfall?

Der Roboter sollte z.B. zu einem Signal fahren und aus Hindernisse reagieren, egal wo diese auf seinem Weg sind.
Konkretes Beispiel: Der Roboter soll vom Wohnzimmer in die Küche und auf dem Weg steht ein Schuh und ein Stuhl. Der Roboter sollte diese Umfahren. Er soll aber den Weg zurück nehmen und auf diesem Weg stehen mehr und andere Hindernisse. Der Roboter sollte diese umfahren und zum Anfangsort zurückkehren.




Geht es dir dagegen ums Metall-Chassis, auch kein Problem, sowohl mit Arduino als auch mit Raspi möglich, sowohl deine Variante als auch ganz andere:
Ja, es geht mir ums Metall-Chassis. Ich möchte gerne anspruchsvollere Sachen bauen als Lego😉.




Spricht also auch nichts dagegen, wenn du dir erst das Arduino-Metallchassis kaufst und erst später auf Raspi umrüstest.
Dann mache ich das. Ich sammle Erfahrungen mit dem Auduino, werde mein C++ wiederholen und dann auf einen PI umsteigen.