I have added a simple editor mode in my graphics engine that allows me to move and rotate entities with the mouse cursor.
This works by casting a ray from the camera, trough the mouse cursor, into the world. To select objects, the distance from the objects local origin to the mouse ray is calculated using linear algebra, if this distance is small enough the object is selected. Then the intersection point between this ray and the terrain is calculated using binary search, and used to position the selected object.
Double jump using [Space] to begin flying mode. Use space and [Shift] to fly up and down. Hold down [Alt] to free the mouse cursor to interact with objects. Click and drag objects with the left mouse button to move them. Click and drag with the right mouse button to rotate objects. Press the center mouse button to spawn a new “physics-barrel”.
Last year I designed the “Stick pusher” for indoor flying. This years airplane is new design. I took all the things that a liked with last years airplane and added some new features, ailerons being the biggest change. I have also moved to a twin boom pusher design to be able to have the motor and propeller more in the center of the air frame, this removes the effect that airplane wants to dive when you increase the throttle. It also makes the airplane fly more symmetrically. The airplane has large control surfaces and is capable of tight loops and turns. It has a relatively large speed envelope for being a small indoor plane, it is possible to fly quit slow, but it can also fly very fast if you want.
I have made some progress with the self balancing robot. The speed of the motors is now controlled using two cascaded PID regulators. One regulator adjusts the speed of the motors to maintain a setpoint angle. The other PID regulator adjusts this setpoint angle according to a setpoint speed. This new control system allows the robot to return to its original position when disturbed. The robot can also find a new angle for balancing if the center of gravity is moved, or the robot is standing on an inclined plane.
In this video I use the Raspberry Pi for a very basic form of remote control. I connect to the robot using SSH, then I run a serial terminal program on the Raspberry Pi to send ascii characters the the main Arduino. The video also shows an example of video and photo quality from the Raspberry Pi camera.
The three ultrasonic distance sensors and the tilt servo for the camera module are not connected yet…
It was about three years since last time I built a robot. I have learned a lot of things since then, now it is time for a new robot project. Now I have built a self balancing robot based on Arduino. This robot uses stepper motors, the balancing is done using a PID regulator. In this video, the setpoint angle is adjusted proportionally to the speed of the motors to keep the robot from drifting away. Later I will add a second PID regulator for this instead.
Currently the robot can only stand still, but this will be a platform for more experiments in the future. There is a Raspberry Pi 2 installed in the robot. Right now it does nothing, but it will bu used to persorm higher level functions like navigation, obstacle avoidance, remote control and maybe computer vision using the raspberry pi camera module.
Steam Digger is a game that I made in the course “TDDD23 Design and Programming of Computer Games” at the university. The game is inspired by an old browser-game called “motherload” the I played a lot when I was a kid. My version is made using Java, libGDX and Box2D. This was interesting to make because if was the first time I used an actual game-library any physics engine to make something. I did not have as mush time as I wanted to spend on this project. There were some features and detailed that were planed, put never added. I think it turned out pretty well anyway. Maybe I will finish this project someday.
Download the game and try it for yourself: http://steamdigger.brinkeby.se/