After just getting a lovely new turtlebot2 its now time to try it out.
Building the turtlebot was a little bit of a pain, very little documentation and I didnt quite have the right mounting for my Kinect. However just be analysis of the poles and vast number of holes I got it put together. Before I go about re-wiring the Kinect to take power from the Kobuki’s battery, I’m going to test the software setup.
Basicly there are 2 good websites to use: The first gives a good overview and helped me with getting the Kinect tested. The second is the offical documentation. I recomend starting on the official docs for the turtlebot install, PC install and network configuration.
- Learn TurtleBot and ROS
- turtlebot/Tutorials/indigo – ROS Wiki
The network configuration turned out to be very important and I missed the stage out of setting up the ROS_MASTER_URI and ROS_HOSTNAME in .bashrc and as a result didnt get the Kinect camera working straight away.
Initial set-up and 3D image of ROS and RVIZ with turtlebot
The challenge didn’t quite get completed and it certainty didn’t go to plan but it was a lot of fun and I enjoyed every minuet of the frantic building.
In review I feel I should address why I originally undertook this challenge. The task was deliberately very short and not hugely complex (by that I mean in comparison to high level robots like PR2). The idea being I could fit the build into a weekend and the complexity was reasonable enough to not get overwhelmed by it. There were a few main reasons why I set myself this challenge
1 – I to get into the habbit of documenting well and sharing with a community.
Quite literally I wanted to blog with worthwhile and interesting project. Before I would note things down engineering style, very rarely photograph any thing and I had never uploaded a video to youtube before. I wanted to change my style due to how useful I had found other peoples blogs. I could always find a good how-to, some interesting hidden information, an inspiring project or simply for entertainment.
I found that after the after the first few posts I got into the swing of things and it became easier. I also shorted the posts and detailed just the bit I was working on at the time. I quite enjoyed it and got over the hurdle of ‘it will take too long to setup now in the middle of a project, ill just do it later’.
2 – I wish to tame my inner perfectionist
I quite often find that my projects go quite slowly for two main reasons. I try to design the perfect item before starting, which leads to a complicated design which will take forever to implement. Secondly I always want to make the current bit of the design perfect before moving on. This leads to constant re-design when the next part of the design in order to be perfect requires to first bit to be changed / re-written.
This project forced me to change my design strategy putting time as the most important commodity not quality. The basic strategy was to go from start to finish as fast as possible ending up with sketchyest only just working first version with minimal features. Then to take the first version and fix/improve and upgrade the design based on all the facts I had learnt in build the device.
I feel that the project gave me a great push into speeding up my own design process and not being constrained by perfection and from that perspective the project was an amazing success.
With the effort investing in getting the robot built I am not going to give up on it. I plan to finish continue to get the robot up and running. In keeping with the spirit of the original brief I will keep a record of time and try to get it walking as fast a possible. At the end I should be able to look back and see how long it actually took and really review the entire journey from start to finish.
I want to control the robot from python, to allow me quick and easy prototyping as well as debugging. I plan to use the arduino as a serial bridge between the python code and the servos.
This must have been done before so a quick google turned up exactly what I need. http://principialabs.com/arduino-python-4-axis-servo-control/. A bit of soldering and some testing the python code is able to control a few servos.
I am going to continue this another weekend, I do have 2 hours remaning on the clock but due to being very tired now the 2 extra hours wont help. I will defiantly be finishing this off over the coming week so stay tuned for some more robotic action.
Completeted robot structure
The robot is now built !!!! It took at lot of hardwork but it is finally standing assembled and ready for programming. The good news is able to stand freely as in the photo. The bad news is it does the splits when the thighs are parallel to the ground.
I think the splits are due to the hips being very very wide. I will defiantly shorten the hip brackets in the future and possibly completely re-design that bracket to move the thigh servo into the hip area.
Now to program the robot in the little time remaining …. ahhhhhhhhh
After de-boxing all the servos, getting charitable donations from other robots and finding enough screws to hold the whole lot together the build gets under-way. The chassis servos and brackets are fitted first, due to time I am salvaging some brackets to use for the first stage of the hip.
Chassie setup and bolted together
Just a quick post pinpoint restarting again. I have just run the arduino servo_sweep example application on each servo in the leg. The leg moves quite well unsupported, the hip motor in the chassis sounded a bit more stressed than the others but should hopefully be ok.
With a basic flash test done its on the building the whole robot.
The first leg is constructed.
The first leg constructed !!!!!
Now its built I am very concerned how far the first 2 hip servos stick out. I think that the servo will struggle trying to support the whole leg. It looks like its going to be all or nothing at this point as there’s no time for redesign.
Going to pause the timer now, I’m off to town to see my lovely girlfirend play a violin gig with her friends. Back in a bit 🙂