cad3_isometric

Ravioli machine (2017)

My final project (Thesis A and Thesis B) at UNSW Australia and the first project at Robotix Automation was to design and build a ravioli machine suitable for small to medium enterprises. I worked on this project part time combined with other university studies from March 2017 until November 2017. The main idea was to design a machine that would utilize predominantly off-the-shelf components and parts that would require low-cost manufacturing in order to make it competitive on the market. Furthermore advanced approaches to the control and using latest industry sensing technologies this machine is meant to beat the competitor machines of similar cost in terms of productivity, producing about 600 kg/hr instead of 250 kg/hr. Meanwhile, the footprint of the machine is kept small as the increase in the productivity is achieved only by improvements in the shaping and cutting processes. I have produced 3 design iterations using Autodesk Inventor, came to the final design, selected components and designed a preliminary control system. I have produced extensive documentation in the form of a thesis in my penultimate year at UNSW Australia. I have been awarded High Distinction for the project. Currently the project is in the procurement stage. The plan is to build a prototype, test it and conclude if it’s suitable for the market. I have received a lot of mentorship from my supervisor from Robotix Automation during this project that allowed me to produce a high quality design and learn professional approaches in order to tackle other projects while at the company.…

IMG_20170531_121338

Hexapod navigation (2017)

Part of UNSW Australia coursework for MTRN4110: Robot design. Our team consisted of 4 members and we maintained our code using a Github repository. The first task was to assemble the components on a platform that was to be attached to the provided hexapod. The components included: Depth sensor RGB camera, IMU, on-board computer (LattePanda supporting Win10), Arduino, battery and power management board. The on-board computer was to communicate with a remote laptop running a Matlab client using TCP over Wi-fi. We developed the code in C++ to read sensor data, send it and receive commands over TCP. This allowed us to control the robot remotely and do complex processing on a more powerful machine. The second task was to implement (on the client) localization of the robot using IMU data and triangulation (using the known obstacles and depth camera ranges to them). This involved using different mathematical tools for detecting the obstacles and for example fitting a plane to the floor to account for the current pitch angle of the robot. At this point we could move the robot using movement commands sent from the client GUI. Finally with the provided grid on the floor and randomly allocated obstacles we were to implement a path planning algorithm (we used A*) and make the robot navigate autonomously to the selected location on the client. We had some problems with localization due to poor data quality from the depth sensor camera and our instructor provided us with a laser scanner mounted in the corner of the room. We tried using the data from the laser for improvement of the localization but due to time limitation never implemented it in the final solution. Therefore the robot was able to plan the path and navigate, however not precisely.…

Screen Shot 2017-12-06 at 10.20.47 AM

ABB Robot playing Qwirkle (2017)

Part of UNSW Australia coursework for MTRN4230: Robotics. Group A (my team) consisted of 6 members. Github was used for project code management. The task was to create a Matlab GUI that would allow to control ABB IRB120 robot and play the game Qwirkle. The Matlab client developed uses computer vision to detect Qwirkle blocks. The Robot Studio RAPID code developed allows for multi-tasking and TCP communication with the client accepting commands and reporting the robot position and I/O status in real time. I was responsible for most of the GUI code in Matlab and significant part of robot movement control on both Matlab and RAPID side.…

IMG_5707

Learning hand, VR glove (bits, 2016)

In early March I jumped on board with the Digital Kinematics team as an intern, as they were working on their second prototype of the Learning Hand (the glove for implementing captive feedback in VR gaming). I had some experience in CAD before had obtained some knowledge of electronics after practically “living” in London Hackspace for the previous 3 months, so it seemed that I could be helpful with hardware and software. I was also in the process of taking and EdX course on Embedded Electronics (UT 6.03x), so I could do some embedded programming. Charles and Eugene were amazing mentors, they shared some of their vast experience and knowledge with me. Charles showed me how to use the sophisticated Roland CNC machines they had in the workshop, how to turn stuff on a lathe (to refresh my memory) and a few tricks in Solidworks. Eugene, being very knowledgeable in electronics and programming, became my mentor throughout the whole duration of my internship as I was developing a PID controller for their servomotors first on WeMOS (ESP8266) and then on STM32 using a Nucleo developer board. As a part of my internship I have done the following things: Developed and adjusted a test-rig to test sheathing of different wires (as we had to choose one manufacturer) and how those wires affect the plastic joints (ABS). Set up numerous 3D prints on Ultimaker and Form 2 printers. Developed a PID controller for DK’s own push-pull servomotor using WeMOS ESP8266 dev board and Arduino (for rapid prototyping). Designed and milled a small prototype PCB with hall-effect sensors for the servo. Ported the PID controller to an ARM STM32 chip (programming in C), using Keil IDE and STMCube for quick setup. Designed a fully-functional PCB for the push-pull servomotor. Did a lot of debugging of electronics and software using…

hsrdp_pcb_nofill

HSRDP: Joint motor driver PCB (2016, left the project)

The HSRDP as London Hackspace had a fully working board prototype on it. The robotics group has decided to move on from that and change the main microcontoller to the Connected Launchpad vs Arduino Mega, because the chip on Launchpad could do floating point operations and they were needed for the odd nature of calculations in some of the joint modules. Around the same time Eugene has made an H-bridge board for a servomotor using a MOSFET transistor chip 2-in-1. And so he wanted me to use those. My main challenge was to find out how things connect, decide on the Pin connections to the Launchpad and then, the hardest of all, do the track routing so be able to accomodate everything with minimum vias (which turned out to be about 94). The biggest challenge was the fact that the main 2×20 connector had some pins hard assigned, so I could not move them around and had to route around the connector quite a few times. This layout took some time and brain power to minimize things and fit everything in. Three mondays later the PCB layout was complete and we went on to milling it on the Hackspace’s Shapeoko. But that’s an update for later.    …

IMG_4490

Hexapod (2016, currently unfinished)

I’ve started the project in early November 2015 and have been doing it on and off when I had time of work. I started it because a friend in London Hackspace had a Hexapod kit laying around with a bunch of unused servomotors. He offered me to build it. So first step was to test the servos, I’ve connected them to my Pololu Mini Maestro servo controller (a perfect debugging tool for multi-servo projects) and started spinning. A few were broken so I had to take them apart and put back together so that the gears would spin properly again. After purchasing the remaining servos I did some research. The idea was to build a robot using ROS. And I wanted to use Raspberry Pi 2 to control everything. I’ve found a Hexapod robot project done by someone before using ROS and it became my main starting point. That project used BeagleBone Black, but I for some reason wanted to use Raspberry Pi (perhaps as I was in London and Pi is a UK based device). And so I ordered some additional electronic components: 18-servo Pololu Mini Maestro, Bi-directional 3.3v to 5v logic controller, Pololu MiniMU9 (IMU) and MCP3008 (for ADC as Pi2 doesn’t have those). Next step was to assemble the kit. I didn’t have to design or cut the hexapod frame as the kit had everything I needed already. Parts weren’t of the best quality, but I couldn’t complain as I got them for free. All I needed to do was to drill some M8 holes and then cut M8 bolts to size to keep two main plates fixed together. My good friend was visiting London for work and we spent one evening assembling the kit with all of my servos. Happy days 🙂 Next thing I went on…

IMG_5469

InMoov updated version (2016, left the project)

In my free time from work I have been visiting Wevolver guys’ new office at Fablab London to finalize some parts of the InMoov for the Robots For Good project. We have reprinted the crucial parts with good quality about 60-70% fill and 2.4mm thickness walls. The worm gears were printed with 100% (solid) fill. It took some time, but step by step both arms of the robot came along. I have learnt a few things about 3D print quality, wall thickness, fill and 3D printer tuning (on Ultimakers at least) along the way.…

IMG_0517

InMoov Robot (Unbound event version, 2015)

In early November I joined the Robots For Good project started by Wevolver staff. They had an almost fully printed InMoov Robot (designed by Gael Langevin). However it happened so that they needed to have it moving in some way (at least pre-scripted movements) in 2 weeks time for the Unbound tech exhibition event in London. It was their side project as their main work is the Wevolver website and community. I was confident enough by that time to agree on the offer to help them with InMoov. And so it began. I have faced a few challenges. The main one being a close deadline and a few others involved poor quality prints of some essential moving parts such as gearboxes for shoulders. I spent a lot of time filing the gears and reprinting some parts on a handy Ultimaker 2 we had at London Hackspace at the time. I also had to take out almost every single servomotor, take it apart, take out the potentiometers and put it back together. It was required by the InMoov design, but has not been done before. It was needed because the shoulder gearboxes had worm gears and we needed the have those potentiometers to be the feedback of the actual angle the arm has turned, not how much the worm gear has turned. My soldering skills have really improved after this project. Another problem I faced was the fact that gearboxes would have too much friction. Yes, the quality of Ultimaker 2 is fairly good but still the gears would need a lot of filing before they could be used in the gearboxes. After hours of filing and packing the gearboxes with automotive grease – I could see the arms moving. The last bit of the task was to make it possible…

IMG_4123

HSRDP: Steering H-Bridge motor contoller

HSRDP is a Hackspace Robot Development Platform – a robotics group project at London Hackspace. When I first joined London Hackspace me and Pavel Viatkin have noticed it being relatively abandoned in the robotics corner. Later a senior member has informed us that we’re welcome to contribute to the project. Pavel taught me some initial hands-on mechanical and electrical basics that were useful for this project. I’ve tried welding and we’ve mounted the steering motor on the front wheel of HSRDP. Later on I ended up playing around with making an H-bridge motor controller using first simple bipolar junction transistors and later on MOSFET transistors. I had a lot to learn to say the least as I had very little hands on experience with electronics. We had a widely available L298N but it seemed to overheat when controlling the steering motor that we found. The H-bridge I’ve prototyped on a breadboard worked with some tinkering and I would call it a success except that it still overheated. The conclusion was that the steering motor needs a proper PID controller to avoid the constant oscillating around the target point, as that’s what made both motor controllers overheat. Skills improved/learned: arc welding, soldering, H-bridge, transistors, PWM, Arduino, circuit debugging…

Screen Shot 2016-04-16 at 11.28.33 PM

Precious Web (2015)

The web part of my small time management and hour logging app. It allows users to see their stats for different tags, projects and time spans. The data is added to the database via the Mac OS app. The web app is created using Django framework in Python. It was a full stack personal project, so I had to learn how to set up and host a Django production server on my dedicated LAMP machine (Webmin is my saviour for these tasks). I also had to do the front-end, so I learned a bit about SASS and d3.js The project is open sourced. Github repo: https://github.com/antonvino/precious_web…

Screen Shot 2015-09-06 at 9.42.23 pm

Precious app (2015)

In early 2015 I have come up with an idea of logging my hours and marking each hour as productive/non-productive depending on whether I have procrastinated or got distracted for more than 10 minutes in that hour. I used an Excel table for that and counted the productive hours at the end of the day. A productive hour would give me 1 point and non-productive would give me -1 point. A neutral hour such as an hour spent on routine things around the house, commuting or sports would give 0 points. If at the end of the day I had 8 points, I would give myself a reward next day in the means of a chocolate bar. Later on I thought, why can’t I make a simple app which would allow me to quickly log hours without relying on Excel? And that would also give me statistics over the long periods of time? And so I’ve created a Mac OS app written in Python using py2app. I chose Python because at the time (March 2015) I was learning it while doing a part time internship at Digital Eskimo in Sydney. At work I learned Python and Django and to create my app I used those and also py2app wrappers to make a Python app work with MacOSX. The trickiest part was to achieve syncing, I used Python Requests (a brilliant Python package for HTTP requests) and RestAPI in Django. That allowed me to POST data from my Mac OS App to my Web Django app and sync data. The finished project allowed me to log hours throughout the course of the whole semester, so I could see some stats. Further improvements will include variable time periods (not just an hour) as I have recently learned in a course called Learning…

IMG_1489_2

Aquaponics 2 (in progress)

My current aquaponics project is still in progress. I’ve started it in early 2015 and have been working on and off when I had some time off university. It consists so far of a bamboo vertical wall and a bamboo fish tank. The system has not been launched yet. I have designed some parts of the system using Solidworks but mostly sketched stuff on paper and on iPad. The vertical wall is built by hand using power and hand tools in my garage. I had to learn how to properly cut and split bamboo as well as how to put holes into the poles without splitting it. The 160mm dia poles were so thick – it was almost impossible to cut holes with a holesaw and a handheld power drill that I had. So I made a decision to make perpendicular cuts and then used a chisel to take the leftover pieces out. It was relatively easy, because of the longitudinal structure of the bamboo. To make the fish tank, I’ve designed a well-structure using the poles and used a piece of pond liner. I then put together a bamboo mat using the traditional weaving techniques (slightly simplified). I’ve pretty much mastered weaving mats out of split bamboo poles back then, it took me about 3 hours to make the mat that covers the fish tank. Currently I’m deciding on how to connect the two parts, either by putting the PVC pipes or by creating a wheeled robot that would perform the pumping and moving water back and forth. I have other ideas I wish to implement in this project, experimenting with mechatronics and automation of such systems. [To be updated] [more photos and videos pending]…

IMG_2766

Microwave simulator (2015)

As a part of UNSW Mechatronics program (COMP2121 course), in a team of 2 we have written an Assembly code to simulate the microwave on a board provided by UNSW CSE School. The board had an ATMega2560 Microcontroller (which was essentially an Arduino Mega connected at the bottom) with a few I/O devices attached: momentary switches, LED bar, motor with encoder, speakers, LED bar, and LCD screen. Our task was to write firmware in Assembly to make these I/O devices operate as a microwave simulator. It had to allow input, countdown the time, indicate the dish rotation, register open/closed door, turn the motor to simulate the microwave power and (optionally) make sounds. We have implemented all features in a timely manner, and passed all tests in the end of the course. The only optional feature we did not achieve was the making of sounds due to malfunctioning speakers. Having no previous experience of such low level programming, especially Assembly (I had coded in C before) and with very little knowledge of electronics, it was a steep learning curve, but I enjoyed it a lot and have learned a lot (I/O interfacing, PWM, interrupts, timers, subroutines, memory addressing etc.). IDE & Debugger used: AVR Studio 4 Microcontoller: ATMega2560 Github repo: https://github.com/antonvino/comp2121 [Video pending]…

IMG_1001

Underwater Robotic Arm (2014)

As a part of UNSW Engineering program (MMAN2100 course) in a team of 6 we have designed a prototype of Underwater Robotic Arm which would act as an educational game for children attending the NSW Maritime Museum. We were told that apparently if our design is good, some parts may be implemented in the real device. Our task included coming up with ideas and the full CAD design of the prototype. One of the major parts of this task was documenting (as in report writing). We created a requirements document, decision matrix, BOM and User Manual. The report was incremental and was strictly marked on a fortnightly basis, which really made us all learn what to do and what not to do while documenting an engineering project. We also had to maintain an engineering logbook throughout the process, logging the design process. The project required a lot of good teamwork. We had weekly group meetings and distributed tasks. Even though we did not have assigned leaders, the group performed rather well as a team. We had almost no issues with deadlines and when we did the most reliable people from the group (including me) managed to pull through. We have received High Distinction for the project, which was my initial goal (to finally get the highest mark for the group course). As a team member apart from the basic responsibilities I produced the majority of the complicated parts of the design in Solidworks as I was eager to improve my CAD skills. This project has inspired me to transfer to the Mechatronics stream of Engineering program at UNSW because I enjoyed fiddling with robotics so much (even on a virtual level). Unfortunately the course did not require us to produce a physical prototype (due to time limitations), but at the…

IMG_0126

Air pump

As a part of UNSW Engineering program (MMAN1300 course) in a team of 6 we have designed and manufactured a prototype of a mechanical air pump. In the first part of the course we came up with sketches of our ideas on how to create the pump and acquired essential machining and metal work skills in TAFE workshops on a weekly basis. Later on we designed the parts of the pump in Solidworks and produced engineering drawings according to AS1100 standards. Using the produced drawings each member of the team machined a part assigned to them. We had to communicate a lot and include some adjustments in our design as we found some complications in the machining process. That taught us that it’s very important to know the limitations of the manufacturing when you design parts in CAD. However we managed to succeed in manufacturing all parts and assembled our prototype according to the deadline. In the end of the course we have subjected the fully assembled pump to a generic test performed by UNSW Engineering staff. Our pump was attached to a test jig and it was supposed to inflate and burst a balloon in several jig strokes. Our pump has passed the test and we got full marks.…

IMG_2966

Wave energy plant model (2013)

As part of UNSW Australia Engineering program (ENGG1000 course) in a team of 5 we’ve built a Wave Energy harnessing device. It was a model of an onshore (or close offshore) chamber wave energy plant with a bi-directional airflow for the turbine. We had to design within the given project constraints (it had to fit in the testing wave generator) to maximize the airflow through the outlet. We’ve made several design decisions on the shape of our chamber and the position of the air outlet to achieve that. During the testing phase (at the end of the course) the airflow was measured and we have got good results in the top 3 of the participants. Our team was called SWellBeing. After testing it was found that we should have increased the chamber entrance height, because it would have allowed us to harness the waves much better. With the existing chamber entrance height some waves flowed above the chamber so only the lower part of the wave’s crest pushed the air into the chamber. Also the overflow sometimes suffocated the chamber, not letting the air in. I took part in all stages of the designing, building and report writing, and also was the one to create a 3D model of our design in Autodesk AutoCAD.…

IMG_1750

Aquaponics 1 (2012)

After thinking of several concepts as the summer came, I started exploring the actual land and thinking about real things. I consulted a local DIY guy and have accumulated some knowledge on how to better lay the basement for my small greenhouse. I chose the part of the land right next to the roof of the house as this way the angle of the greenhouse roof can be matched and the snow in winter will not destroy it. This way also one could acccess the greenhouse from the back without getting rained on. I had a blog where I logged the process of building with the help of my good friend Arseniy. The blog does not exist anymore, as I didn’t want to pay for the domain, but the photos remained. As the project has finished I have come across a competition online where you were supposed to submit a video of a DIY structure in your backyard related to home grown food or related stuff. My friend Arseniy being a prominent video editor, has offered to edit the movie. As we have filmed the whole process of building, we had all the footage ready. Several days later, the video was made and it’s still on Vimeo. It’s in Russian (as the video was for a russian competition).   Аквапоника своими руками from Anton Vinokurov on Vimeo.  …

back_iso2

Aquaponics concept (2012)

While thinking of building an aquaponics system on a piece of land that I had access to, I have been researching a lot. Needless to say I was fascinated by the idea of building a greenhouse and my mind wandered to concepts of large facilities. “6-8 growbeds and some towers”, –  I thought, after watching numerous Youtube videos of people working in Aquaponic and Hydroponic farms. Having no prior engineering background and not knowing anything about proper CAD at that point I have created some SketchUp models.   And even a small animation. I was hoping to have this automated door system (first interest in mechatronics): Of course later on, as I knew that the space I have access to is small and the budget is $1000 tops, I calmed down and created something smaller. But that is described in another post.…

Screen Shot 2015-03-31 at 10.35.54 am

poko.co.il (2011)

A coupon deal web platform. I worked for this startup as a backend web developer. I’ve designed and developed the database using MySQL. Using the uride.it core that I’ve been working on at the time, I have adapted it to the needs of this system and added a lot more. A lot of work has gone into the administration system which was unique and tailored specifically for the needs of this service. It included different access levels, including coupon users, brand managers (coupon creators) and site administrators. Later on an iPhone app was made by outsourced developers and I have worked on the API for them. As a result this system had a fully working API supporting JSON.…

Screen Shot 2016-04-17 at 11.51.29 AM

uride.it (2008-2013)

Instead of using a framework the challenge I took was to build everything from ground up, ensuring maximum scalability and optimization of database queries tailored specifically for the project’s purposes. I’ve created my own framework as a result. It was mostly driven by my appreciation of the neat solutions and well organized efficient code. I could spend hours (of joy) investigating potential bottlenecks and inventing smart ways to overcome them. This helped me to learn a lot about SQL and about OOP techniques in general as well as gain proficient knowledge in PHP. Further in the project I have created a language support system that allowed volunteer users to translate the whole interface in their language. It automatically created all the required files (with security in mind) so that the system got immediate updates. During the final stage before leaving the project I have created a fully-functional JSON API for a potential mobile application and the improvement of the existing interface. My additional roles included administrating the webserver, backups, initially designing and managing the database, editing jQuery interface (after my partner has left), coming up with ideas on improving user engagement which included contests, games and etc.…

japanese_village_1_cropped

Hokkaido village

An imaginary village in Hokkaido during winter. I have not been to Japan so far but have been dreaming of going there for a while. This piece was created in a rapid way in one evening with slight finishing touches on another night. Inspired by memories of some Japanese movie with the vision of big snowflakes falling down in front of a forest background and then various lantern images. Also perhaps by Spirited Away. I’m not sure. It was great fun painting this. Acrylic, 2014.…