Some time we need to ship valuable goods. We need the delivery to be fast and we want to know all the time where are our cars, delivering goods and a state of a delivery process. We are engineers: we do not trust human beings; we trust the technics. We believe that all regular work should be automated and passed to robots.
The “Live Hard, Ship Hard” projectThe autonomous shipping project is a complex task, which includes various aspects of a vehicle control, communications, navigation, interaction with an environment etc. The shipment vehicle should have manual and remote control, autonomous driving mode, navigation and accident avoidance abilities, services for reporting location, condition, order processing state and other vehicle data.
The Arduino platform is a powerful platform for a device automation. However, the lack of performance does not allow implementing all features required for an autonomous shipment. The "Live Hard, Ship Hard" project (LHSH project) implements prototypes of all features on the level that is possible to be done within the Arduino platform. The project also use the Windows Remote Arduino for implementation of a wireless remote control and the Azure IoT Suite cloud service for reporting of a state and viewing of a location with a tracking system.
As far as we are looking forward to apply in future the project results to real cars, we took the fully functional car model as a platform for the LHSH project. We took the Rastar Nissan GTR scale 1/24 r/c model as a COTS vehicle platform.
The car control should be autonomous. Thus we modified the GT-R control circuit and linked control pins to external wires to be connected to the microcontroller (Arduino UNO). We planned that manual car control should be also possible but it should be done under the Arduino supervising, so the r/c links should be also connected to the Arduino.
As you can see in the picture above, there is no space inside the car body at all, so we were forced to place wires, Arduino UNO, sensors, batteries and other stuff outside of the car. To do this, we did the slot for wires in the car roof…
…and placed the cardboard box with all the stuff on the top of the car. Thus we got the first working prototype of the r/c car.
It allows driving the car manually by r/c and avoids collision by automatic breaking if any obstacle appears in front of the car.
The platform prototype was used to apply the visual programming approach for a software development in microcontroller’s domain. The VIPE is the visual IDE for graphical development of a portable software with domain-specific visual languages.
We develop the Arduino DSL prototype and use it to program the functionality of transparent r/c control with road collision detection and avoidance for the above car prototype.
The prototype was not too pretty to be presented officially, so we designed the roof box and printed it on the 3D printer to replace the cardboard roof box.
Assembling had been completed. The result was much better:
Tests recently show that batteries are a weak point of the solution: both the car and the Arduino “lives” only 10-20 minutes and the battery level becomes very low extremely fast. Rechargeable batteries were even worse because of their lower voltage (1.2V instead of 1.5V).
Our solution was to use a USB power bank instead of batteries both for the Arduino (it can take power from the USB port as well as from the power port) and for car engines.
We modified the power source of the car and replaced power contacts with a USB cable (3*AA batteries gives 4.5V that is very close to 5V from USB power bank). We use the two-ports CANYON CNE-CPB78BL USB power bank.
Finally, we designed and printed on the 3D printer the roof box extension for the power bank.
Additionally we designed and printed the holder for two line sensor.
All 3D models of exteneded constructions are available for downloading from Github (links are at the end of the project presentation).
Embedded ArchitectureThe Arduino UNO is a powerful device that combines benefits of a small size and multiple digital pins. It allowed attaching car control pins, r/c input pins, ultrasonic sensor, two line sensors and the bluetooth adapter directly to the Arduino UNO board without any additional shields or extensions.
This make the final assembling process rather easy and fast.
The use of single Arduino UNO board gives us the very compact design of embedded hardware, so we were able to place it on the top of a compact 1:24 car model. It also provided very low power consumption (about 0.2A at 5V).
Embedded SoftwareTo create a software that would allow to control Arduino UNO board, definitely Arduino IDE was selected. This environment allows quick and easy creation of a program that could control multiple devices: sensors, communication devices, motors etc. Due to the smart IDE’s interface features, we quickly connected libraries required for the project. This allowed to create the «core» of the project – remote GTR control and autonomous drive mode quickly. The usage of the IDE gives us an easy debugging of embedded software directly from the board!
On the next step, we were needed to integrate the Windows Remote Arduino. The integration with the Windows Remote Arduino opened up opportunities for a remote control and monitoring of the board state using all the power of personal computer, mobile devices and cloud technologies. With the Windows Remote Arduino we were able to connect the Arduino Uno board with the outside world!
We took the StandardFirmata library for communication via bluetooth with a mobile device, on which an application with the Windows Remote Arduino library was installed. We patched the StandardFirmata library to integrate the GTR platform functionality with abilities to interact with the Windows 10 mobile devices and computers.
All Arduino and Remote control sources are available for downloading from Github (links are at the end of the project presentation).
Cloud softwareThe Azure IoT Suite is the solution for an integration of devices, sensors, monitoring and tracking systems with unlimited possibilities. The ease of deployment, security, availability and accessibility makes the Azure IoT suite is ideal for an IoT complex integration.
In the LHSH project we integrated the car presence sensors, the local tracking system and the internal monitoring abilities of the preconfigured Azure IoT monitoring solution. Car presence sensors report information about a car being in the sensor surrounding to the IoT cloud. This information displays in the Azure monitoring solution. Messages are also delivered via Azure to the local system that allows displaying indoor tracking.
All software sources that works with Azure IoT Suite are available for downloading from Github (links are at the end of the project presentation).
SummaryThe Arduino platform, the Windows Remote Arduino software and the Azure IoT Suite cloud service gives us a chance to develop, compose and tightly integrate many heterogeneous technologies.
Our future steps in the field of autonomous operating vehicles will be done using more powerful embedded platform Arduino/Genuino MKR1000 with higher computing abilities and a wide range of wireless communications. With this platform we'll make a direct integration of vehicles with the Azure IoT cloud and extend the autonomous operation functions.
AfterwordOf course, the project subject of the supercar delivery service is a joke. The project aims the bringing to life the “on the ground” autonomous delivery ways in contrast to the drones, which are now the only modern topic.
We demonstrate that the solution can be developed in a reasonable time with the reasonable cost. The solution is scalable: it can potentially be raised up to the autonomous trucks and trains to make the delivery easier, cheaper and more predictable.
AcknowledgementThe project was done inside the IHPCNT department of the SUAI university, Saint-Petersburg, Russia.
Comments