HACKER Q&A
📣 itroot

Best programmable robot for a child with SDK?


I want to show my kids what you can achieve with software development, and I think dealing with some physical thing that is controlled by your code is incredible fun - you are getting feedback instantly.

I see that there some projects like Sphero, etc.. that already got an API - I think it's great.

Can you advice some other things that are falls into that category? (I'm actually afraid of doing hardware part of it... so I think arduino-based things are too complex -- correct me if I'm wrong)


  👤 nwsm Accepted Answer ✓
LEGO Mindstorms is a really good line imo. Maybe higher level on the software side, but is great for what you're describing- getting beginners interested in coding through robotics.

👤 tmaly
I would highly recommend the microbit driven cutebot.

You can use block based programming which I find is much easier to get kids started on.

There is even a Scratch interface for microbit, if you want to start a little slower. A new version of the microbit is coming out in November. You can do quite a lot with the new version see

https://news.ycombinator.com/item?id=24763120


👤 gberger
Your child came with an SDK? :)

👤 geophile
Is the child programming the robot, or the robot programming the child?

👤 ssheth
Dash Robot is a fairly popular robot used in schools for kids.

They have flow-chart style programming but also support various SDK's..

They have support for Python and Swift: https://www.makewonder.com/blog/dash-dot-and-cue-arent-just-...

https://www.makewonder.com/apps/


👤 whatrocks
I've had some fun with Cozmo by Anki, with the caveats that the company recently went under and the required local wifi setup with your phone and the robot is incredibly clunky.

But I did manage to train a computer vision model using photos taken by the robot: https://www.charlieharrington.com/teaching-my-robot-with-ten...


👤 anfractuosity
I got this one - https://www.makeblock.com/mbot/ which is programmed using a Scratch fork. It was a little bit tricky to get connect at first in Linux, but seemed to work pretty well once I sorted that. It has got an ultrasound distance sensor and line following sensor.

I saw this recently - https://www.kickstarter.com/projects/petoi/bittle which I thought looked awesome, but a bit pricey for me at the moment. It seems to also have a graphical coding environment.


👤 rihegher
Thymio is a good starting point especially if your kids like to build things with Lego blocks since you can attached some on it. https://thymio.org

👤 pkpcmu
BBC's microbit is an awesome start - my daughter loves it!

👤 tommilukkarinen
We had this:

https://sphero.com/collections/all/products/sphero-sprk-plus

Good about this: 1. easy to get started 2. kid can really do programming by herself 3. fun so you are likely to get it out more than once 4. programming happens with the phone, so your kid might already have the computer needed 5. feels high quality


👤 WillPostForFood
You mentioned Sphero, and it us a good choice. The hardware is solid, well documented, and there are a ton of language options. Ruby (via Artoo) is a really easy way to introduce text based programming.

http://artoo.io/documentation/platforms/sphero/


👤 claudiulodro
If you're looking for the "professional" quality ones, I believe Lego Mindstorm is probably the way to go. That's what schools use.

If you're just looking for something simple and fun to expose your child to concepts, something like a Code-a-Pillar, programmable R2D2 toy, or any of the dozens of similar products would work fine.


👤 xs83
I started with LOGO and a turtle on the floor that drew stuff on paper. That was 30 odd years ago now (That makes me feel old....).

I have tried scratch and a few others but nothing really gave me that "aha" moment that I had with Logo from a very young age.


👤 saluki
Another vote for Lego Mindstorms.

A new set just came out so you might be able to pick up the previous one at a discount.

Another vote for First Lego League, they have a few age tiers, if you can't find a team to get on consider making your own team, we had a blast.


👤 codegeek
My 7 year old got "Botley the coding robot" for her birthday and it was fun programming it. Wasn't real coding as in typing code but it taught how to program with logic.

👤 goatcode
Children with SDKs? Science has definitely gone too far.

👤 idealstingray
A few other comments have mentioned the LEGO Mindstorms system, which is a great choice if you don't want to deal with hardware. If you go that route, I would strongly recommend using ev3dev [1] in order to avoid the LabVIEW-based programming language LEGO provides. You can get pretty far in the Mindstorms system, especially if you avoid LabVIEW; my biggest Mindstorms project was a 1v0 tabletop soccer robot using a subsumption controller. I will also note that if you're planning to teach controls at all (PID controllers are easy to implement, and are often used for controlling motor speed), Mindstorms can't really achieve a tight enough control loop; go with an Arduino-based system instead.

If you want something a little simpler than Mindstorms to get started with, you can also get a robot that holds a pen and is programmed in Logo [2]. Logo was designed as a language to teach programming to children, so it's very easy for kids to get started, and drawing on big sheets of paper with a pen immediately gives them the feeling of "doing something".

I would encourage you not to be scared of hardware :) You can build a lot of fun robot projects with cheap motors (you don't necessarily need servos), bump switches, and a cardboard-and-hot-glue chassis, using pretty simple circuits. The two classic beginner projects are wall-following and back-and-turn. At its simplest, a wall-following robot can use a switch touching the wall to control which of two motors turns on. A back-and-turn robot is a robot that backs up and turns in a different direction when it encounters an obstacle (and, if you leave it running long enough, will tend to escape whatever room you put it in). To avoid soldering, you could get started with a solderless breadboard (although make sure the wires don't get jostled out of place by robot collisions or falls).

It sounds like this is probably more advanced than your kids are ready for, but you could also get a Neato robot vacuum cleaner and control it with a Raspberry Pi running ROS [3] [4]. ROS (Robot Operating System) [5] is a very popular framework used by both professional robotics engineers and hobbyists; it's not the most beginner-friendly, but is useful for more advanced robotics software projects, and there's a large ecosystem of ROS packages for things like teleoperation and path planning. Neato vacuum cleaners specifically are great for this because they include a LiDAR, which lets you try out the SLAM and path planning packages provided by ROS.

[1]: https://www.ev3dev.org/

[2]: https://www.terrapinlogo.com/robots/probot.html

[3]: https://www.servomagazine.com/magazine/article/neato-ros-rob...

[4]: https://github.com/SV-ROS/intro_to_ros

[5]: https://www.ros.org/


👤 grillvogel
is it weird that i don't really want to push my kids into tech?

👤 curiousgal
Must be tough raising a child that suffers from SDK.

👤 disown
The skeptic in me wonders if this is just an advertisement campaign for "programmable robots".

> I want to show my kids what you can achieve with software development

Have you tried a simple "hello world!" program? That did wonders for me.

> and I think dealing with some physical thing that is controlled by your code is incredible fun

Something physical that is controlled by code? You mean something like a computer maybe? Have you tried setting them up with a linux desktop? Just messing around with the terminal was fascinating enough for me. You type something and this machine responds. Woah!

It seems like you want a toy for your kid? A child will turn anything you give them into a toy. I can't think of a better toy than a desktop computer.