In recent years there has been an increase in interest in robots. There are billions of dollar spent on professional and personal use robots: autonomous vehicles, maintenance robots, cleaning robots. This repository offers a well structured, modular and low cost robot.
Board layout was designed using EAGLE 9.2.2
Firmware was developed using:
- MPLAB X 5.30
- dsPIC33E-GM-GP-MC-GU-MU_DFP 1.0.23
- XC16 v1.50
Raspberry Pi specifications:
- Raspbian GNU/Linux 9 (stretch)
- GCC version 6.3.0
- Python 2.7
- LiPo Battery 7V4 2200mA
- dsPIC33EP128GM304 microcontroller
- 2x MC33926 Motor Drivers
- 2x Pololu DC Motors
- 3x VL53L0X Time of Flight Sensors
- Raspberry Pi Zero W
In the eagle_project
directory can be found the schematic, the layout design of the board and the Bill of Material. Those files can be used to send the board to manufacture and build the robot. You should obtain something like:
To get a local copy up and running follow these simple example steps.
Make sure you have the following:
- The tools specified in Software Tools section
- The robot obtained from the files in the
eagle_project
directory - PICkit™ 3 to programm the robot
ssh
connection to the Raspberry Pi Zero W.
git clone https://github.com/filipmanole/indoor-robot-explorer.git
Program the robot:
- Open the MPLAB X project
driver.X
- Right click on the project and select
Build
- Program the robot using the PICkit 3
Copy the directory robot-utils
on the Raspberry Pi:
scp robot-utils/ pi_user@raspberry_pi_address:~
Log on the Raspberry Pi:
ssh pi_user@raspberry_pi_address
Run commands to move the robots:
cd ~/robot-utils/commands
make build
robot start # robot can be controlled now
robot run 0.3 0.1 # first argument is the linear velocity, the second is the angular velocity
robot pose # returns the position of the robot x, y and tetha
robot stop # the robot stops
Example of how to get data from the sensors:
cd ~/robot-utils/tof/VL53L0X
python VL53L0X_multi_example.py
See the open issues for a list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License.