No edit summary
Line 1: Line 1:
=== <br />Introduction ===
The Core module is a combination of an [[Robot Task Controller | RTC]] with a camera, attached to a rigid frame that, in turn, attaches to a robot body. The Core module is meant to be a easily replaceable part of a robot.
<br />
<br />
The design of the Core module is openly available [https://github.com/robo-fish/Robots/tree/master/Core on GitHub].
<br />
<br />
=== Hardware ===
The Core hardware consists of an [[Robot Task Controller | RTC]], a frame that the RTC is attached to, a camera bridge that attaches to the RTC frame, a camera enclosure that attaches to the camera bridge, and a camera inside the enclosure and electrically connected to the RTC. All parts are designed for [[3D Printing | 3D printing]].
<br />
The RTC frame features lateral extrusions with 16 mm spacing so that it can be clipped to a robot body with matching 16 mm grabbers.
<br />
<br />
The initial prototype used a Raspberry Pi 3B board as RTC. The current prototype is using a [[Nvidia_Jetson | Jetson Nano]] board.
<br />
==== Raspberry Pi ====
{| style="border-width: 0"
{| style="border-width: 0"
| style="text-align: right" | [[File:Core-mechanical-design-1.png | 380px ]]
| style="text-align: left" | [[File:Core-mechanical-design-1.png | 380px ]]
| style="text-align: left" | [[File:Core-mechanical-design-2.png | 200px ]]
| style="text-align: left" | [[File:Core-mechanical-design-2.png | 200px ]]
|}
|}
=== <br />Introduction ===
The Core module is a combination of an [[Robot Task Controller | RTC]] with a camera, attached to a rigid frame that, in turn, attaches to a robot body. The Core module is meant to be a easily replaceable part of a robot.
<br />
<br />
<br />
==== Jetson Nano ====
The design of the Core module is openly available [https://github.com/robo-fish/Robots/tree/master/Core on GitHub].
<br />
<br />
<br />
<br />
Line 16: Line 28:
<br />
<br />
<br />
<br />
==== Raspberry Pi ====
==== Raspberry Pi ====
<br />
===== Package Dependencies =====
On Raspbian you need to install the following repository packages:
Core uses [http://wiringpi.com/ wiringPi] to access the SPI pins on the Raspberry Pi in order to communicate with the RSA. To install wiringPi, type
<pre class="terminal">
sudo apt install wiringpi
</pre>
<br />
<br />
===== Other Software =====
On Raspberry Pi (version 3), Core uses the [https://github.com/raspberrypi/userland userland] libraries ''libmmal_core.so'', ''libmmal_util.so'', ''libmmal_vc_client.so'', ''libvcos.so'', ''libbcm_host.so'' to access the camera. Download the userland source code and build the libraries as follows:
On Raspberry Pi (version 3), Core uses the [https://github.com/raspberrypi/userland userland] libraries ''libmmal_core.so'', ''libmmal_util.so'', ''libmmal_vc_client.so'', ''libvcos.so'', ''libbcm_host.so'' to access the camera. Download the userland source code and build the libraries as follows:
<pre class="terminal">
<pre class="terminal">
Line 26: Line 49:
This will automatically install the ''userland'' framework and code examples to ''/opt/vc''.
This will automatically install the ''userland'' framework and code examples to ''/opt/vc''.
<br />
<br />
<br />
Core uses [http://wiringpi.com/ wiringPi] to access the SPI pins on the Raspberry Pi in order to communicate with the RSA. To install wiringPi, type
<pre class="terminal">
sudo apt install wiringpi
</pre>
<br />
<br />
The Core software layer will also be providing the functions that are used in multiple robot models. For example, an interface for running a previously-trained, predictive neural network, like [[FishNet]].
The Core software layer will also be providing the functions that are used in multiple robot models. For example, an interface for running a previously-trained, predictive neural network, like [[FishNet]].
Line 36: Line 54:
<br />
<br />


=== Hardware ===
==== Jetson Nano ====
The Core hardware consists of an [[Robot Task Controller | RTC]], a frame that the RTC is attached to, a camera bridge that attaches to the RTC frame, a camera enclosure that attaches to the camera bridge, and a camera inside the enclosure and electrically connected to the RTC. All parts are designed for [[3D Printing | 3D printing]].
<br />
<br />
The RTC frame features lateral extrusions with 16 mm spacing so that it can be clipped to a robot body with matching 16 mm grabbers.
<br />
<br />
===== Package Dependencies =====
<pre class="terminal">
sudo apt install apt-utils ssh openssh-server
</pre>
<br />
<br />


=== Electrical RTC Connections ===
=== Electrical RTC Connections ===
==== Data ====
==== Data ====
* The RTC communicates with the RSA in the robot body via the [[SPI]] standard.
* The RTC communicates with the RSA in the robot body via the [[SPI]] standard.
* The RTC connects to the camera over a separate data channel.
* The RTC connects to the camera either over USB or over the CSI-2 port found both on Raspberry Pi and on Jetson Nano.
==== Power ====
==== Power ====
Power is supplied to the RTC by the robot body. Typically, the RSA controls the power line, and the camera is powered by the RTC.
Power is supplied to the RTC by the robot body. Typically, the RSA controls the power line, and the camera is powered by the RTC.
<br />
<br />

Revision as of 2019-07-22T02:00:33


Introduction

The Core module is a combination of an RTC with a camera, attached to a rigid frame that, in turn, attaches to a robot body. The Core module is meant to be a easily replaceable part of a robot.

The design of the Core module is openly available on GitHub.

Hardware

The Core hardware consists of an RTC, a frame that the RTC is attached to, a camera bridge that attaches to the RTC frame, a camera enclosure that attaches to the camera bridge, and a camera inside the enclosure and electrically connected to the RTC. All parts are designed for 3D printing.
The RTC frame features lateral extrusions with 16 mm spacing so that it can be clipped to a robot body with matching 16 mm grabbers.
The initial prototype used a Raspberry Pi 3B board as RTC. The current prototype is using a Jetson Nano board.

Raspberry Pi


Jetson Nano



Software

The Core software is an abstraction layer on top of which robot-specific task control routines will be running. The Core software will hide implementation details related to evaluating sensor data and communicating with the RSA. Sensor data includes input from the camera. The Core software will therefore provide high-level functions for computer vision as well as high-level functions for making sense of various measurement data.

Raspberry Pi


Package Dependencies

On Raspbian you need to install the following repository packages: Core uses wiringPi to access the SPI pins on the Raspberry Pi in order to communicate with the RSA. To install wiringPi, type

sudo apt install wiringpi



Other Software

On Raspberry Pi (version 3), Core uses the userland libraries libmmal_core.so, libmmal_util.so, libmmal_vc_client.so, libvcos.so, libbcm_host.so to access the camera. Download the userland source code and build the libraries as follows:

sudo apt install git cmake
git clone https://github.com/raspberrypi/userland.git
cd userland
./buildme

This will automatically install the userland framework and code examples to /opt/vc.

The Core software layer will also be providing the functions that are used in multiple robot models. For example, an interface for running a previously-trained, predictive neural network, like FishNet.

Jetson Nano


Package Dependencies
sudo apt install apt-utils ssh openssh-server



Electrical RTC Connections

Data

  • The RTC communicates with the RSA in the robot body via the SPI standard.
  • The RTC connects to the camera either over USB or over the CSI-2 port found both on Raspberry Pi and on Jetson Nano.

Power

Power is supplied to the RTC by the robot body. Typically, the RSA controls the power line, and the camera is powered by the RTC.


Debug data: