8000 Develop by jabrena · Pull Request #1 · ev3dev-lang-java/docs · GitHub
[go: up one dir, main page]

Skip to content

Develop #1

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 70 commits into from
Nov 13, 2018
Merged
Changes from 1 commit
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
c3968e2
Migrating to asciidoctor
jabrena Jun 24, 2017
2373cbe
Minor change
jabrena Jun 24, 2017
1a40a74
Minor change
jabrena Jun 24, 2017
0bd4dd8
Removing a link for a external link
jabrena Jun 24, 2017
ae03d1b
Minor change
jabrena Jun 24, 2017
1df612d
Fixed problem with CSS.
jabrena Jun 24, 2017
421c24c
Minor change
jabrena Jun 24, 2017
7ca4c50
Delete 31313.png
jabrena Jun 24, 2017
25b45d5
Delete 45544.png
jabrena Jun 24, 2017
ade3bb5
Delete ColorSensorDemo.java
jabrena Jun 24, 2017
6c87749
Delete GyroSensorDemo.java
jabrena Jun 24, 2017
f08e715
Delete GyroSensorDemo2.java
jabrena Jun 24, 2017
7e94a0a
Delete GyroSensorDemo3.java
jabrena Jun 24, 2017
e69510d
Delete IRSensorDemo.java
jabrena Jun 24, 2017
3a8531e
Delete IRSensorDemo2.java
jabrena Jun 24, 2017
0d6aa17
Delete IRSensorDemo3.java
jabrena Jun 24, 2017
f22c71b
Delete TouchSensorDemo.java
jabrena Jun 24, 2017
1535b12
Delete ev3_gyro_sensor.png
jabrena Jun 24, 2017
ad83b69
Delete ev3_gyro_sensor_example1.png
jabrena Jun 24, 2017
396f1b2
Delete ev3_ir_sensor.png
jabrena Jun 24, 2017
05712dc
Delete ev3_ir_sensor_example1.png
jabrena Jun 24, 2017
031537c
Delete ev3_ir_sensor_example2.png
jabrena Jun 24, 2017
e1d581f
Delete ev3_ir_sensor_example3.png
jabrena Jun 24, 2017
8000
85025f3
Delete ev3_large_motor.png
jabrena Jun 24, 2017
01f47d3
Delete ev3_large_motor_example1.png
jabrena Jun 24, 2017
6fdc3a7
Delete ev3_light_sensor.png
jabrena Jun 24, 2017
2910212
Delete ev3_light_sensor_example1.png
jabrena Jun 24, 2017
9a5a330
Delete ev3_touch_sensor.png
jabrena Jun 24, 2017
d9cbc27
Delete ev3_touch_sensor_example1.png
jabrena Jun 24, 2017
889181d
Delete ev3_touch_sensor_example2.png
jabrena Jun 24, 2017
efba38e
Delete ev3_touch_sensor_example3.png
jabrena Jun 24, 2017
068f0f8
Delete humanSenses.png
jabrena Jun 24, 2017
148f412
Better index
jabrena Jun 24, 2017
4d512b5
Minor change
jabrena Jun 24, 2017
358b78f
Minor change
jabrena Jun 24, 2017
b738c27
Minor change
jabrena Jun 24, 2017
d63746e
Adding GA
jabrena Jun 24, 2017
84e0f1c
Improving Gradle tasks
jabrena Jun 24, 2017
b1e1188
Fixed About Section
jabrena Jun 24, 2017
924e8b9
Review Getting Started
jabrena Jun 24, 2017
c3f8b1b
Minor change
jabrena Jun 24, 2017
5243793
Removing numbers
jabrena Jun 25, 2017
7b541d7
Minor change
jabrena Jun 25, 2017
86d9e98
Improving some sections about fundamentals.
jabrena Jun 25, 2017
62f19a1
Adding new pictures about Sensors
jabrena Jun 25, 2017
de068e9
Adding doc for EV3 US Sensor
jabrena Jun 25, 2017
c76ad7c
Adding GA manually
jabrena Jun 25, 2017
4509191
Minor change
jabrena Jun 25, 2017
7500431
New update
jabrena Jun 27, 2017
82a11ae
New docs
jabrena Jun 28, 2017
2a7c4a8
Adding example about Motors
jabrena Jun 28, 2017
f3b83a6
Adding motor section
jabrena Jun 28, 2017
aedd1b8
New update
jabrena Jun 30, 2017
19e7dbe
Improving documentation about Getting Started.
jabrena Jul 1, 2017
21958b9
More changes
jabrena Jul 1, 2017
04885e9
New update
jabrena Jul 3, 2017
a1f467e
Adding BNO055 in the section about IMU
jabrena Aug 13, 2017
5411cb6
Doc upgrade
jabrena Apr 24, 2018
05be296
Splitting section laptop by OS criteria.
jabrena Apr 26, 2018
1464203
Adding more granular information about Debian Jessie & Debian Stretch
jabrena Apr 26, 2018
da67f2b
More granular JVM info. Not finished
jabrena Apr 26, 2018
058ac46
Improved the documentation about the Brick installation process
jabrena Apr 26, 2018
628fedf
Improving the organization of the Sensors with 2 big categories:
jabrena Apr 26, 2018
f9db3fd
Improving documentation about Getting Started
jabrena Apr 29, 2018
5139dee
Brick Review
jabrena Apr 29, 2018
027b81e
Improving the guide to use Template Project
jabrena Apr 29, 2018
4cfa7b7
Minor change
jabrena Apr 29, 2018
2e36bbd
About section upgraded
jabrena Apr 29, 2018
315c79a
Upgrading docs to unify the JVM to install on EV3
jabrena May 23, 2018
819fa45
Merge branch 'master' into develop
jabrena Nov 13, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
About section upgraded
  • Loading branch information
jabrena committed Apr 29, 2018
commit 2e36bbdd5e1e7b3d68f0df55871fd546507942aa
177 changes: 81 additions & 96 deletions src/main/asciidoc/about/ev3dev-java.adoc
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# What is EV3Dev-java?
# What is EV3Dev-lang-java?

A Java project to build Software for Robots using hardware supported by EV3Dev & the LeJOS way.
A project to learn Java and create software for Mindstorms Robots using hardware supported by EV3Dev & the LeJOS way.

## Introduction

Expand All @@ -16,122 +16,117 @@ The result is very healthy for the Community but... some questions appear in the
- How to continue using Java with all boards?
- What happen with amazing LeJOS libraries about `local-navigation` in this context?

The answer is this project, **EV3Dev-java**.
The answer is this project, **EV3Dev-lang-java**.

image:./theThreeAmigos.jpg[ScreenShot]

## EV3Dev-java Subprojects
## Project architecture

`EV3Dev-java` has been designed with the modularity in mind from the beginning.
The project has been designed with the following solution in mind:

The project contains the following Java libraries/scripts:
[options="header,footer"]
|===
| Layer | Option 1 | Option 2
| Platforms | EV3 BrickPi BrickPi3 PiStorms | EV3
| OS | Debian Jessie | Debian Stretch
| JVM | Oracle JRE 8 | OpenJDK JRI 10
| EV3Dev Kernel | 4.4.47-19-ev3dev-ev3 4.4.47-19-ev3dev-rpi2 | 4.9.58-ev3dev-1.6.0-ev3
| ev3dev-lang-java | 0.7.0 | 2.3.0
|===

* https://github.com/ev3dev-lang-java/ev3dev-lang-java[EV3Dev-lang-java]:
Low level interation library with EV3Dev
* https://github.com/ev3dev-lang-java/lejos-commons[lejos-commons]:
LeJOS interfaces & utilities
* https://github.com/ev3dev-lang-java/lejos-navigation[lejos-navigation]:
LeJOS navigation stack
* https://github.com/ev3dev-lang-java/RPLidar4J[RPLidar4J]: RPLidar A1
support
* https://github.com/ev3dev-lang-java/batteryMonitor[Battery Monitor]: A
battery monitor to protect your hardware against low battery levels
* https://github.com/ev3dev-lang-java/installer[Installer]: A set of
Bash scripts to automate some operations with your brick
**Note:** At the moment, the whole solution is scalable until the next `LEGO Mindstorms` product estimated
for next January of 2020.

## Competitive advantages
## Features included

This project has the following competitive advantages:
**Java features**

* Usage of the same Java libraries for multiple bricks (EV3 Brick, BrickPi 3, BrickPi+ & PiStorms)
* Usage of USB Connections for Arduino
* Usage of complex Devices like LIDARs, Webcams or Advanced IMUs with USB.
* Usage of a Complete Linux
* Usage of `LeJOS` libraries
* OpenJDK Java 10 support for EV3 Brick, Brickpi+/PiStorms + Raspberry Pi 3
* Java profiling tools Support (link:http://www.oracle.com/technetwork/java/javaseproducts/mission-control/java-mission-control-1998576.html[Oracle mission control] & link:http://docs.oracle.com/javase/7/docs/technotes/guides/management/jconsole.html[JConsole])
* Logging support based on link:https://www.slf4j.org/[SLF4J]
* Centralized logs with link:https://www.elastic.co/products/kibana[Kibana]

If you analyze the hardware, any EV3 Brick uses a
`SoC: Sitara Processor AM1808` (from year 2010) to manage Sensors &
Actuators but now with the usage of a BrickPi/PiStorms unit, it is
possible to use the power of a Raspberry Pi 3 increasing the
possibilities to develop complex projects which require por
Computational consumption.
**Platform features**

*2010 Chip included on EV3 Brick:*
* Support for EV3 Brick, PiStorms v1/v2, BrickPi+ & BrickPi 3

....
SoC: Sitara Processor AM1808
CPU: ARM9 300MHz
RAM: 16KB of Instruction Cache, 16KB of Data Cache ,8KB of RAM (Vector Table), 64KB of ROM
....
**Lego Mindstorms features**

*2016 Chip included on Raspberry Pi 3:*
* Regulated Motor Support
* Unregulated Motor Support
* Sensor Support (EV3 sensors)
* Sounds Support
* EV3 LCD Support

....
SoC: Broadcom BCM2837
CPU: 4× ARM Cortex-A53, 1.2GHz
RAM: 1GB LPDDR2 (900 MHz)
....
**Robotics**

## Features out of the box
* Automatic installation of link:http://opencv.org/[OpenCV]
* link:http://espeak.sourceforge.net/[eSpeak] TTS (Text to speech) Support
* link:http://sourceforge.net/p/lejos/wiki/Sensor%20Framework/[LeJOS Sensor filter] Support
* link:https://github.com/ev3dev-lang-java/lejos-navigation[LeJOS local navigation stack] Support
* link:https://github.com/ev3dev-lang-java/usb-devices[RPLidar A1/A2] (2D Lidar) Support

*Java features*
## Subprojects

* Automatic installation of Oracle Java JDK 8 for Brickpi+/PiStorms +
Raspberry Pi 3
* Partial installation of Oracle Java JRE 8 for EV3 Brick
* OpenJDK Java 9 EA support for Brickpi+/PiStorms + Raspberry Pi 3
* Java profiling tools Support
(http://www.oracle.com/technetwork/java/javaseproducts/mission-control/java-mission-control-1998576.html[Oracle
mission control] &
http://docs.oracle.com/javase/7/docs/technotes/guides/management/jconsole.html[JConsole])
* Logging support based on https://www.slf4j.org/[SLF4J]
* Centralized logs with https://www.elastic.co/products/kibana[Kibana]
Stable projects:

*Platforms supported*
- link:https://github.com/ev3dev-lang-java/ev3dev-lang-java[EV3Dev-lang-java]: Low level interation with EV3Dev
- link:https://github.com/ev3dev-lang-java/lejos-commons[lejos-commons]: LeJOS interfaces & utilities
- link:https://github.com/ev3dev-lang-java/installer[Installer]: A set of Bash scripts to automate some operations with your brick
- link:https://github.com/ev3dev-lang-java/template_project_gradle[Template project]: A Gradle project ready to test the project
- link:https://github.com/ev3dev-lang-java/examples[Examples]: A repository with several examples about the usage of this project

* EV3 Brick,
* BrickPi 3
* BrickPi+
* PiStorms v2,
Incubator projects:

*Lego Mindstorms features*
- link:https://github.com/ev3dev-lang-java/lejos-navigation[lejos-navigation]: LeJOS navigation stack
- link:https://github.com/ev3dev-lang-java/batteryMonitor[Battery Monitor]: A battery monitor to protect your hardware against low battery levels
- link:https://github.com/ev3dev-lang-java/openjdk-ev3[OpenJDK for EV3]: A custom OpenJDK JRE build for EV3
- link:https://github.com/ev3dev-lang-java/usb-devices[Usb Devices]: A library to use Arduino, Grove Sensors, GPS, IMU, LIDAR, and more devices...
- link:https://github.com/ev3dev-lang-java/ros[ROS]: A library to publish Sensor data to ROS for SLAM purposes

* Regulated Motor Support (Large EV3 Motors, Medium EV3 Motors, NXT
Motors)
* Unregulated Motor Support (RCX Motors)
* Sensor Support (EV3 sensors)
* Sounds Support
* EV3 LCD Support
## Competitive advantages

*Robotics*
The competitive advantages of this project are:

* Automatic installation of http://opencv.org/[OpenCV]
* http://espeak.sourceforge.net/[eSpeak] TTS (Text to speech) Support
* http://sourceforge.net/p/lejos/wiki/Sensor%20Framework/[LeJOS Sensor
filter] Support
* https://github.com/ev3dev-lang-java/lejos-navigation[LeJOS local
navigation stack] Support
* https://github.com/ev3dev-lang-java/RPLidar4J[RPLidar A1] (2D Lidar)
Support
* Support for Multiple Bricks like EV3 Brick, BrickPi & PiStorms
* Support for `USB` Connections for Sensors like 2D LIDARs, IMU & GPS & `Arduino` Boards
* Usage of `LeJOS` interfaces

If you analyze the hardware, any EV3 Brick uses a
`SoC: Sitara Processor AM1808` (from year 2010) to manage Sensors &
Actuators but now with the usage of a BrickPi/PiStorms unit, it is
possible to use the power of a Raspberry Pi 3 increasing the
possibilities to develop complex projects which require por
Computational consumption.

[options="header,footer"]
|=======================
| Element | LEGO | Raspberry Pi 3 Model B+
| Hardware | EV3 Brick | BrickPi+ BrickPi3 PiStorms
| SoC | Sitara Processor AM1808 | Broadcom BCM2837 RISC de 64 bits
| CPU | ARM9 300MHz | 4× ARM Cortex-A53, 1.4GHz
| RAM | 16KB of Instruction Cache, 16KB of Data Cache, 8KB of RAM (Vector Table), 64KB of ROM | 1GB LPDDR2 (900 MHz)
| USB | 1x | 4x
| Year | 2010 | 2018
|=======================

## Timeline of the project

In 2015, EV3Dev is born to offer a solution to install a complete
In 2015, EV3Dev was born to offer a solution to install a complete
link:https://www.debian.org[Linux Debian Operating System] on
link:https://www.lego.com/en-us/mindstorms[EV3 Brick],
link:https://www.dexterindustries.com/brickpi/[BrickPi Series] &
link:http://www.mindsensors.com/content/78-pistorms-lego-interface[PiStorms Series].
The project provides an agnostic Linux interface to unify the way to interact with Mindstorms Hardware too.

At the end of the same year, `EV3Dev-lang-java` is born with the idea to continue developing Java robots
At the end of the same year, `EV3Dev-lang-java` was born with the idea to continue developing Java robots
on Lego Mindstorms and providing a port of `LeJOS` libraries like the `local-navigation` stack.

In 2017 Q3, the project will be renamed as `EV3Dev-java` to be shorted and to not generate confusion with the usage
of link:https://github.com/ev3dev/ev3dev-lang[EV3Dev binding features].
In the future, we will add the `remote` support and `ROS` support.

## Evolution of Java on Lego Mindstorms ecosystem

LeJOS project is the unique Open Source project present on every Lego Mindstorms generations of the product.
LeJOS project is the unique Open Source project available for every Lego Mindstorms generations of the product.
In any generation, the project had to find a solution for the following layers:

* Runtime
Expand All @@ -142,23 +137,13 @@ This premise was solved in every Mindstorms generation:

[options="header,footer"]
|=======================
|Product | RCX | NXT | EV3
|Runtime | Custom firmware | Custom firmware | Busybox + Native libraries
|JVM | Custom JVM | Custom JVM | Oracle JRE 8
|Robotics libraries | Initial libraries | local-navigation-stack | ~
|Product | RCX | NXT | EV3 + LeJOS | EV3/BrickPi/PiStorms + EV3Dev-lang-java
|Runtime | Custom firmware | Custom firmware | Busybox + Native libraries | Debian Jessie/Stretch
|JVM | Custom JVM | Custom JVM | Oracle JRE 8 | OpenJDK 10
|Robotics libraries | Initial libraries | local-navigation, remote, ros | local-navigation, remote | local-navigation
|Last release | 17/12/2006 | 03/02/2015 | 16/11/2015 | 23/04/2018
|=======================

but now in 2017, any Java developer could have issues with the following scenarios:

- The usage of LeJOS objects on BrickPi3/PiStormsV2
- The USB connection with any Arduino board
- Make a map with a LIDAR like RPLidar A2
- Execute a linux command like `screen` to maintain a `ssh` session although you close the laptop
- Install ROS on your Brick
- Interact with other programming languages

So, to solve this kind of projects appear `EV3Dev-java`.

++++

<script>
Expand Down
0