README.md 4.68 KB
Newer Older
Arnaud Blanchard's avatar
Arnaud Blanchard committed
1
[![logo](logo_blaar.png)](http://blaar.org)
Arnaud Blanchard's avatar
Arnaud Blanchard committed
2

Arnaud Blanchard's avatar
Arnaud Blanchard committed
3
Basic Libraries And Applications for Robotics
Arnaud Blanchard's avatar
Arnaud Blanchard committed
4
5
=============================================

Arnaud Blanchard's avatar
Arnaud Blanchard committed
6
7
8
The goal of this light framework is to provide helpers and shortcuts with few abstractions letting you know what you are doing.
You are free to mix it with any low level code. The drawback is that you have to know what you are doing which is good in robotics.
The modules are minimalist in purpose. If you want more you are advised to use specialized libraries or tools but **blaar** should be helpful to make the integration. 
Arnaud Blanchard's avatar
Arnaud Blanchard committed
9

Arnaud Blanchard's avatar
Arnaud Blanchard committed
10
11
12
13
BLAAR is **open source** CeCILL v2.1 (compatible GPL v2).
**BLAAR** should work on **POSIX** systems. GNU/Linux (**Ubuntu/Raspbian**), Darwin (**Mac OSX**) and Bionic (**Android** not usable yet).
**BLAAR** is still under development, it is **not stable yet** but feel free to [ask improvement or notify issues](https://promethe.u-cergy.fr/blaar/blaar/issues).

Arnaud Blanchard's avatar
Arnaud Blanchard committed
14
15
16
17
18
19
Install
=======

* [Mac OSX](INSTALL_OSX.md)
* [Ubuntu/Raspbian](INSTALL_UBUNTU.md)

Arnaud Blanchard's avatar
Arnaud Blanchard committed
20
21
22
23
24
25
Structure 
=========

blibs - Basic Libraries
-----------------------
These libraries are a set of basic tools simplifying programmation. The programmer keeps full control on the program. You have shortcuts for classical functionalities and very little abstractions. You can freely mix blibs and low level C/C++ functions.
Arnaud Blanchard's avatar
Arnaud Blanchard committed
26

Arnaud Blanchard's avatar
Arnaud Blanchard committed
27
28
29
- [blc_core](https://promethe.u-cergy.fr/blibs/blc_core) : Generic helpers in C or C++ used by all other blaar projects
- [blc_channel](https://promethe.u-cergy.fr/blibs/blc_channel) : Tools to use shared memory in synchrone ( in test) and asynchrone mode 
- [blc_image](https://promethe.u-cergy.fr/blibs/blc_image) : Manipulate blc_array as images. Can load and save them as png files  
Arnaud Blanchard's avatar
Arnaud Blanchard committed
30
31
- [blc_program](https://promethe.u-cergy.fr/blibs/blc_program) : Parse arguments and interacts with user in commandline.

Arnaud Blanchard's avatar
Arnaud Blanchard committed
32
33
Modules 
-------
Arnaud Blanchard's avatar
Arnaud Blanchard committed
34

Arnaud Blanchard's avatar
Arnaud Blanchard committed
35
- [bapps](https://promethe.u-cergy.fr/blaar/bapps.git): Basic Applications for C/C++ with no dependency to manipulate blc_channels (find max, generate oscillators, ...)
Arnaud Blanchard's avatar
Arnaud Blanchard committed
36

Arnaud Blanchard's avatar
Arnaud Blanchard committed
37
38
39
40
All the other modules are optional have dependencies

- [gnuplot](https://promethe.u-cergy.fr/blaar/gnuplot.git) Allows to make graphs from data of blc_channels (require gnuplot)

Arnaud Blanchard's avatar
Arnaud Blanchard committed
41
### specific Linux
Arnaud Blanchard's avatar
Arnaud Blanchard committed
42
43
44
45

- [a_sound](https://promethe.u-cergy.fr/blaar/asound.git) Acquire or produce sound using Advanced Linux Sound Architecture library (require libasounddev).
- [i_v4l2_camera](https://promethe.u-cergy.fr/blaar/iv4l2camera.git) Acquire images from a camera using Video 4 Linux library (require libv4l2dev).
 
Arnaud Blanchard's avatar
Arnaud Blanchard committed
46
### specific Mac OSX
Arnaud Blanchard's avatar
Arnaud Blanchard committed
47
48

- [coreaudio](https://promethe.u-cergy.fr/blaar/asound.git) Acquire or produce sound using Apple Core Audio Frameworks
Arnaud Blanchard's avatar
Arnaud Blanchard committed
49
- [i_AV_camera](https://promethe.u-cergy.fr/blaar/i_AV_camera.git)  Acquire images from cameras using Audio Video Foundation 
Arnaud Blanchard's avatar
Arnaud Blanchard committed
50

Arnaud Blanchard's avatar
Arnaud Blanchard committed
51
In `scripts/` you have bash scripts which combine applications to produce higher level functionalities. They may require you add optional modules.
Arnaud Blanchard's avatar
Arnaud Blanchard committed
52

Arnaud Blanchard's avatar
Arnaud Blanchard committed
53
54
Adding submodules
-----------------
Arnaud Blanchard's avatar
Arnaud Blanchard committed
55

Arnaud Blanchard's avatar
Arnaud Blanchard committed
56
You will only have basic framework. You may add submodules as needed. To add modules use : `git submodule add <module repository>`. Once you have added a module, install it with **`./install.sh <module>|all`**
Arnaud Blanchard's avatar
Arnaud Blanchard committed
57

Arnaud Blanchard's avatar
Arnaud Blanchard committed
58
**all** install all your cloned modules at once.
Arnaud Blanchard's avatar
Arnaud Blanchard committed
59

Arnaud Blanchard's avatar
Arnaud Blanchard committed
60
61
Update the installation
-----------------------
Arnaud Blanchard's avatar
Arnaud Blanchard committed
62

Arnaud Blanchard's avatar
Arnaud Blanchard committed
63
**`./update_and_install_all.sh`**
Arnaud Blanchard's avatar
Arnaud Blanchard committed
64

Arnaud Blanchard's avatar
Arnaud Blanchard committed
65
This will download the new code and install it for blaar and each submodule
Arnaud Blanchard's avatar
Arnaud Blanchard committed
66
67

Usage 
Arnaud Blanchard's avatar
Arnaud Blanchard committed
68
=====
Arnaud Blanchard's avatar
Arnaud Blanchard committed
69

Arnaud Blanchard's avatar
Arnaud Blanchard committed
70
71
**`<binary> [--help] [args ...]`**
The availble blaar binaries are in `bin/` directory. All the binaries accept the **`--help`** option which shows a description of the project and details of possible others options. You can also use scripts which run a combinaison of binaries and other scripts. They are in `scripts/` directory and accept the **`-h`** option which shows a description of the project and details of possible others options.
Arnaud Blanchard's avatar
Arnaud Blanchard committed
72
73
74
When your are in development your are advised to see [developement](DEVELOPMENT.md).
You can see an [**example**](https://framagit.org/blibs/blc_core/wikis/home) of manipulating and displaying generic arrays with blc_core
You can create you first project with this example of [image manipulation](https://framagit.org/blibs/blc_image/wikis/home)
Arnaud Blanchard's avatar
Arnaud Blanchard committed
75

Arnaud Blanchard's avatar
Arnaud Blanchard committed
76
77
**SEE ALSO**  [examples](EXAMPLES.md) [development](DEVELOPMENT.md) [git](GIT.md) [Frequently Asked Questions](FAQ.md)

Arnaud Blanchard's avatar
Arnaud Blanchard committed
78
79
80
81
82
Projects
========

- [![logo pinobo](images/pinobo_logo.png)PINOBO](pinobo.html) A robotic head

Arnaud Blanchard's avatar
Arnaud Blanchard committed
83
84
85
Other documentation
===================

Arnaud Blanchard's avatar
Arnaud Blanchard committed
86
87
How to cite
-----------
Arnaud Blanchard's avatar
Arnaud Blanchard committed
88
89
90
91
92
93
94
95
96

    @Misc{blanchard14,
       author =   {Arnaud Blanchard},
       title =    {{BLAAR} : {Basic Libraries And Applications for Robotics}},
       organization = {ETIS Laboratory, Cergy-Pontoise, 95000 FRANCE},
       howpublished = {url{http://blaar.org}},
       year = {2014--2018}
    }