Monday, September 25, 2023

Paramotor - Powered paragliding

Flying in the air like a bird has fascinated mankind forever. I saw this movie some 30 years ago and the idea of having an aircraft in my car that I could just take off with was the greatest thing I could think of. But  at the time I was in a rural Indian town and I was pretty convinced I will never have the athleticism, resources, or opportunity to achieve something like that. borrowing a rusty old bicycle to go to the town was a luxury back then.




Fast forward to 30 years later, I have the resources, the physical ability was still suspect (having to run with 50+ lbs of gear on my back was still intimidating) but I still had the dream. So I took a 2 week course, learnt flying, and finally procured my own gear. Now I can walk into any open area and just take off within a few hundred feet.

To me, powered paragliding (PPG) to flying a plane is like riding a bike to driving a car. in PPG, you are not sitting in a cage, are in touch with the elements, and can go to places where a large plan can't go. Slow and low is the motto.

I still cant believe I have flown all by myself, and can do it anytime.


None of this was easy though. The training was hard. I landed on my butt, knees, bruised them enough, and crashed on a failed take off in a corn field. But I learned my lesson from each of those. 

Here is a video of mine from training. I was focused on training and had no time for recording more videos.



Here are a few videos of my paramotor breaking in.







And the first flight I took by myself, without any assistance or instructions. just went to the abandoned airport I trained at, and took off.



Finally, my aircraft with my aircraft carrier


A few more clips, landing, fly-by etc





Saturday, February 26, 2022

The What

  


What is Mobimower

MobiMower (patent pending) evolved from a homeowners' desire to make lawn maintenance easy and practical. 

It is a robotic controller that attaches to any zero turn mower and converts it into an autonomous lawn mower.









Friday, February 25, 2022

The Why

 



Problems with a traditional tractor/mower:


  • Noise and gas pollution: After mowing the operator smells like gas and would have her ears ringing.
  • Fatigue from mowing: The continuous steering and rubbernecking to monitor the work takes a toll on operator's body.
  • Vibrations and bumps: The bumpy ride causes numbness in joints and muscles.
  • Environmental factors : The operator would have to endure cold or heat out in the yard while mowing.






Problems with commercially available Robotic solutions:


  • Risk of theft.
  • Risk of accidents/mower getting stuck in large or uneven yards.
  • No control over mowing patterns.
  • No feedback or supervision in real time.
  • Expensive investment for a small machinery with a delicate blade. Cannot utilize one's existing mower. 
  • Don't work for anything else. Mulching, aerating, rolling, moving stuff etc.
  • Elaborate set-up process required for marking the boundaries, digging trenches.
  • Cannot set up multiple zones to use it in succession for different portions of the yard.




Thursday, February 24, 2022

The What again

  

And thus, the idea for Mobimower was born. A robotic solution that attaches to any existing zero turn mower, and provides all the automation a robotic mower provides, and much more.




  • Works on any zero turn mower with two controlling arms.
  • Provides supervision and real time feedback on the arm position and the mower position (Via cloud, internet connection required by connecting a mobile phone/hotspot to the mower box).

  • Provides visual feedback using cameras allowing the operator to sit in comfort and/or shade.
  • Provides GPS capabilities to allow the mower run on its own on a predefined path.
  • Comes with a failsafe kill switch. In case of a failure (disconnection, system failure, intentional stop) the mower stops in its tracks (needs to be wired to the seat safety switch).
  • Has ultrasonic sensors and AI based cameras to monitor obstacles (animals, kids, debris etc) to avoid them.


Sunday, February 20, 2022

The How

 


It took 6 months of building multiple prototypes, writing code and optimizing data, multiple failures, electrical calibration and re-routing of safety circuits, and finally in Feb 2022, a viable product was ready for it's first run.

But before we forget, let's look back at the journey how we got here


  • MobiMower 0.1 :- Didn't account for positioning and would continue to move the actuator back and forth with no dead zone in between.
  • MobiMower 0.2 :- Relied upon AI and visual feedback for the controlling arms. not deployment ready and discarded.
  • Mobimower 0.3 :- Worked with potentiometer feedback. clunky and prone to fatigue and failure. Eventually discarded
  • Mobimower 0.4 :- Didn't have RC sink circuit and froze the relay, paper capacitor replaced with an electrolytic capacitor
  • MobiMower 1.0 :- Worked on sensor feedback. Built with DC linear actuators. A closed loop system with ultrasonic sensors provides controls systems necessary feedback for accurate steering. Tripped safety switches and did not move the mower.
  • MobiMower 1.1 :- Added additional relays to turn safety switches on and off in sync to make the mower move. Success! Almost took down the garage (blooper video below).



Full test with emergency stop and description before it gets dismantled












  • MobiMower 2.0 :- Ready for install and test: built with stepper motors. An open loop system with fewer sensors required. an easy lock and go approach whenever it needs to switch from auto to manual mode.
  • MobiMower 3.0 :- In development: With GPS navigation, autonomous mowing and path planning.
  • Mobimower 3.a :- Potentially removing the actuators and directly hacking into the control module of the electric mower. specific to electric mowers with electronic control module
  • Mobimower 4.0 :- In future - potentially to work with traditional steering tractors/agricultural equipment

Next steps

  • Move from prototyping to production models
  • Migrate python code base to android and release app
  • Set up universal calibration steps.
  • integration with garage door
  • Add additional relays to operate other switches on the mower

Friday, February 18, 2022

Using an android watch to control an android phone

 I initially built this watch face for an android wear watch ( LG G watch R). But recently I bought a Samsung active 2 which runs on tizen and the flow still worked. Here is a demo and explanation of how it works.









E-bike conversion

This weekend I converted an old bicycle to an electric bike. If you discount the research and prep time (removing old wheel and brake/gear levers) it took about 2hrs for actual implementation. 

Initially I was planning to use my newer aluminum frame bike but older steel frames are much better for ebike conversion. They are heavy, inefficient and over engineered for biking, but much better suited for the high torque exerted by the motor.

Also, this idea started as putting a motor in the hub, but once I found out the kits are sold as an entire wheel, I decided to save time and just buy the entire kit. I don't fancy mounting rims and balancing spokes. 

Here is the process documented in videos.

1. Introduction and theory.
  A. Don't use the front wheel adapters no matter how tempting that is.
  B. Always use torque arms. Adapt it for your bike frame.






2. Inventory





3. Mounting the tire





4. Mounting the wheel on the bike





5. Torque arms





6. Control levers and electrical connections





7. Test run







8. First crash




Detained in airport for 17 hrs.





Detained in airport for 17 hrs.


This could have been the headline until I threatened an international incident. I still lost about 2 hrs at the airport. This is how it started.


I had read about it in a review a while back, but brushed it off as an isolated incident until I ran into it myself. 



https://www.tripadvisor.com/ShowTopic-g304551-i3482-k11309220-Delhi_Airport_s_luggage_storage_cloakroom_Attention-New_Delhi_National_Capital_Territory_o.html#92050689



In India, the ticketing terminal is considered a secure area. Which is understandable because India has a homeless problem, poor problem, 15 people arriving to see one off at the airport problem etc. So the authorities have only allowed ticketed passengers inside the ticketing area at the departure terminal. This is a perfect catch-22 since in order to have a ticket you need to go to the ticketing area but in order to go to the ticketing area, you need a ticket. However, an ID and a printout of a ticket showing a name, date of flight and flight number is considered good enough. You are met with CISF soldiers in full military garb with automatic weapons checking this documentation and letting you in. However, what’s mind boggling is once you are in, your only way out is in an airplane to your destination, or leaving the terminal escorted by the airline personnel with a ton of documentation on why. Flight cancellation, delay etc are acceptable. Nobody wants to do that. In strategy, we call it adding intentional friction to modify user behavior.


I have traveled throughout the world and nowhere one needs to be escorted by officials to leave the terminal. That’s the definition of being in a free country. And I am not even talking about post security. In the rest of the world you can go past security, be at the gate, and then decide to leave. And that’s perfectly fine. All you see is a sign that says in order to get back in you will need to go through security again.


Now in my case, I had a connecting flight the next morning. My Phone did not connect on international roaming so I really wanted to get a ticket printout for the next morning and that’s why I decided to go to the terminal instead of exiting once my current flight had landed. Long story short, my next flight was in the morning so there was no airline staff to escort me out, CISF would not let me out, airport authority (helpdesk) said until I get an airline staff I could not be escorted out (in other words, spend next 17 hrs here), the previous airline that I flew said their responsibility ended once I landed, I should have exited. This went on for about 2 hrs since anyone you talk to, pretends to resolve if for next 30 minutes before getting an answer. All this time Tom Hanks’  “The terminal” was running thru my mind.


In this whole incident though, one thing I am really proud of is how far Airport management has come. Not once there was a talk of money. Had it been 20 years ago when I started flying, a 100 Rs note would have gotten me out in about 2 seconds. But Airport staff and CISF have really upped their game. They were following rules as they were told. However, nobody sat down to understand why those rules were made, and nobody still understands that the rules are made to serve the customers, not the other way round.


In the end I asked the CISF guard to call their commandant, and they were able to reverse the transaction  (take me back to the gate I came thru, re-examine my flight details, and since it was 17 hrs away, I was not allowed to enter the terminal and was let go). I was finally able to go to my hotel, meet the friends I had planned to meet, and then come back the next morning, only to find out I still didn't have a ticket. This time the guard called the airline staff, she came and shared her personal phone’s hotspot so I could connect to the internet and pull my online booking and then was let in. Like I said, a perfect example of a catch-22.


Now, I have no intention of starting a campaign to fix this, this is just an awareness post for anyone traveling to India to know that once you enter a terminal, you will either leave in an airplane, or you never will.


Please feel free to post or share this in the interest of other travelers.


#airport #india #internationaltravel 

Vlog-future of generative AI

 Since chatgpt is the talk of the town, I figured I'll post my thoughts on where it's headed.


Salient points:

1. AI learns from it's surroundings, so we have to be careful not to divulge personal or corporate secrets while interacting with it.


2. AI learns from it's surroundings. By making it's content creators using it's own output instead of creating new content, it's going to create a feedback loop of itself where it will keep repeating itself since humans are no longer willing to write content of their own.




Thursday, February 17, 2022

Python-opencv image processing

 This is a demo of image processing in python/opencv 


Edit: I realized I made a mistake in the math description. Sinx was really tangent of the angle. The range for sin is -1 to +1 and which is why I wanted to use it. But since I found that tan variables are easily available I went for the tangent. The problem with tan is it's range goes from minus infinity to plus Infinity and you will run into divide by zero error unless you handle it before you calculate the tangent.  That's why I have greater than zero check.




I have added bookmarks in the description on youtube as below.



And here is the python code I used. It's very experimental but it will work for anyone who wants to test/prototype.


import cv2, sys, numpy, os, math, globals, subprocess

webcam = cv2.VideoCapture(1)

count = 1


globals.initialize()


(_, im) = webcam.read()


height = im.shape[0]

width = im.shape[1]

cv2.namedWindow('Source')

while 1:

 (_, im) = webcam.read()

 cv2.resizeWindow('Source', int(width+200) ,int(height))

 hsv = cv2.cvtColor(im, cv2.COLOR_BGR2HSV)

 lower_red = numpy.array([0,200,0])

 upper_red = numpy.array([20,255,255])

 mask = cv2.inRange(hsv, lower_red, upper_red)

 res = cv2.bitwise_and(im, im, mask=mask)

 gray = cv2.cvtColor(res, cv2.COLOR_BGR2GRAY)

 blurred = cv2.GaussianBlur(gray,(11,11),0)

 edge = cv2.Canny(im,75,100)

# cv2.imshow("Edge1", edge)

 edge = cv2.Canny(blurred,75,100)

# cv2.imshow("Edge", edge)

 linesP = cv2.HoughLinesP(edge, 1, numpy.pi / 180, 50, None, 10, 10)

 if linesP is not None:

  for i in range(0, len(linesP)):

   l = linesP[i][0]

   if ((l[3] - l[1]) > 0):

    sinx = ((l[2] - l[0]) / (l[3] - l[1]))

    if (sinx < -1) or (sinx > 1):

     cv2.line(im, (l[0], l[1]), (l[2], l[3]), (0,255,255), 5)

 cv2.circle(im,(globals.mousexmove,globals.mouseymove),10,(255, 255, 0),3)

 cv2.imshow("masked", res)

 cv2.imshow("Source", im)

# cv2.imshow("Gray", gray)

# cv2.imshow("Edge", edge)

 cv2.imshow("Blur", blurred)

 count += 1

 key = cv2.waitKey(10)

 if key == 27:

  break

The power surfing project

  01-Apr-2023: Sometime ago I had posted a video of a 400w trolling motor on my paddle board. It's a good option for a leisurely stroll ...