This video shows a robot I have built that is driving between two waypoints using GPS.
I built this robot last summer, about a year ago. Back then, I never really managed to the software part of the robot working. The weather became worse outside as the fall came, and a lost interest in this project and started working on other things instead.
I wave written all the code myself, apart from the functions used to calculate course and distance between GPS waypoints. I used functions from the TinyGPS library for that. The code runs on an Arduino Due, the robot is using PID control to steer towards the waypoints. The robot uses a combination of GPS-course and integrating the signal from a yaw-gyro to determine its current course. The robot also has a compass, but it does not seem to work very reliably, therefore I do not use it. The robot also has sonar and other sensors, but they are not used in this video. Expect more videos and info about this robot in the near future.
This is a new long-term robot project I have been working on for the past couple of months. It is a general purpose indoor robot, that will work as a platform for experimentation. When designing this robot, I have tried to think about and improve everything I have learned from previous robot projects I have made. But this robot will also feature some new stuff I have not tried before. Some of the key features if the robot includes:
Stepper motor based four-wheel-drive skid-steering drive system
Big Li-Ion battery
A lot of custom 3D printed parts
Heavy duty bumpers, large ground clearance and large foam wheels
Raspberry Pi main computer
Arduino Due for controlling low-level peripherals
Scanning Lidar sensor
Probably a Raspberry Pi camera module mounted on a pan/tilt system
So far, only the majority of the mechanical work is done. Here are a few images, click on them to make them larger:
Made a video of my indoor robot, reading and reacting to different sings using Raspberry Pi, camera and OpenCV. The Raspberry Pi sends data about which sign it is detecting using serial, then the Arduino controlling the robot reacts and performs different pre-programmed manoeuvres.
Made a new video of my mini balancing robot. I am now using TMC2100 stepper motor drivers, which makes the robot very silent and also steadier. I have also returned the PID values and increased the loop speed slightly in the software. A new version of the code is available on the Mini balancing robot page.
This is my attempt at building a really good obstacle avoidance robot. The robot is built to drive around a normal indoor environment without getting stuck on stuff. The robot uses an Arduino Maga 2560 and several sonar sensors to detect obstacles.
This robot also has a Raspberry Pi and camera module, that will be used for computer vision experiments in the future.
I made a simple DIY clock based on Arduino. It uses a RCT module with battery backup, and a serial 7-segment LED display. More information including code, schematic and STL file download are available here: Arduino clock page
I have built an obstacle avoidance robot I built to test a few ideas I had and learn more about what it takes to make robot robot that can navigate around an indoor environment without getting stuck on things. I will also use this robot to experiment with line following and maybe line-maze solving in the future.
I have rebuilt my balancing robot. The reason was that I wanted to fit more sensors and functions, and there where no space for that in the previous design. I have also rewritten all the code and replaced the Kalman-filter I previously used for angle estimation with a complimentary filter instead. This in combination with a higher center of mass have made the robot a lot more stable and tolerant against pushes and other disturbances.
A Kalman-filter should work better than a complimentary filter, but the Kalman-filter is a lot more complicated. Since I do not understand exactly how the Kalman-filter worked, it was to hard for my to tune it properly. The estimated angle of the robot was reacting to slow. My current solution with a complimentary filter is much more responsive. That allowed me to increase the parameters of my PID regulators to make the robot more stable.