Home - shalomcrown/doggy GitHub Wiki
Welcome to the doggy wiki!
This is a project for playing with robotic dogs. Eventually it might turn into a useful product
This page is a discussion of tools and ideas
Current goals
- Straight line motion with different gaits
- Building some sort of model of the surroundings
- Navigating through the environment to reach some target point
Hardware
The old FreeNove Pidog is on order. The new one costs $175 as opposed to 215 Shekels for the old one!! The content is less important. The main thing is the frame and servos, since I don't currently have any manufacturing capability.
Electronics
This is going to be a RPi 4 with whatever hats are provided in the kit and anything else needed
Code
- I really want to get out of the Java honey trap, and develop in C++, especially when we're using reduced hardware (Rpi).
- Some of the libraries will support Python too (DART), so some work can be done in that.
- Model: I used protobuf for the soccer simulator that is in progress. But then I used MQTT for the message queues. That is a little like re-inventing ROS. We also need to consider the MAVLINK world, which has its own extremely good models. I don't want to use Ardupilot on the Pi, I don't think it's appropriate, but that's a consideration.
Libraries and tools:
Status 2025-07-18
- Dog is built, with RPi 4.
- C++ project started (this project)
- Code to work with servos, doesn't do much yet
- Need to get IMU to work, then we can do auto-calibration
- But before that, select a C++ matrix library.
Library | Thoughts |
---|---|
dlib | Looks realky nice, lots of algorithms, geometric ones too, live, need to compile for machine (use Cmake) also available as package (libdlib-dev) |
Blaze | Basics only, has addons for other things, but has less things. Little progress since 2020 |
Eigen | Basics only, little progress since 2021 |
Armadillo | |
xtensor | |
Boost.ublas | Using Boost alway has its advantages, probably available as package, the data structures tend to be incompatible between different boost libraries (from experience) |
Going to try dlib. Installing the DEB package, I see it pulls in eigen, openCV (core) and others, which it probably uses for those functions.