from Hacker News

Ask HN: Best programmable robot for a child with SDK?

by itroot on 10/28/20, 2:57 PM with 49 comments

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)

  • by nwsm on 10/28/20, 3:37 PM

    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.
  • by tmaly on 10/28/20, 3:40 PM

    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

  • by gberger on 10/28/20, 3:52 PM

    Your child came with an SDK? :)
  • by geophile on 10/28/20, 2:59 PM

    Is the child programming the robot, or the robot programming the child?
  • by ssheth on 10/28/20, 4:40 PM

    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/

  • by whatrocks on 10/28/20, 3:42 PM

    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...

  • by anfractuosity on 10/28/20, 4:01 PM

    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.

  • by rihegher on 10/28/20, 3:49 PM

    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
  • by pkpcmu on 10/28/20, 5:25 PM

    BBC's microbit is an awesome start - my daughter loves it!
  • by tommilukkarinen on 10/28/20, 4:02 PM

    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

  • by WillPostForFood on 10/28/20, 4:29 PM

    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/

  • by claudiulodro on 10/28/20, 3:40 PM

    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.

  • by xs83 on 10/30/20, 3:32 AM

    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.

  • by saluki on 10/29/20, 3:42 PM

    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.

  • by codegeek on 10/29/20, 1:39 PM

    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.
  • by goatcode on 10/29/20, 3:03 PM

    Children with SDKs? Science has definitely gone too far.
  • by idealstingray on 10/28/20, 5:18 PM

    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/

  • by grillvogel on 10/28/20, 5:23 PM

    is it weird that i don't really want to push my kids into tech?
  • by curiousgal on 10/28/20, 4:03 PM

    Must be tough raising a child that suffers from SDK.
  • by disown on 10/28/20, 4:54 PM

    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.