Skip to content
/ scl Public
forked from samirmenon/scl

scl : Standard Control Library

License

GPL-3.0 and 2 other licenses found

Licenses found

GPL-3.0
COPYING.GPL
LGPL-3.0
COPYING.LGPL
MIT
COPYING.MIT
Notifications You must be signed in to change notification settings

ad1t7a/scl

 
 
scl: Standard Control Library

A control and interactive simulation library. Supports torque control on a variety of robots including
Unimate PUMA 500, Barrett WAM, Kinova Jaco, Neurobot {v1, v2, v3}, HFI {v1, v2, v2.5, v3, v5}, Kuka LWR, 
and Kuka LBR IIWA. (Low-level robot drivers must be obtained separately).

Wiki: https://bitbucket.org/samirmenon/scl-manips-v2/wiki

==================================================================================================
== Getting started ==

=== 1.Install additional dependencies. ===
Open a terminal (ctrl+alt+t) and type:
$ sudo apt-get install build-essential cmake libusb-dev libpci-dev freeglut3-dev libncurses5-dev git-core gitk libusb-1.0-0-dev libglew-dev libqhull-dev libhiredis-dev libjsoncpp-dev libc6-dev-i386 redis-server redis-tools python-redis gcc-multilib g++-multilib

===  2. Get the code. ===
I will assume you will get this on to your documents folder. Again, on the terminal:

$ cd ~/Documents
$ git clone https://<your-bitbucket-id>@bitbucket.org/samirmenon/scl-manips-v2.git scl-manips-v2.git

*** Note replace <your-bitbucket-id> with your actual bitbucket id..
*** Eg. $ git clone https://[email protected]/samirmenon/scl-manips-v2.git scl-manips-v2.git

=== Optional : Check out a stable version of the code ===
Rember, this step is __optional__. If a tag doesn't work for you, try using the latest branch (unstable in general but very likely to have your problem fixed).
Alternatively try an older tag or file some bugs.
$ git tag -l

Then pick whatever tag (stable point) you want. Preferably pick the most recent one.
$ git checkout -b tag-v1.00 tags/v1.00

Unless you have some experience coding, you should consider using a stable version of the code.


=== 2.b Compile 3rdparty/chai3d.git  ===
The graphics rendering uses chai3d. However, chai3d (3.2) requires a lot of RAM to compile. So we're adding it as a separate step instead of using a submodule. Note, chai was packaged as a 3rdparty earlier so if you'd like ease of compile, use an older version of SCL (chai3d 3.0; easier compile).
$ cd 3rdparty
$ git clone [email protected]:samirmenon/chai3d.git chai3d.git
$ cd chai3d.git
$ sh make_everything.sh
$ cd ../../

=== 3. Compile all the libraries.  ===
Compile the scl library and related 3rdparty libraries (Chai-graphics, yaml) all in one step

$ cd scl-manips-v2.git/applications-linux/scl_lib
$ sh make_everything.sh

=== 4. Explore the tutorials. ===
There are numerous tutorials designed to give you an idea of how scl works.
Please feel free to go through them. They should be self explanatory.

$ cd scl_tutorial0_setup_robot
$ make release
$ ./scl_tutorial0_setup_robot

(or, for the more advanced tutorials)

$ cd scl_tutorial3_graphics_physics_cmake
$ sh make_rel.sh
$ ./scl_tutorial3_graphics_physics_cmake

PS : Please go through tutorials in order.

=== 5. Explore the applications. ===
This will open the Pr2 robot with operational space control:

$ cd ../scl_example_ctrl
$ sh make_rel.sh
$ ./scl_eg_ctrl ../../specs/Pr2/Pr2Cfg.xml Pr2Bot opc -ui hand2 -ui hand

You can move the robot's hands around using the 'w s a d q e' and 'u j h k y i' keys on the keyboard

Detailed installation instructions - see Getting started in our wiki:
https://bitbucket.org/samirmenon/scl-manips-v2/wiki/install/getting_started

==========================================================================================

Additional notes:

* For documentation:
$ cd ~/scl-manips-v2.git/doc
$ evince StandardControlFramework-overview.pdf &

* For additional models:
$ cd ~/scl-manips-v2.git/specs
- You can run different models by specifying the config file ../../specs/*/*Cfg.xml

* For additional controllers:
- You can look at the config files. The controllers are specified with xml.

* Writing your own controllers:
- Use the create new controller script in the applications-linux directory (follow instructions):
$ sh create_new_ctrl.sh
- Some applications use cmake. and for them use `mkdir build && cd build && cmake .. && make`
- Others use a makefile and you can build each one using `make release` or `make` (debug mode)

==========================================================================================

About

scl : Standard Control Library

Resources

License

GPL-3.0 and 2 other licenses found

Licenses found

GPL-3.0
COPYING.GPL
LGPL-3.0
COPYING.LGPL
MIT
COPYING.MIT

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 94.4%
  • CMake 3.1%
  • JavaScript 0.7%
  • Shell 0.5%
  • TeX 0.4%
  • Makefile 0.4%
  • Other 0.5%