This guide walks through the process of building instance of CatixBot - very simple 4-legged robot for your experiments with kinematics 🦾 and computer vision 📷 (the project is under development)
- Raspberry Pi equipped with Wi-Fi interface (Raspberry Pi 3B or better)
- Monocular camera compatible with Raspberry Pi (fisheye lenses are better for obstacle avoidance)
- 8x MG90S servos
- PCA9685 16-channel driver
- MPU9250 IMU module
- 2x voltage regulators to power up separately:
- PCA9685 connected with 8x servos
- Raspberry Pi and other low current components
- Print all parts provided in 3d-printing-model repository
- Assemble each part using screws
- Install all electronic components on the top of the body
It is convenient to set up separate Wi-Fi network first. Then, in any place where such a network will be deployed, robots are always guaranteed to share the same environment without additional settings
- Insert SD card (at least 16Gb is recommended)
- Install Raspberry Pi Imager
- Open the installed application and select 'Ubuntu Server 20.04.3' 64-bit to be installed
- Write the image
- Download user-data and network-config
- Update hostname in user-data, where '01' should be replaced by 'serial number' of your robot
- Configure Wi-Fi network credentials in network-config to which the robot will connect to
- Replace both files in the root of 'system-boot' partition on SD card
- Install the latest version of VS Code
- Add Remote Development extension set
- Add Docker extension
- Set the value of
DOCKER_HOST
variable in 'Docker' extension settings:tcp://<docker-host>:2375
, where '<docker-host>' is your 'Raspberry Pi' with a docker daemon running
After this step, you can connect to the 'Raspberry Pi' via SSH (user: catix, password: catix) using Remote-SSH extension to follow the next steps
-
Clone this repository and run the setup script
$ git clone https://github.com/CatixBot/getting-started-guide.git && cd getting-started-guide $ chmod +x ./setup.sh && sudo ./setup.sh
-
Restart for the settings to take effect
$ sudo reboot
-
Check that the docker daemon is running
$ systemctl status docker
-
If the daemon has 'failed' status, it is possible to print its launching logs to figure out the reason
$ journalctl -fu docker
-
Check whether docker has been set up correctly by running 'hello-world' image
$ docker run hello-world
-
Go to the 'Docker' tab in VS Code, which contains a list of robot's ROS2 nodes (docker images and containers)