Friday, 16 January 2015

Autonomous robot


This we get from wikipedia
A fully autonomous robot can:
  • Gain information about the environment (Rule #1)
  • Work for an extended period without human intervention (Rule #2)
  • Move either all or part of itself throughout its operating environment without human assistance (Rule #3)
  • Avoid situations that are harmful to people, property, or itself unless those are part of its design specifications (Rule #4)
An autonomous robot may also learn or gain new knowledge like adjusting for new methods of accomplishing its tasks or adapting to changing surroundings.

I have been asked the question how autonomous is Robbie and do you let him move on this own?
While in principle he has all the systems, and has demonstrated that they work on there own and sometimes they all work together. The fact is in the last 2 years he has been tethered to the battery charger and partially disassembled. Stage 1 is now complete we have a working robot. What we don't have is trust in him and reliability. Stage 2 of this build is address those problems trust will come with reliability but autonomy needs more , below is a list of some tasks the robot should do

Self-maintenance

  • Charge the battery, this part works using a behaviour tree
  • monitor the systems to be part of the above

Sensing the environment

  • Is anyone near me, face recognition work but needs to be improved
  • where am I, while localisation will give a map reference we need a name ie lounge room
  • day and night shut down nodes that wont be used at night
  • short and long term memory

Task performance

  • Goto a place, did I achieve my goal?
  • get something, did I achieve my goal?
  • locate something, did I achieve my goal?

Indoor navigation

  • Localisation
  • update the known world what has changed
and we also need to log activity, success and failures to measure performance, in the lab he can go through a door with out touching but in real life? Same for localisation.
I'm sure this list will grow.



Sunday, 21 December 2014

New Paint Scheme








I haven't done an update for a while most of the activity with Robbie has been
trying different parts and arm designs between Hector and Inmoov as always there
are pros and con to each design. Inmoov has more activate development so the larger
part of Robbie is Inmoov. The main problem with the Inmoov design was the lack of
shoulder pan joint ROS moveit needs some form of pan joint for the kinematic solvers
to find a solution after trying different joint configuration Inmoov with the waist pan
joint worked just as good as Hector. Hectors biggest down fall was the gearbox the
worms slipped under heavy loads and the back lash was very high. I still have 2 of
these gearboxes in the elbows so i will have to fix that at some point

On the software side I have made large improvements in localisation and navigation
Robbie's ability to go through door ways has improved to the point where navigation to
any place in the house is possible. Using behaviour trees he constantly monitors the
battery if the battery is low he auto docks with the charger and will continue with the task
after charging is complete.

Robbie's arms are controller by a Adruino Due the pull up resistors need to be disabled

To mark the change from hardware testing back to robot development I have changed the colour
scheme to black and gold. I dont intend to change the design but rather improve what I have
The focus will be more on software and operational use

Monday, 18 August 2014

Harmonic Drive Update 3

Well I found some time to work on the harmonic drive the other day. I achived
about 5.8 Nm of torque reliably during testing the drive slipped when i applied a
17Nm load. When I examined the drive i found  the wave generator was not
forming the flex spline correctly I upgraded the drive to use 2 608 bearings but still not working as good as i hoped. After a bit of research i found a better wave generator design using a elliptical plug and a thin wall bearing the challenge was to design it in CAD then print it after a few tries I had a wave generator that worked at high speed and wouldn’t slip. My test drive is not up to the task of
testing so I need to reprint the whole thing again . Instead of using a gear motor I want to use a Nema 17 stepper motor and fit the encoder in the side. Below is the steering actuator from omni_bot2


Below is my latest wave generator, the flex spline is printed in nylon and is holding up well the print quality is bad with the teeth being a bit smaller then they should be




Saturday, 19 July 2014

ROS Smach

After trying to get smach to work for a while I finally have a working program that
I'm happy with. Smach will now monitor the battery level when the voltage goes
below 11.8 volts Robbie will say he's hungry and navigate the charging station
and then using auto dock  to complete the drive. Robbie will then charge for a set
time then return to health monitoring mode.
Future upgrades will preempt any running navigation task and will stop the charge mode when the battery is full

Thursday, 10 July 2014

Arm update

Earlier while running moveit and the Inmoov arm i noticed the object pick up
looked looked strange and i had a limited range where the pickup would work.
The shoulder looked like it needed a pan joint after changing the simulation with the extra joint pickup improved a lot. So i changed the real arm grafting a pan joint on to the inmoov arm proved to hard I had played earlier with the arm out of hector robot but i didn’t like the pan setup and the lack of tilt in the shoulder so i came up with this design the gearbox has a few problems like backlash in the gears the worms are weak and keep breaking (due to the backlash ). The lift joint
all the forces push the worm down the motor shaft loosening the grub screw.
The motor drive plate will need reenforcing because it bends due to the forces applied.

The good news is that ros Moveit works Robbie can pickup a object and place in another location(in simulation) I need to understand the grasp generator better
for a better pick up the performance of pickup  is dependent on the grasp
After a bit of thought the Inmoov arm will also work

Tuesday, 22 April 2014

Voice Recognition

Voice recognition under Linux is a pain, but then under windows it never worked very well. After a bit of playing around i found that the voice recognition program is not the problem but the quality of the sound that we feed into the voice recognition program, there is back ground noise, motor noise and other voices have different pitch(women and kids)so its no wonder the results are poor. The program hark has the features required all it needs is a microphone array. The kinect seems like it will do the job, But getting the microphone to work under with linux is the problem libfreenet only works with older kinects and only on some ports Robbie has 2 kinects a older one for navigation mounted low to the ground  and a newer one for face tracking mounted in his head. Before I can can move to the next stage I have to swap them over just sapping the leads over results in no microphones found. and swapping them will mean removing the mount from one and adding a bracket to the other

Wednesday, 9 April 2014

Dueling Chatbots

I wanted to test Robbie's chat engine but I was to lazy the type the questions so I
set up another chatbot  and had to 2 talk together the result was amusing to say the least they chated away for 5 minutes before one of them crashed, The biggest problem was they answered the question then asked one of there own which became 3 then 4 then 20 answers plus a extra question . Next time I try it the response will be limited to the last 2. The chat engine has been intergrated into the AI now  if i send a unrecognized  request it will go to the chat engine