Skip to content
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

[🛑 Do not Merge ] Comparing v3 and v2 #2

Open
wants to merge 90 commits into
base: dev-2.0.0
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
90 commits
Select commit Hold shift + click to select a range
7df48f0
Added python version
ALBarrettMedical Oct 27, 2020
68a6d0c
Working on tactile top10 support
Nov 5, 2020
ee35055
Merge branch 'feature/specify-python-version-2.7' into 'feature/top10…
Nov 5, 2020
058d916
Top10 is working!
Nov 5, 2020
3893b92
Changed | to + to be more readable in hand->update()
Nov 20, 2020
7824a1d
Updated version to 1.3.0
Nov 20, 2020
9886993
Changed to getTactileData()
Dec 2, 2020
762c119
Merge branch 'devel-14.04' into feature/top10-125
Dec 2, 2020
f7a3e51
Merge branch 'feature/top10-125' into 'devel-14.04'
Dec 2, 2020
de8d8fc
Update README.txt to specify the git branch after checkout.
Dec 23, 2020
f0d0789
Fixups for libconfig, Eigen, and Boost in Ubuntu 20.04
Jan 26, 2021
587f67b
Merged tactile top10 into this branch
Jan 26, 2021
a8e6133
Updated config access for gravitycal
Jan 27, 2021
f91e81e
Reverted libconfig calls, creating a new issue
Jan 28, 2021
276e3e8
Updated deps, now using timer_fd in PeriodicLoopTimer for non-RT, int…
Jan 29, 2021
8880323
Trimmed wamdiscover to work with Python3, added script to configure P…
Feb 12, 2021
3e8e196
Improved HI timing, and modified some realtime calls
Mar 20, 2021
47e01a7
Merge branch 'feature/ubuntu2004' of https://git.barrett.com/software…
Mar 20, 2021
a2440df
Making sensor reads more transactional using the bus mutex and yield()
Apr 2, 2021
043df39
Testing installation instructions
Apr 8, 2021
e3c6b60
Testing installation
Apr 8, 2021
2278111
Testing installation
Apr 8, 2021
625e3a9
Testing installation
Apr 8, 2021
8b79aec
Fixing cmake files
Apr 9, 2021
75eafdb
Fixing more installation errors
Apr 9, 2021
23e6b38
Setting the default kernel in grub
Apr 16, 2021
bc35418
Only append gfxpayload to default/grub if it doesn't already exist
Apr 16, 2021
0ff67f8
Converted ex10_haptics_visualization.py from vpython to pyOpenGL. The…
Apr 21, 2021
76a2235
Added newline to end of ex10
Apr 21, 2021
e6fe256
Fixed ESC in ex10 visualization
Apr 21, 2021
4d48b79
Avoid compiler warning in play.cpp by using DOF directly instead of i…
Apr 22, 2021
aafcae3
Removed grub test file
Apr 22, 2021
c84f3cb
Removed boost_filesystem dependency
Apr 26, 2021
99df0a7
Removed OpenGL_accelerate dependency
Apr 26, 2021
5420669
updated version number for release
Apr 28, 2021
b1966e8
Merge branch 'feature/ubuntu2004' into 'devel'
Apr 29, 2021
59afe4d
Update README.md
Apr 29, 2021
895190e
Update README.md
Apr 29, 2021
86cbba2
Update README.md
Apr 29, 2021
c4d67cf
Update README.md
Apr 29, 2021
885c55c
Update README.md
Jul 9, 2021
84b1bc8
Increase significant figures saved to teachfiles
Jul 19, 2021
e19a7ed
Merge branch 'feature/teach_sigfig' into 'devel'
Aug 18, 2021
a5f789c
Added changelog
Aug 30, 2021
3a27a69
Increased enumeration timeout. Fixes enumeration failure on faster co…
Sep 2, 2021
9fd6e70
Update CMakeLists.txt, CHANGELOG.md files
Sep 3, 2021
1d2f770
Merge branch 'bugfix/enumeration_timeout' into 'devel'
Sep 3, 2021
d55cb3d
added in python3 wamudpd script
tn-barrett Apr 28, 2022
54f6446
Updated changelog
tn-barrett Apr 28, 2022
a9e371d
Merge branch 'feature/add-wamudpd' into 'devel'
tn-barrett May 6, 2022
e0c77b2
+ custom calibration config default for wam mobile manipulator
Jul 23, 2022
3875195
[auto-installation for jetson orin]
jaku-jaku Nov 16, 2022
38d7f70
- Created a new file for reading the spline values for the WAM joints.
ajoardar007 Feb 14, 2024
b4217f8
- Copied over the source and executable file for the modified teach-a…
ajoardar007 Feb 14, 2024
f26662d
Read recording file
ajoardar007 Feb 23, 2024
07174aa
- Created script to be able to read the recorded trajectory and displ…
ajoardar007 Feb 23, 2024
b9b9d99
- Made script to follow user-defined trajectory.
ajoardar007 Feb 27, 2024
adaec2b
- Able to play the user-given trajectory and record the progress simu…
ajoardar007 Feb 27, 2024
d82f26b
- Appended script to write the recorded followed trajectory onto a te…
ajoardar007 Feb 28, 2024
f805126
- Working script for writing the recorded trajectory into a comma-sep…
ajoardar007 Feb 28, 2024
ff7cc8e
- Forgot to read from the logger-file to write onto the traj text-file.
ajoardar007 Feb 28, 2024
19b1692
- Corrected the vector to be read: should be the one that is initiali…
ajoardar007 Feb 28, 2024
cd8aab2
- Had accidentally included the .lock file for the doc when committin…
ajoardar007 Feb 29, 2024
ad36f84
- Added info regarding the joint-angle limits of other joints onto th…
ajoardar007 Feb 29, 2024
8ebd6ff
- Added info on how to interpret the WAM configuration file, and docu…
ajoardar007 Feb 29, 2024
9518d37
- Added pointers to not use the Gravity-compensation calibration-proc…
ajoardar007 Feb 29, 2024
5877a36
- Added instructions on how to modify the wam config files for adding…
ajoardar007 Mar 1, 2024
d310343
- Correction to location of Gravity-Calibration config file, and its …
ajoardar007 Mar 1, 2024
095b7c4
- Added inputs on how to set-up git on Ubuntu Groovy (legacy) using ssh.
ajoardar007 Mar 4, 2024
3a989b2
- Minor cosmetic-edis in the README file.
ajoardar007 Mar 5, 2024
f1d42a7
- Added description of pendant display-output for Torque-fault.
ajoardar007 Mar 5, 2024
e375954
Recorded file names
ajoardar007 May 8, 2024
25e1dfb
Merge branch 'uwarl/noetic/dev_3.0.2/arnab/jan-2024' of https://githu…
ajoardar007 May 8, 2024
d0710da
- Added info for copying files (scripts) across ssh terminal (from yo…
ajoardar007 May 9, 2024
e8ff205
Merge branch 'uwarl/noetic/dev_3.0.2/arnab/jan-2024' of github.com:UW…
ajoardar007 May 9, 2024
bae9688
- Added new file to record joint torque data in the data logger
ajoardar007 May 13, 2024
42aefb2
- Working Torque recorder
ajoardar007 May 13, 2024
2210848
- Add new script to exert constant torque on specific joints.
ajoardar007 May 15, 2024
a3be965
- In order to avoid confusion, sub-indices were appended to the origi…
ajoardar007 May 15, 2024
825bc0b
- Added header files to allow logging of robot states.
ajoardar007 May 15, 2024
88360ed
- Corrected the joint index for commanding torque. It starts from ind…
ajoardar007 May 16, 2024
724fad8
- Forgot to change the limits from +1 Nm to -1 Nm.
ajoardar007 May 16, 2024
c101742
- Decreased effort ramp slope from 0.1 Nm/sec to 0.05 Nm/sec to obser…
ajoardar007 May 16, 2024
36c0a0e
- Created new script to examine stick-slip behaviour of Motor 5 so as…
ajoardar007 May 16, 2024
c27a68b
- Updated file name from Motor 6 recording to motor 5
ajoardar007 May 16, 2024
1beb6f3
- Adjusting trajectory-file names for new tests.
ajoardar007 May 24, 2024
df2a43e
- Moved the time-step variable close to the point where we enter the …
ajoardar007 Jul 29, 2024
86967b4
- Added comment on way to use a python script to connect with the WAM…
ajoardar007 Jul 31, 2024
5b3d3ce
- Pointed out that `.barrett` contains the kinematic and dynamic conf…
ajoardar007 Jul 31, 2024
126421b
Merge pull request #3 from UW-Advanced-Robotics-Lab/uwarl/noetic/dev_…
ajoardar007 Nov 5, 2024
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
10 changes: 10 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -80,3 +80,13 @@ Debug/
# Libbarrett generated files
Doxyfile
include/barrett/config.h
*.json
*.opendb
*.vsidx
*.db
*.lock
*.db-shm
*.db-wal
*.sqlite
.vs/uwarl-libbarrett/v17/.suo
.vs/CMake Overview
28 changes: 28 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Change Log
All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/).

## [Unreleased]

- Added wamudpd script that makes PCs findable by the wamdiscover script.
- Updated wamudpd script to run using python3

## [dev-3.0.1]

- Increased enumeration timeout from 1 ms to 5 ms

## [dev-3.0.0]

- Python3 support
- Clang support
- Updated dependencies (Boost, Eigen, Freeglut)
- Allowed WAM loop to run while reading BHand sensors
- Converted ex10 haptics visualization from vpython to OpenGL
- Based WAM loop on a (100x) more accurate timer_fd instead of sleep()
- More robust installation script
- Improved mutex handling for non-rt operation
- Offered Top10 tactile values from BHand for higher update rates

[dev-3.0.1]: https://git.barrett.com/software/libbarrett/-/tags/dev-3.0.1
[dev-3.0.0]: https://git.barrett.com/software/libbarrett/-/tags/dev-3.0.0

45 changes: 28 additions & 17 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
cmake_minimum_required(VERSION 2.6)

project(libbarrett)
set(libbarrett_VERSION_MAJOR 1)
set(libbarrett_VERSION_MINOR 2)
set(libbarrett_VERSION_PATCH 4)
set(libbarrett_VERSION_MAJOR 3)
set(libbarrett_VERSION_MINOR 0)
set(libbarrett_VERSION_PATCH 1)
set(libbarrett_VERSION "${libbarrett_VERSION_MAJOR}.${libbarrett_VERSION_MINOR}.${libbarrett_VERSION_PATCH}")
set(libbarrett_SOVERSION "${libbarrett_VERSION_MAJOR}.${libbarrett_VERSION_MINOR}")

Expand All @@ -29,6 +29,7 @@ option(CONFIG_DEBIAN "Set to ON to copy standard barrett-config.cmake, required

if (OPTIMIZE_FOR_PROCESSOR)
# TODO(dc): Does this turn on sse2 if supported by processor? What about -mfpmath=sse?
# WARNING: This option results in frequent segfaults (why?)
set(NEW_FLAGS "-march=native -mtune=native")

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${NEW_FLAGS}")
Expand Down Expand Up @@ -80,31 +81,41 @@ find_package(GSL REQUIRED)
include_directories(${GSL_INCLUDE_DIRS})
set(exported_include_dirs ${exported_include_dirs} ${GSL_INCLUDE_DIRS})

## Python
if (WITH_PYTHON)
find_package(PythonLibs REQUIRED)
include_directories(${PYTHON_INCLUDE_PATH})
endif()

## Boost
# Python snippet to generate version list:
#for minor in range(45, 60):
# print '"1.%d" "1.%d.0"' % (minor, minor),
set(Boost_ADDITIONAL_VERSIONS "1.45" "1.45.0" "1.46" "1.46.0" "1.47" "1.47.0" "1.48" "1.48.0" "1.49" "1.49.0" "1.50" "1.50.0" "1.51" "1.51.0" "1.52" "1.52.0" "1.53" "1.53.0" "1.54" "1.54.0" "1.55" "1.55.0" "1.56" "1.56.0" "1.57" "1.57.0" "1.58" "1.58.0" "1.59" "1.59.0")
set(boost_components system thread)
if (WITH_PYTHON)
set(boost_components ${boost_components} python)
# Extract major/minor python version
string(REPLACE "." ";" VERSION_LIST ${PYTHONLIBS_VERSION_STRING})
list(GET VERSION_LIST 0 PYTHONLIBS_VERSION_MAJOR)
list(GET VERSION_LIST 1 PYTHONLIBS_VERSION_MINOR)

set(boost_components ${boost_components} python${PYTHONLIBS_VERSION_MAJOR}${PYTHONLIBS_VERSION_MINOR})
endif()
find_package(Boost 1.45.0 REQUIRED ${boost_components})
message(STATUS "Boost components: ${boost_components}")
find_package(Boost REQUIRED ${boost_components})

## Translate cmake's new "Boost::blah" library naming format to a normal "libboost_blah" name that can be passed to the linker.
## TODO(bz): Hunt down anyone who makes stupid changes like this and make them suffer.
set(boost_libraries "")
foreach (prop ${Boost_LIBRARIES})
get_target_property(lib ${prop} LOCATION)
message(STATUS "The name ${prop} has location: ${lib}.")
set(boost_libraries ${boost_libraries} ${lib})
endforeach(prop)
set(Boost_LIBRARIES ${boost_libraries})

include_directories(${Boost_INCLUDE_DIRS})
link_directories(${Boost_LIBRARY_DIRS})

set(exported_include_dirs ${exported_include_dirs} ${Boost_INCLUDE_DIRS})
set(exported_link_dirs ${exported_link_dirs} ${Boost_LIBRARY_DIRS})


## Python
if (WITH_PYTHON)
find_package(PythonLibs 2.7 REQUIRED)
include_directories(${PYTHON_INCLUDE_PATH})
endif()


## Eigen3
find_package(Eigen3 REQUIRED)
include_directories(${Eigen_INCLUDE_DIRS})
Expand Down
312 changes: 292 additions & 20 deletions README.md

Large diffs are not rendered by default.

132 changes: 132 additions & 0 deletions README.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
libbarrett -- README
Barrett Technology
Updated October 7, 2016

Libbarrett is a real-time controls library written in C++ that runs Barrett
Technology's products, including the WAM Arm, Proficio and the BH8-280/282 BarrettHand. For
support, please email:
[email protected]

To build and install libbarrett

Source based install

Pre-requisites:

$ sudo apt-get install git g++ cmake libncurses5-dev python-dev python-argparse
$ sudo apt-get install libeigen3-dev libboost-all-dev libgsl0-dev
$ sudo apt-get install libxenomai-dev libxenomai1
$ wget http://web.barrett.com/support/WAM_Installer/libconfig-1.4.5-PATCHED.tar.gz
$ tar -xf libconfig-1.4.5-PATCHED.tar.gz
$ cd libconfig-1.4.5
$ ./configure && make && sudo make install
$ cd ../
$ rm -rf libconfig-1.4.5 libconfig-1.4.5-PATCHED.tar.gz

Download and install libbarrett:

$ cd ~/
$ git clone https://git.barrett.com/software/libbarrett.git
$ cd libbarrett
$ git checkout devel-14.04
$ cmake .
$ make
$ sudo make install

Configuration Files for the robots:

Upon installation of libbarrett, the configuration files of the robot are
installed to the /etc/barrett directory. However, to give an additional
flexibility of each user maintaining their own configurations for the same
robot, by default, the configuration files are read from ~/.barrett directory
if it exists. If not, then libbarrett reads the necessary configuration files
from /etc/barrett/ directory. It is upto the user to maintain and populate the
~/.barrett directory

For Proficio support only:

In addition to the above, there are two different configuration files for the
Proficio to account for its variant.. So, the right set of configuration files
have to be copied either to the /etc/barrett/ or ~/.barrett folder depending on
the configuration of the robot in use. In order to ease this process, there is a
bash aliases that copies the corresponding configuration files to the
/etc/barrett directory. As before, copying it to the ~/.barrett directory has to
be done manually by the user.

To set it up for the first time after installing libbarrett,

Copy the bash_aliases to the existing aliases

$ cat .bash_aliases >> ~/libbarrett/.bash_aliases

or if no bash aliases exist then create a new one

$ mv libbarrett/.bash_aliases .

Rerun the bash script

$ . ~/.bashrc

- Before running the Proficio in a particular configuration or immediately after
switching the configuration of the proficio, type either of the following based
on the configuration of the robot

$ leftConfig
or
$ rightConfig

The above bash aliases copies the particular configuration of the proficio from
~/libbarrett/proficio_sandbox/configurations into /etc/barrett directory.

- Hit E-STOP and shift+idle.

- If the outer elbow of the proficio is swapped, do gravity calibration before
running the examples.

P.S Some of the examples above may not work with any robot if the libbarrett is
not installed from this source.

Headers and shared libraries will be installed to their typical locations for
your system. Configuration files will be installed to the /etc/barrett/
directory. A copy of the examples/ directory will be placed in your home
folder.

To get started, look through libbarrett's example code. For additional
documentation, see:
http://support.barrett.com/ - Barrett product support site
http://barrett.com/support.htm - File download area
http://web.barrett.com/libbarrett/ - API documentation for libbarrett

It is possible to use CMake to generate several output formats, including
Eclipse CDT4 project files. For details, see:
http://www.paraview.org/Wiki/Eclipse_CDT4_Generator
To generate Eclipse project files, run:
cmake . -G"Eclipse CDT4 - Unix Makefiles"
Then import the generated project into your Eclipse workspace using:
File -> Import -> General -> Existing Projects into Workspace

In order to use libbarrett as a hard real time library, you must have the
Xenomai (http://www.xenomai.org/) real time co-kernel and its RTSocketCAN
driver installed on your system. If a hard real time guarantee is not important
for your application, you may use the SocketCAN driver from the standard Linux
kernel. To use the Linux SocketCAN driver, add "-DNON_REALTIME=true" to your
cmake command.

Additional Makefile targets include:
make install_config # Update or install configuration files only
make package # Package the library as a tar-ball

This version of libbarrett is free software: you can redistribute it and/or
modify it under the terms of the GNU General Public License as published by the
Free Software Foundation.


Contact us at:
[email protected]
http://www.barrett.com/
+1-617-252-9000

Barrett Technology
73 Chapel Street
Newton, MA 02458
USA
3 changes: 2 additions & 1 deletion config/calibration_data/wam7w/zerocal.conf
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
home = ( 0, -2, 0, 3.13, 0, 0, 0 );
home = ( -0.0001095700572, -1.868457755, -0.003420908008, 3.087304199, 0.001106996437, 0.137188488, -0.006267436993 );
zeroangle = ( 4.667903538, 4.980835618, 4.649495768, 5.850602725, 2.110757564, 0.788466125, 4.420932631 );
2 changes: 2 additions & 0 deletions config/calibration_data/wam7w/zerocal.conf.1
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
home = ( -0.002812298112, -1.868322004, -0.003694580653, 3.084918007, 0.001897708183, 0.1407466909, -0.008938803402 );
zeroangle = ( 4.566660806, 5.045262811, 4.709321019, 5.815321167, 2.2196702, 0.8590292412, 4.425534573 );
2 changes: 2 additions & 0 deletions config/calibration_data/wam7w/zerocal.conf.2
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
home = ( 0.002081831068, -1.866991649, 0.1780696678, 3.078696863, -0.006325693979, 0.1336302852, -0.6402032348 );
zeroangle = ( 4.664835576, 4.92561231, 4.724660827, 5.792311455, 2.090815814, 0.8651651644, 4.621884114 );
2 changes: 2 additions & 0 deletions config/calibration_data/wam7w/zerocal.conf.3
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
home = ( 0.0003287101676, -1.873914925, -0.001778872162, 3.088497296, -0.01692123138, 0.1405885486, -0.03051522436 );
zeroangle = ( 4.641825864, 5.194058948, 4.600408383, 5.921165841, 2.030990563, 0.8344855486, 4.466952054 );
2 changes: 2 additions & 0 deletions config/calibration_data/wam7w/zerocal.conf.4
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
home = ( 0.007195100361, -1.876548485, 0.0380404977, 3.095570652, -0.006167551634, 0.1119647834, 0.1957289615 );
zeroangle = ( 4.855049194, 5.169515255, 4.512971478, 5.9963309, 1.909806081, 0.8943107993, 4.697049173 );
2 changes: 2 additions & 0 deletions config/calibration_data/wam7w/zerocal.conf.5
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
home = ( -0.00102265386, -1.864466689, -0.03521254697, 3.084236238, -0.03819137736, 0.141221118, -0.006883906139 );
zeroangle = ( 4.855049194, 5.052932715, 4.67250548, 5.803049321, 2.093883775, 1.049242859, 4.902602598 );
7 changes: 6 additions & 1 deletion examples/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,16 @@ endif()
## libbarrett
find_package(Barrett REQUIRED)
include_directories(${BARRETT_INCLUDE_DIRS})
message(STATUS "BARRETT_INCLUDE_DIRS: ${BARRETT_INCLUDE_DIRS}")
link_directories(${BARRETT_LIBRARY_DIRS})
message(STATUS "BARRETT_LIBRARY_DIRS: ${BARRETT_LIBRARY_DIRS}")
add_definitions(${BARRETT_DEFINITIONS})
message(STATUS "BARRETT_DEFINITIONS: ${BARRETT_DEFINITIONS}")

## curses
find_package(Curses REQUIRED)
include_directories(${CURSES_INCLUDE_DIR})


function(add_programs)
foreach (prog ${ARGV})
add_executable(${prog} ${prog}.cpp)
Expand All @@ -35,6 +37,9 @@ add_programs(
ex06_realtime_move
ex07_realtime_data_logging
ex08_teach_and_play
ex08_3_read_tmp_file
ex08_4_play_custom_traj_from_file
ex08_5_play_and_record
ex09_torque_control
ex10_haptics
ex11_master_master
Expand Down
Loading