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.
Friday, 28 December 2012
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
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
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
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
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
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
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
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
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
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
Subscribe to:
Posts (Atom)