# Tonic **Repository Path**: dfm1990/Tonic ## Basic Information - **Project Name**: Tonic - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-12-15 - **Last Updated**: 2023-12-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
- Camera live feed and recording.
- Live steering system and recording.
- Working IMU live streaming and recording.
- Working odometry live streaming and recording.
- Qt GUI client for driving and data taking.
- SLAM mapping, and navigation implemented with ORB_SLAM2 and its custom fork, custom python bindings, and serialisation.
# How does it work
As for now, this repository ([mmajewsk/Tonic]) contains guides and software for building, running and steering the car 🚘 for the _data taking_.
The code is divided, into [Tonic/control] and [Tonic/car].
The [Tonic/control] contains the code that is meant to be run on your laptop/pc/mac, that will control the raspberry pi [Tonic/car].
The machine and control interface is communicating via WiFi network, using sockets.
Sensors, camera, and steering - each one is implemented as a separate service using sockets.
You can steer it with the keyboard on PC, while seeing live feed from the camera.
All of the sensors, steering and video can be dumped to files on PC.
You don't need to turn all of the sensors to make this work.
**The odometry and IMU are not necessary to make an environment mapping**
# Ok so how do I start
0. Take a look at previous versions and the current one in [video and screenshots][Screenshots].
1. First start by [assembling the hardware](doc/hardware_guide.md).
2. Then set up the [machine and interface software](doc/running_software.md).
3. Do the data-taking run, running steering and video data, [as described here](doc/running_software.md##running-tonic).
To make your machine drive autonomously, follow the guide in [Tonic/autonomous] repo.
# Contribute
🧑🔧 This project is meant to be open for everyone. The contributions are welcome.
If you would like to help see what's listed in the issues [here](https://github.com/mmajewsk/Tonic/issues), or add something yourself.
Also, you can join the 🗣️ [discord server][discord] if you are looking for quick help, or just want to say hi ;)
# Related repos
- [My fork of ORB_SLAM2](https://github.com/mmajewsk/ORB_SLAM2)
- [My fork of Osmap] - Dumps ORB_SLAM2 to file
- [My fork of PythonBindings] - this one combines osmap with orb slam python bindings!
- [TonicSlamDunk] - Install scripts for all of the above, includes scripts for ubuntu, and dockerfile.
- ~~[TonicOrange] - **Exemplary use of orb slam, for pathfinding**~~ (moved to [Tonic/autonomous])
[discord]: https://discord.gg/shmRajSkDz
[mmajewsk/Tonic]: https://github.com/mmajewsk/Tonic
[Tonic/control]: control
[Tonic/car]: car
[My fork of ORB_SLAM2]: https://github.com/mmajewsk/ORB_SLAM2
[My fork of Osmap]: https://github.com/mmajewsk/osmap
[My fork of PythonBindings]: https://github.com/mmajewsk/ORB_SLAM2-PythonBindings
[TonicSlamDunk]: https://github.com/mmajewsk/TonicSlamDunk
[TonicOrange]: https://github.com/mmajewsk/TonicOrange
[Screenshots]: doc/video_and_screenshots.md
[Tonic/autonomous]: autonomous