Difference between revisions of "F17: Optimus"
Proj user5 (talk | contribs) (→Schedule) |
Proj user5 (talk | contribs) (→Parts List & Cost) |
||
Line 323: | Line 323: | ||
== Parts List & Cost == | == Parts List & Cost == | ||
The Project bill of materials is as listed in the table below. | The Project bill of materials is as listed in the table below. | ||
+ | |||
+ | {| class="wikitable" | ||
|- | |- | ||
! scope="col"| SNo. | ! scope="col"| SNo. | ||
− | ! scope="col"| | + | ! scope="col"| Component |
− | ! scope="col"| | + | ! scope="col"| Units |
− | ! scope="col"| | + | ! scope="col"| Total Cost |
|- | |- | ||
|- | |- | ||
− | ! colspan="4"| | + | ! colspan="4"| General System Components |
|- | |- | ||
|- | |- | ||
| 1 | | 1 | ||
− | | | + | | [[SJ_One_Board|SJ One Board (LPC 1758)]] |
− | | | + | | 5 |
− | | | + | | $400 |
|- | |- | ||
|- | |- | ||
| 2 | | 2 | ||
− | | | + | | [https://traxxas.com/products/models/electric/NOS-Deegan-38-Rally?t=overview Traxaas RC Car] |
− | | | + | | 1 |
− | | | + | | From Prof. Kaikai Liu |
|- | |- | ||
|- | |- | ||
| 3 | | 3 | ||
− | | | + | | [http://www.microchip.com/wwwproducts/en/en010405 CAN Transceivers] |
− | | | + | | 15 |
− | | | + | | $55 |
|- | |- | ||
− | |||
− | |||
− | |||
|- | |- | ||
|- | |- | ||
| 4 | | 4 | ||
− | | | + | | [http://www.peak-system.com/PCAN-USB.199.0.html?L=1 PCAN dongle] |
− | | | + | | 1 |
− | | | + | | From Preet |
− | |||
|- | |- | ||
|- | |- | ||
| 5 | | 5 | ||
− | | | + | | [https://www.pcbway.com PCB Manufacturing] |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
| 5 | | 5 | ||
− | | | + | | $70 |
− | |||
− | |||
|- | |- | ||
|- | |- | ||
− | | | + | | 6 |
− | | | + | | 3D printing |
− | | | + | | 2 |
− | | | + | | From Marvin |
|- | |- | ||
|- | |- | ||
+ | | 6 | ||
+ | | General Hardware components( Connectors,standoffs,Soldering Kits) | ||
+ | | 1 | ||
+ | | $40 | ||
|- | |- | ||
− | |||
|- | |- | ||
+ | | 7 | ||
+ | | [https://www.amazon.com/gp/product/B01G1XH46M/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1 Power Bank] | ||
+ | | 1 | ||
+ | | $41.50 | ||
|- | |- | ||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
+ | | 8 | ||
+ | | LED Digital Display | ||
+ | | 1 | ||
+ | | From Preet | ||
|- | |- | ||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
+ | | 9 | ||
+ | | [https://www.amazon.com/AdirOffice-Acrylic-Plexiglass-Sheet-Weatherproof/dp/B072BY9L5B/ref=sr_1_1?ie=UTF8&qid=1513524920&sr=8-1&keywords=acrylic+board+clear Acrylic Board] | ||
+ | | 1 | ||
+ | | $12.53 | ||
|- | |- | ||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
+ | ! colspan="4"| Sensor/IO Controller Components | ||
|- | |- | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
− | + | | 10 | |
− | + | | [https://www.amazon.com/RPLIDAR-A2-The-Thinest-LIDAR/dp/B01L1T32PI RP Lidar] | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | | | ||
− | | [https:// | ||
− | |||
| 1 | | 1 | ||
− | | $ | + | | $449 |
|- | |- | ||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
− | ! | + | ! colspan="4"| Geo Controller Components |
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
− | + | | 11 | |
− | | [https:// | + | | [https://www.amazon.com/DJI-Naza-M-LITE-GPS-Module/dp/B017K2RMCO/ref=sr_1_1?ie=UTF8&qid=1513524634&sr=8-1&keywords=Naza+GPS GPS Module] |
− | |||
| 1 | | 1 | ||
− | | $ | + | | $50 |
|- | |- | ||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
− | ! | + | ! colspan="4"| Bluetooth Bridge Controller Component |
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
− | + | | 12 | |
− | + | | | [https://www.sparkfun.com/products/12582 Bluetooth Module] | |
− | |||
− | |||
− | |||
− | | | ||
− | |||
− | |[https:// | ||
− | |||
| 1 | | 1 | ||
− | | $ | + | | $34.95 |
|- | |- | ||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
− | ! | + | ! colspan="4"| Drive Controller Component |
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
− | + | | 13 | |
− | |[https:// | + | | |[https://traxxas.com/products/models/electric/NOS-Deegan-38-Rally?t=telemetry RPM Sensor] |
− | |||
| 1 | | 1 | ||
− | | $ | + | | $20 |
|- | |- | ||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
|} | |} |
Revision as of 15:39, 17 December 2017
Contents
[hide]- 1 Optimus
- 2 Abstract
- 3 Objectives & Introduction
- 4 Team Members & Responsibilities
- 5 Schedule
- 6 Parts List & Cost
- 7 CAN Communication
- 8 DBC File
- 9 Android and Communication Bridge
- 10 Geographical Controller
- 11 Sensor and I/O
- 12 Motor Controller
- 13 Master Controller
- 14 Common Technical Challenges
- 15 Conclusion
- 16 References
Optimus
Optimus - Self Navigating R/C Car powered by SJOne(LPC1758) micro controller.
Abstract
[[|thumb|centre|700px|System Diagram]]
Objectives & Introduction
Team Members & Responsibilities
- Motor Controller
- Unnikrishnan
- Rajul
- Android and Communication Bridge
- Parimal
- Kripanand Jha
- Unnikrishnan
- Geographical Controller:
- Master Controller:
- Revathy
- Sensor and I/O Controller:
- Sushma
- Supradeep
- Harshitha
- Integration Testing
- Unnikrishnan
- Sneha
- Kripanand Jha
Schedule
Legend:
Major Feature milestone , CAN Master Controller , Sensor & IO Controller , Android Controller, Motor Controller , Geo , Testing, Ble controller, Team Goal
Week# | Date | Planned Task | Actual | Status |
---|---|---|---|---|
1 | 9/23/2017 |
|
|
Complete. |
2 | 9/30/2017 |
|
|
Complete |
3 | 10/14/2017 |
|
|
Complete |
4 | 10/21/2017 |
|
|
complete |
5 | 10/28/2017 |
|
|
Complete |
6 | 11/07/2017 |
|
|
Complete |
7 | 11/14/2017 |
|
|
Complete. |
8 | 11/21/2017 |
|
|
Complete. |
9 | 11/28/2017 |
|
|
Complete. |
10 | 12/5/2017 |
|
|
Complete |
11 | 12/12/2017 |
|
|
On Track |
Parts List & Cost
The Project bill of materials is as listed in the table below.
SNo. | Component | Units | Total Cost |
---|---|---|---|
General System Components | |||
1 | SJ One Board (LPC 1758) | 5 | $400 |
2 | Traxaas RC Car | 1 | From Prof. Kaikai Liu |
3 | CAN Transceivers | 15 | $55 |
4 | PCAN dongle | 1 | From Preet |
5 | PCB Manufacturing | 5 | $70 |
6 | 3D printing | 2 | From Marvin |
6 | General Hardware components( Connectors,standoffs,Soldering Kits) | 1 | $40 |
7 | Power Bank | 1 | $41.50 |
8 | LED Digital Display | 1 | From Preet |
9 | Acrylic Board | 1 | $12.53 |
Sensor/IO Controller Components | |||
10 | RP Lidar | 1 | $449 |
Geo Controller Components | |||
11 | GPS Module | 1 | $50 |
Bluetooth Bridge Controller Component | |||
12 | Bluetooth Module | 1 | $34.95 |
Drive Controller Component | |||
13 | RPM Sensor | 1 | $20 |
CAN Communication
System Nodes : MASTER , MOTOR , BLE , SENSOR , GEO
SNo. | Message ID | Message from Source Node | Receivers |
---|---|---|---|
Master Controller Message | |||
1 | 2 | System Start command to start motor | Motor |
2 | 17 | Target Speed-Steer Signal to Motor | Motor |
3 | 194 | Telemetry Message to Display it on Android | BLE |
Sensor Controller Message | |||
4 | 3 | Lidar Detections of obstacles in 360 degree grouped as sectors | Master,BLE |
5 | 36 | Heartbeat | Master |
Geo Controller Message | |||
4 | 195 | Compass, Destination Reached flag, Checkpoint id signals | Master,BLE |
5 | 4 | Turning Angle | Master,BLE |
5 | 4 | Heartbeat | Master |
Bluetooth Bridge Controller Message | |||
4 | 38 | Heartbeat | Master |
5 | 213 | Checkpoint Count from AndroidApp | Geo |
5 | 214 | Checkpoints(Lat,Long) from Android App | Geo |
DBC File
https://gitlab.com/optimus_prime/optimus/blob/master/_can_dbc/243.dbc
Android and Communication Bridge
Group Members
Design & Implementation
Pin Configuration:
Hardware Design
Software Design and Implementation
Android App
BLE Controller
Testing & Technical Challenges
Geographical Controller
Group Members
Hardware Design
GPS and Compass Module:
We are using DJI’s NAZA GPS/COMPASS to get the GPS coordinates and Heading angle. The diagram of the module is as follows:
Message Structure:
The 0x10 message contains GPS data. The message structure is as follows:
55 AA 10 3A DT DT DT DT LO LO LO LO LA LA LA LA
The payload is XORed with a mask that changes over time.
Values in the message are stored in little endian.
HEADER
BYTE 1-2: message header - always 55 AA BYTE 3: message id (0x10 for GPS message) BYTE 4: length of the payload (0x3A or 58 decimal for 0x10 message)
PAYLOAD
BYTE 5-8 (DT): date and time BYTE 9-12 (LO): longitude (x10^7, degree decimal) BYTE 13-16 (LA): latitude (x10^7, degree decimal)
CHECKSUM
BYTE 63-64 (CS): checksum
XOR mask
All bytes of the payload except 53rd (NS), 54th, 61st (SN LSB) and 62nd (SN MSB) are XORed with a mask. Mask is calculated based on the value of byte 53rd (NS) and 61st (SN LSB).
Pin Configuration:
The Pin Configuration is as follows:
Software Design
Algorithm:
Distance calculation:
We are using the ‘haversine’ formula to calculate the great-circle distance between two points – that is, the shortest distance over the earth’s surface
Haversine formula:
a = sin²(Δφ/2) + cos φ1 ⋅ cos φ2 ⋅ sin²(Δλ/2)
c = 2 ⋅ atan2( √a, √(1−a) )
d = R ⋅ c
where φ is latitude, λ is longitude, R is earth’s radius (mean radius = 6,371km)
Bearing Angle calculation:
Formula:
θ = atan2( sin Δλ ⋅ cos φ2 , cos φ1 ⋅ sin φ2 − sin φ1 ⋅ cos φ2 ⋅ cos Δλ )
where φ1,λ1 is the start point, φ2,λ2 the end point (Δλ is the difference in longitude)
Since atan2 returns values in the range –π to +π (that is, -180° to +180°), to normalize the result to a compass bearing (in the range 0° to 360°), negative values are transformed into the range 180° to 360°) by converting to degrees first and then using (θ+360) % 360, where % is (floating point) modulo.
DBC Messages:
Messages sent from GEO module:
BO_ 4 GEO_TURNING_ANGLE: 2 GEO
SG_ GEO_TURNING_ANGLE_degree : 0|9@1- (1,0) [-180|180] "" MASTER,BLE
BO_ 37 GEO_HEARTBEAT: 1 GEO
SG_ GEO_HEARTBEAT_signal : 0|8@1+ (1,0) [0|255] "" MASTER
BO_ 195 GEO_TELECOMPASS: 6 GEO
SG_ GEO_TELECOMPASS_compass : 0|12@1+ (0.1,0) [0|360.0] "" MASTER,BLE SG_ GEO_TELECOMPASS_bearing_angle : 12|12@1+ (0.1,0) [0|360.0] "" MASTER,BLE SG_ GEO_TELECOMPASS_distance : 24|12@1+ (0.1,0) [0|0] "" MASTER,BLE SG_ GEO_TELECOMPASS_destination_reached : 36|1@1+ (1,0) [0|1] "" MASTER,BLE SG_ GEO_TELECOMPASS_checkpoint_id : 37|8@1+ (1,0) [0|0] "" MASTER,BLE,SENSOR
BO_ 196 GEO_TELEMETRY_LOCK: 1 GEO
SG_ GEO_TELEMETRY_lock : 0|8@1+ (1,0) [0|0] "" MASTER,SENSOR,BLE
BO_ 214 GEO_TELEMETRY: 8 GEO
SG_ GEO_TELEMETRY_LONG : 0|32@1- (0.000001,0) [0|0] "" MASTER SG_ GEO_TELEMETRY_LAT : 32|32@1- (0.000001,0) [0|0] "" MASTER
Messages received by GEO module:
BO_ 212 BLE_GPS_DATA: 8 BLE
SG_ BLE_GPS_long : 0|32@1- (0.000001,0) [0|0] "" GEO SG_ BLE_GPS_lat : 32|32@1- (0.000001,0) [0|0] "" GEO
BO_ 213 BLE_GPS_DATA_CNT: 1 BLE
SG_ BLE_GPS_COUNT : 0|8@1+ (1,0) [0|0] "" GEO,SENSOR
Implementation
Periodic callback function description:
1 Hz Function:
a. Check CAN bus
b. Send Heartbeat to Master module
c. Send GPS lock to Master and Sensor modules
100 Hz Function:
a. Get GPS coordinates
b. Get Heading angle
c. Get Checkpoints count
d. Calculate Bearing angle
e. Calculate Turning angle
f. Calculate Distance remaining
g. Send Heading angle
h. Send Bearing angle
i. Send Turning angle
j. Send Distance remaining
k. Check Destination reached
Testing & Technical Challenges
Sensor and I/O
Group Members
Design & Implementation
Hardware Design
Hardware Interface
Software Design and Implementation
Design & Implementation
Hardware Interface
Software Design
Testing & Technical Challenges
Motor Controller
Group Members
Design & Implementation
Hardware Design
Software Design
Implementation
Testing & Technical Challenges
Master Controller
Group Members
Introduction and Responsibilities
Hardware Design
Software Design
Software Implementation
Common Technical Challenges
Conclusion
Project Videos
Project Source Code
References
Acknowledgement
=== References Used ===