Evaluating Webots

Posted in artificial intelligence, robotics on February 4th, 2014 by Samuel Kenyon

I’m trying to find a better simulator than Breve for robots and 3D physics world creation.

I have been examining the Webots simulation environment. It seems pretty useful since I could write controllers in C++ and it comes with several robot models out of the box. And I like the scene graph (or “scene tree” as they call it) approach for environments (they use VRML97 which is obsolete but at least it’s a well known standard); I only played with the interface enough to add a sphere and a box but it seems good enough so far. A lot easier than doing it completely programmatically and/or completely from scratch with raw data files. And I have made 3D models from scratch with data files in the past and it was not that efficient (compared to some ideal GUI) except for tweaking exact numbers.

They have some Nao (aka “NAO”) robot models and it would be awesome to use that for some mental development research. I’m thinking about affordances, and certainly the Nao with its 25 DOF and lots of sensors is more than sufficient for interesting affordances with real world (or simulated 3D world) environments. It may actually be overkill…

simulated Nao looks at a brick box

simulated Nao looks at a brick box

Not that I have access to a real Nao, although I programmed two little little test scripts last year on an actual Nao using Choregraphe, a primarily visual programming tool. Webots can run a Nao server so you can actually hook Choregraphe to the Webots simulation (Choreograph has a sim but just of the robot model, not of environmental interactions). Unfortunately I couldn’t try this out as it’s blocked for free users (the screenshot below shows an attempt to use the robot soccer world).

naoqisim denied!

naoqisim denied!

And I just realized if I write a Webots Nao controller, there’s no documentation or obvious way that I can see to know what the exact actuator names are to pass to wb_robot_get_device() and the demo doesn’t show all motors (or maybe they haven’t implemented all motors?). [Update: I have been informed that you can get the device tags from the Robot Window which can be made visible with the menu (Robot -> Show Robot Window) or double-clicking on the robot in the sim view. Not as good as a text list but at least the info is there.] Making motion files manually would be a pain as well. Maybe I will end up making a simpler robot model from scratch.

The lack of access to the Superviser is also making me question using this for my non-funded research. I might try running some experiments in it, and just see how far I can go without a Superviser.

Tags: ,

A PIC-Based Scripted Robot System

Posted in making and hacking, robotics on January 7th, 2013 by Samuel Kenyon

The last time I used the aforementioned scripting framework was in the robot system described here. It was intended for a spherical robot, however, I also used an old RC truck chassis for testing. It was fairly generic—there wasn’t anything specific to spherical robots in the board design or programming, with the exception of the size and shape of the board which was made to fit in the sphere shell.

The Board

My embedded robot control board.

My embedded robot control board.

This robot used an 8-bit microcontroller (uC) based board that I hacked together. All of the robot code, including comms, the script engine, sensor interaction, and motor control ran on the uC. There was no in circuit debugging / programming; I used a separate device programmer (specifically, the EPIC Plus Pocket PIC Programmer with the 40/28 pin ZIF adapter). The uC I used was a Microchip PIC18LF458.

Read more »

Tags: , , ,

Robot Scripting

Posted in programming, robotics on January 2nd, 2013 by Samuel Kenyon

During 2003 and 2004, I worked on FIRST robots. I was a college student, but Northeastern University hosted a team supporting multiple high schools. FIRST competition robots are radio controlled, however autonomous routines activated by the operator are allowed and would be hugely advantageous. But most teams never got to that point, and were lucky to have much beyond the default code.

I also started making my own robots. I had hacked at robots before, but I hadn’t made my own that actually worked until 2003. First I used parts from the IFI Edukit that came with one of the FIRST robotics kits to make some little experimental robots and one that was intended for a Micromouse competition (but wasn’t finished in time). Eventually I made my own microcontroller based board which I attached to an RC truck chassis.

my robot truck

In all of these cases, I started to realize that a lot of basic things that we wanted these robots to do could be represented with simple scripts.

Read more »

Tags: , ,

Languages, Assemble!

Posted in making and hacking, programming, robotics on October 9th, 2012 by Samuel Kenyon

Look what I found in my closet:

Motorola 68HC11 on an eval board made by Axiom Manufacturing

This is my old Motorola 68HC11 microcontroller board. Here’s a close up photo of the microcontroller itself:

Motorola 68HC11 Microcontroller IC

For those who aren’t familiar with these terms, a microcontroller is basically a computer on a chip. They are often very tiny and low powered, and are ubiquitous whether you realize it or not.

Read more »

Tags: , , ,