Friday 28 December 2012

Adding Feedback

Added a position feedback using the potentiometers from the servos
the voltage appears to be .5V to 1.85V I connected this to the analog pin
and mapped the values to 180 using a range of 0 to 500 the angles shown in RVIZ look to fairly close but the joints jitter about 10 degrees I tried using the Aref pin and supplying 2 volt with a voltage divider but this doesn’t seem to work giving me a reference voltage of 0 ? I'm running a smoothing of 20 while it helps its still not good enough.

Thursday 27 December 2012

Arm Control

Now that we have arm that works it time to start controlling it at first i will only controlling the arm not the hand ( I don’t have enough servo pins in in the adruino and have to wait until  i get a mega). We have a hacked driver that controls the arm joints by publishing a topic to the joint i.e.
rostopic pub -1 /Right_lift_joint/command std_msgs/Float64 -- 0.5
which moves the right shoulder lift joint to 0.5 radians. Radian are a pain to visualize so we have a model in RVIZ so we can see what is happening.
Joining the stl's in freecad only works in windows when I have more time i will add the other arm and add all the parts i think it looks good with the arm transparent seeing all the parts. The driver lacks real feedback  (hobby servos don’t have feedback) this will require another hack, the upside at the moment is feedback is the last commanded position this makes for a simple simulator. I have hacked a action server and i can send a sequence of poses the action server will run 1 pose until its complete (when feedback uses the actual position not the last commanded position) then move to the next.
The printed parts have held up  well with only a few breakages the main problem is PLA is too brittle now that i have the hang off printing ABS I will remake  the parts (the junk box of broken and obsolete parts is growing).
Next  milestone is a video

Sunday 2 December 2012

New Shoulder Joints

After Seeing Inmoov's video I liked the way his shoulder moved and the bearings and drive system that i required made the original set up very jerky and hard to get a accurate placement here is a photo of the new joints I have removed the lower arm for the moment until the new joint works smoothly The actuators were some old trim tab actuators i had laying around with the gearing they should have about 150 Kg/cm torque the code is very similar to the steering and drive functions of the base with a 2 stage PI controller it moves very smoothly. The left arm should be finished next week then I need work on how to attach the shoulder and  head.

Monday 15 October 2012

Right Arm update 2

Moved the shoulder pan joint further in board it gives a more balanced look and makes it easer to get through doors

Sunday 14 October 2012

Right Arm Update

After a weekend of printing i have enough part to mount the arm to Robbie
to get a feel for how it looks. I have to move the shoulder pan joint in further or
we will have trouble going through doors and change the position of the servos
so they are behind the arm and offset the weight


Thursday 4 October 2012

Right Arm

Since the last update i have rebuilt the printer about 3 time it's now a reprap and prints 20 times faster that the first version. I found a great hand and arm project on thingiverse inmoov i have the most of the major parts printed just waiting on some servos and free time to start programing 







Sunday 12 August 2012

First Printed Parts

Its been awhile since the last post the printer is finished and working
the threaded rods i use for the X and Y axis make the printer very slow, but at least it works. To use the printer to its full potential I need to learn cad and openscad which all takes time the first parts are starting to find there way
on the robot the orings i used to sync the castor angle and potentiometer didn't last long and tended to slip off, replacing them with gears seams to be a natural choice the only snag is reverse the pot power connections  to make up for the change in direction when using gears. I mover the MCU from the side pod
to under the torso (which has been hinged to provide quicker access). The wiring has also been cleaned up to provide better reliability. I finally completed the drive motors by adding the last motor controller and encoders now its a true holomonic drive, but i fear we have run up to the limit of the AtMega I'm having a lot of trouble tuning the PID loops (8) stearing works fine on it's own but when i  add the drive velocity control  the steering starts to drift


Sunday 13 May 2012

Progress Report

Its been to long since the last update testing is proceeding slowly localization is improving, rotation is still a problem. Increasing reliability has been one of the  goals  and improving the design to achieve this requires a 3D printer so i can make the custom gears and brackets. So i started making the printer that can double as a milling machine for milling parts and PCBs.
The printer uses draw runner as sliders they work rather well the NEMA 17 stepper motors may be a bit small but they will do for testing later they can be used in the base as steering motors



Sunday 26 February 2012

To Arms

No not a battle cry but what good is a robot with out arms if you noticed Robbie has a arm but with the AX12 servos and springs it can barely move and the shoulder lift servo will over heat quickly even with out the extensions. The price of larger servos is not an option. The torque required for a arm 90cm long to lift a 2 kilo object is over 1000 Kg/cm for the shoulder lift joint. After a bit of research i think i will use stepper motors at least i can start out using some of the old stepper motors and gears i have lying around. I plan to use the steppers for the first 4 joints in the arm at the moment just using motors from a old printer and a arduino to interface with ROS

Saturday 25 February 2012

Navigation Testing

A video of Robbie driving around under joystick control to test localisation
it works fine but after a while he gets lost

Improvment

Over the last couple of weeks I have been hard at work refining the control, localisation and general drive functions. While we are not at the stage of autonomous navigation short runs will work. The big fix is still odometery and how the base responds to navigation commands from ROS, The steering is always "fishing" for direction causing the robot to dart from side to side

Saturday 28 January 2012

Control Update

Finally got around to adding a reverse and fixed a fixing a major problem with the steering going haywire every now and then. This was caused by reverse actually trying to turn the wheels to 180 degrees (limit is 150). After this   we can now drive on joystick control without the wheels going out of calibration.we need to add a larger dead band around zero's

Thursday 26 January 2012

Adding IMU

Today we added a CHR UM6-LT IMU to the omni bot communications is through a sparkfun   FTDI board
the first problem we encountered was the RX and TX line need to be reversed. The other problem was
quanterions need to be enabled which can only be done in windows.
After downloading the ROS package  imu_um6 (searching ROS under sensors not IMU) and
launching we were publishing data from the IMU. Next step is to add a covariance matrix and run robot pose  EKF

Monday 9 January 2012

Omni actions

Just a quick note the actions move_to_fish_tank and go_home work in directory robbie

Saturday 7 January 2012

AI or how interact with the world

After a long build program it time to think operating the robot in the home environment and interacting with people we had a lot of functionality already it just a matter tighing it all together. The first part is the meet and greet function using the resources from UA-CS665 and Face_recognition ROS packages.
the functions are as follows
1    When a unknown face enters Robbie will track the face and ask some questions and store them in short term memory
2     use voice commands to navigate or action servers to bo basic tasks
3     track objects and recognise objects using roboearth

the next phase is to extend the conversation skills building on the UA-CS665 Conversation.py

things that i need to work on
1    make short term memory non volatile
2   a better boot gui

Monday 2 January 2012

Navigation Testing

We start the new year with Omni_bot's odometery working we can see the results in Rviz, work still needs to be done with calibration but before we start there we still need the front steering motors controller. But at least we can set a goal in Rviz and the robot will get there
If the heading is straight a head then ok
but if it in involves sharpe turns then we have problems
it appears to spin to it target rather then loop maybe we have set rotation to fast
after adjusting the goal tolerance to .2 we are getting better results


more to follow