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_projectdirectory
- PICkit™ 3 to programm the robot
- sshconnection to the Raspberry Pi Zero W.
git clone https://github.com/filipmanole/indoor-robot-explorer.gitProgram 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_addressRun 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 stopsExample of how to get data from the sensors:
cd ~/robot-utils/tof/VL53L0X
python VL53L0X_multi_example.pySee 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.
