New SES Rover

Really cute how Benji looks at the robot, then at you, sort of like “so… human, can you explain this contraption?”

Yes, for sure! He was whining at it a bit too. He doesn’t quite know what to make of it. :smiley:

8-Dale

Today, I’ll be doing more motor calibration, and hopefully coding some routines to ramp up and down the speed for acceleration and stopping. I need to cut down on vibration and jerking when the robot starts to move and stop, so it doesn’t get turned away from its path.

I’ve also added settings in the header file for 10 different forward and 10 different reverse speeds, which of course can be easily tweaked. :slight_smile: All of my robot code is supported with many tweakable settings in the header file. In many cases, I don’t even have to change the actual code to affect the robot’s behavior. I just tweak settings in the header file, and reupload the code to the robot. :smiley: I can even enable or disable several features, such as code to operate optional sensors, display information, etc.

I’m also going to be tinkering with sound generation today, using a couple piezo buzzers I got from Adafruit. I’ve collected, adjusted, and written quite a bit of code to support sound generation, and it’s time to tinker with it! I’ll be using my trusty Arduino Duemilanove and a solderless breadboard for this, and will be breaking my sound code out into a test program I can easily manipulate. When I have the code in the form I want it, I’ll merge it back into my main code base, and start testing it on the SES Rover. I’ll also have to attach a small solderless breadboard to the SES Rover for testing various circuits.

This robot is going to get some chassis modifications soon. I’ve added a 7" aluminum channel to my RobotShop cart, as well as three lengths of aluminum tubing, and hubs for that. I need to lengthen the chassis just a little bit, and also want to cut out the joint I currently have between the two 3" channel sections.

I need room to add a vertical tubing section, so I can add some sensors that can be sensitive to interference, up above and away from the servos.The two front distance sensors on the pan/tilt will still be the main sensors for obstacle avoidance.

8-Dale

I’ve been working more on this robot lately.

I’ve recalibrated (mechanically) all the servos, and tweaked the calibration in software.

Now, I’m working on code to slowly accelerate or decelerate the rover when changing speeds. It’s about even on weight front and back, so it tends to jerk around when it stops. I an hoping I can damp most of that jerk out, with new speed ramping code in the setMotorSpeed() routine.

I also tested the XBee wireless, and that works! Right now, my two XBees are just configured as a transparent serial link, and they are working great in that capacity. I will eventually reconfigure both XBee modules for mesh networking, but that probably won’t happen until I have W.A.L.T.E.R. fully operational and equipped with an XBee. The shields I’m using for the Arduino Megas have sockets for up to three XBee modules, and I have the XBee on the second hardware serial port. The SSC-32 is on the first hardware serial port.

I’m also still working to get the two CR servo motors calibrated so this rover can move in a straight line. This is proving to be more difficult than I thought it would be.

8-Dale

You’ll never get the two servos to match. Use a control loop, and correct your course from sensor data.

Alan KM6VV

The only sensor data I currently have for this robot is from the two distance sensors on the pan/tilt. There are no encoders on these CR servos.

I’m looking at adding the Nubotics WC-132 Wheel Commander and two of their WW-11 WheelWatcher Encoders for Servos. This looks like it will solve my locomotion issues. I’ll have to get them from Nubotics direct.

8-Dale

Until then, you can do it by trial and error. That is you set to one of your defined speeds and see if it goes straight, if not tweak the value for one of the servos, until you are happy. You can start off trying for a lower speed and a higher speed and then see if interpolation will get you the other values.

Kurt

This is what I have been trying to do. I already have offsets for servos and motor speed built into all of my robot software. I may have to tweak for individual speeds though, and I have defined 10 different “gears” (both forward and reverse) for the robot.

8-Dale

Forgot to mention, that one of my first robots to play with was one from Seattle Robotics Society: seattlerobotics.org/WorkshopRobot/index.php
I did not actually go to any of the workshops but did buy the kit (levels 1-3), which included some stripped down version of an earlier version of Nubotics wheel watchers. This version, they did not have all of the fancy electronics, you simply got the inputs of the two different channels and you had to do the rest in software…

Was fun. Did find that using interrupts for both A/B channels can be challanging, so I only interrupted on one channel and then checked the state of the other during the interrupt. Not sure if I still have the little guy sitting around someplace…

That does sounds like it was a lot of fun!

I am having a great time with this SES Rover, even though I really haven’t even begun to explore its potential. I have to get it’s locomotion sorted out first. I’m going to be ordering from RobotShop this month, as well as Nubotics (to get the WC-132 controller and WW-11 wheel watchers).

I’m going to extend the chassis a bit and add a 12" tubing pylon, probably near the rear. I also found a nice little piece of pre-cut plexiglass that I am going to make a brand new mounting adapter out of. I just hope these CR servos are up to the task. So far, they haven’t had problems with anything I’ve tossed at them!

I have an idea how I can get the Arduino mega R3 board with shield and a BeagleBone Black or on there. :slight_smile: In fact, this plexiglass is already drilled for mounting a BeagleBone Black and a half size breadboard. That should fit a Mega in the space where the breadboard would normally be. :slight_smile:

I really want to take this robot to OSCON in July!

8-Dale

I received my huge RobotShop order - the largest I have ever done with any company. I also received my WheelCommander and two WheelWatchers from Nubotics. I also got a few items, including a new DMM, from Adafruit.

I’m starting to redesign the chassis for this rover now. I have 7" and 2" U channels to go with my existing 3" U channels. I’m running into needing some SES brackets that don’t exist now. It’s the same two I always end up needing, but don’t have - a longer ASB-11, and a “U” made out of the equivalent of two L (ASB-06) brackets. I see there is an ASB-25 now, which I have asked for before, and am happy to see!! :slight_smile: I will have to order a few of these, because they would be perfect for this rebuild. I don’t have any place to put sensors, except on the pan/tilt, right now.

So, it’s on to the redesign and rebuild now!

8-Dale

I’ve been working on this SES Rover for the past few days. I’m doing as much of the mechanical stuff as I can do on my robots, since my laptop hard drive died a few days ago. As it turns out, I am actually completely redesigning and rebuilding the entire robot. I’ve aleady got the gripper mounted on the new chassis, with the pan servo being used to rotate it to the left and right.I also have a HUB-08 tubing hub mounted on the pan servo where I’ll use a 6" or 8" tub to extend up above the gripper, when it’s in the vertical home position. The tilt unit for the pan/tilt will be mounted on top of that tube, along with other sensors, such as an IMU.

This new redesigned SES Rover will have a small Linux SBC, a small 7 port USB 2.0 hub, and an Arduino Mega R3 board, as well as the SSC-32 servo controller. The Arduino Mega R3 will be fully accessible, and communicate with, the Linux SBC. I already have the power system for everything figured out, and just have to work out the physical layout for everything.

Today, I’m mounting the wheels, with the WheelWatcher encoders, on the new chassis. The wheels will be mounted right below the center of the pan servo spline.

I’ll have a complete complement of construction pictures showing everything soon!

8-Dale

I haven’t made the progress I was hoping to make on the rebuild. I had to solve a mechanical issue with the main pan servo not being able to handle the weight of what it had to deal with. I figured out a fix, and made the necessary changes in the build. This makes the servo spline much stronger.

I also added two tilt servos, one right and one left, at the front, which allows these sensors to rotate from looking down to looking up. I have all the servos wired up to the Arduino Mega R3. Power is wired to the SSC-32, Arduino and Raspberry Pi. The 7-port USB hub is mounted. The Pi sees the Arduino as /dev/ttyACM0 now. The Arduino has the XBee, the Pi has the WiFi, and I believe I have a Bluetooth 4.0 LE module that works with the Pi. I may move the XBee to the Pi, and let it handle all the wireless.

I need to get another camera moduke, and a longer cable for the camera, so it can reach from the back of the robot to the front. Adafruit has them, and I’ll get one next month. The camera will be on its own pan/tilt (already on the robot) that will allow it to look where the gripper is pointing, as well as in a full 180 degree horizontal arc, and up and down in a limited arc.

I’ve made so many changes in the robot, that I’m calling this v2.0 now.

8-Dale

What… all that and no pictures… :wink:

Nice to see your working on the project, i am also looking to build a Rover … :slight_smile:

Not true! :stuck_out_tongue: I have a set of 33 pictures, and counting, of the v2.0 build of this rover. I just haven’t figured out how to upload them here yet.

I’m going to work on W.A.L.T.E.R. 2.0 today also, and I have a 4WD kit I got from RobotShop to build up. :slight_smile:

With three robots, I will have a good network to test my HDC software with. :smiley:

8-Dale

Here is a front view.

Right side view.

Left side.

Back view.


I have over 33 construction pictures of this rebuild, and I am not done yet. I need to extend the gripper a bit, and raise the top sensors a bit so I can add the mounting for the IMU.

8-Dale

That’s a loaded little Rover here… :wink:

Looks a little top-heavy. Have you ran it?

Need to get the CG down low.

Alan KM6VV

Yes, it is!

I’ve gotten to the point of worrying if the motors (CR servos) are going to be able to handle the weight. It’s a little top heavy right now, even with both batteries installed. I may have to lengthen the chassis a bit more, and add two rear wheels. That would mean I’d also have to add another WheelCommander and two more WheelWatcher encoders though. That would mean it probably isn’t going to be ready to go to OSCON this year. I could move the electronics package back on SES space, but I’m not sure that will help enough.

8-Dale

It always has been. :frowning:

I haven’t run this rebuilt version yet, but I expect the top heavy behavior to still be there.

I know. I’m just not real sure what to do, other than extend the chassis again. I have some 3" and 2" channels here I could do that with.

8-Dale