Skip to content

Commit a9ad9f3

Browse files
Merge pull request #25 from CommonWealthRobotics/hk/fix-build
Hk/fix build
2 parents 8aea6d0 + 2c8ed03 commit a9ad9f3

File tree

215 files changed

+3704
-3012
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

215 files changed

+3704
-3012
lines changed

.github/workflows/publish.yml

Lines changed: 1 addition & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -21,54 +21,10 @@ jobs:
2121

2222
steps:
2323
- uses: actions/checkout@v2
24-
- name: Fetch
25-
run: git fetch origin
26-
27-
- name: Config
28-
run: |
29-
git checkout source
30-
git log -1
31-
git config user.email "mad.hephaestus@gmail.com"
32-
git config user.name "Kevin Harrington"
33-
git config pull.rebase false
34-
git config core.mergeoptions --no-edit
35-
36-
37-
- name: Check deploy commit
38-
run: |
39-
git checkout deploy
40-
git log -1
41-
git checkout source
42-
43-
- name: Merge deploy into source
44-
run: |
45-
git update-index --assume-unchanged ./.github/workflows/publish.yml
46-
git merge origin/deploy --strategy-option ours --no-ff --no-edit --allow-unrelated-histories -m "Auto-merge from CI "
47-
48-
49-
- name: Checkout Deploy
50-
run: git checkout deploy
51-
52-
- name: Pull latest deploy
53-
run: git pull
54-
55-
- name: Pull changes in source into deploy
56-
run: git pull origin source --allow-unrelated-histories
57-
5824
- name: Set up Ruby
59-
# To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
60-
# change this to (see https://github.com/ruby/setup-ruby#versioning):
61-
# uses: ruby/setup-ruby@v1
6225
uses: ruby/setup-ruby@473e4d8fe5dd94ee328fdfca9f8c9c7afc9dae5e
6326
with:
6427
ruby-version: ${{ matrix.ruby-version }}
6528
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
66-
- name: Deps For tests
67-
run: bundle install
68-
69-
70-
- name: Build Site
71-
run: bundle exec rake site:deploy
72-
7329
- name: Push
74-
run: git push --quiet
30+
run: bash deploy.sh

README.md

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ http://CommonWealthRobotics.github.io/
77

88
Build monitor:
99

10-
https://travis-ci.org/CommonWealthRobotics/CommonWealthRobotics.github.io
10+
https://github.com/CommonWealthRobotics/CommonWealthRobotics.github.io/actions
1111

1212
## How this thing works ##
1313
* The content directory will become the root of the website.
@@ -24,11 +24,7 @@ see this link for updating .congif.yaml with a new token. https://gist.github.co
2424
## Local Compile ##
2525
```
2626
git clone https://github.com/CommonWealthRobotics/CommonWealthRobotics.github.io.git
27-
sudo apt install rbenv
28-
rbenv install 2.7.5
29-
cd into CommonWealthRobotics.github.io
30-
bundle install
31-
bundle exec nanoc view & bundle exec guard
27+
bash launch.sh
3228
3329
For mac:
3430
Install xcode

Rakefile

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -213,10 +213,6 @@ namespace :site do
213213
# Commit and push to github
214214
sha = `git log`.match(/[a-z0-9]{40}/)[0]
215215
Dir.chdir(CONFIG["destination"]) do
216-
sh "git config --global user.email 'mad.hephaestus@gmail.com'"
217-
sh "git config --global user.name 'Kevin Harrington'"
218-
sh "git add --all ."
219-
sh "git commit -m 'Updating to #{USERNAME}/#{REPO}@#{sha}.'"
220216
puts "Pushed updated branch #{DESTINATION_BRANCH} to GitHub Pages"
221217
puts "My work is done, Will I Dream...?"
222218
end

Rules

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ compile '*' do
2323
elsif item[:extension] == 'js'
2424
# don’t filter stylesheets
2525
elsif item[:extension] == 'md'
26-
filter :kramdown
2726
if item[:layout] != nil
2827
#puts "[#{Rainbow(item.reference).red}]\t\t layout '#{Rainbow(item[:layout]).yellow}' requested in front matter"
2928
layout item[:layout]

content/wAlnut/Introduction.md

Lines changed: 0 additions & 7 deletions
This file was deleted.

content/wAlnut/index.md

Lines changed: 0 additions & 8 deletions
This file was deleted.

deploy.sh

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
#!/bin/bash
2+
3+
git fetch origin
4+
5+
git log -1
6+
git config user.email "mad.hephaestus@gmail.com"
7+
git config user.name "Kevin Harrington"
8+
git config pull.rebase false
9+
git config core.mergeoptions --no-edit
10+
11+
git checkout source
12+
13+
git update-index --assume-unchanged ./.github/workflows/publish.yml
14+
git merge origin/deploy --strategy-option ours --no-ff --no-edit --allow-unrelated-histories -m "Auto-merge from CI "
15+
16+
git checkout deploy
17+
18+
git pull --allow-unrelated-histories
19+
20+
git merge source --strategy-option ours --no-ff --no-edit --allow-unrelated-histories -m "Auto-merge from CI "
21+
22+
git pull . source --allow-unrelated-histories
23+
24+
set -e
25+
26+
bundle install
27+
28+
bundle exec rake site:deploy
29+
30+
set +e
31+
32+
git add --all .
33+
34+
git commit -a -m"Update for deploy"
35+
36+
git push origin deploy
37+
38+
git checkout source

docs/Bowler-Kinematics/Advanced_Kinematics/index.html

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -131,24 +131,30 @@
131131
<div class="col-sm-9" role="main">
132132
<div class="bs-docs-section">
133133

134-
<h2 id="jacobian">Jacobian</h2>
135134

136-
<p>For Kinematic systems, the Task Space is used to describe the global coordinates, where the task is being performed. Forward Kinematics solves for the Task Space based on the robot properties. The Joint Space is the internal robot reference system, which typically includes the joint angles, lengths and offsets. Inverse Kinematics solves for the Joint Space from the Task Space. Both are important ways of modeling jobs and systems, and being able to convert between them are absolutely critical in modeling and job functionality.</p>
135+
##Jacobian
137136

138-
<p>A Jacobian Matrix defines the physical properties and is used in both Forward and Inverse Kinematics models to translate between the Task and Joint spaces. The Jacobian matrix, which is calculated from the DH parameters and current pose of the system, multiplied by the Joint Space Velocity matrix gives the Task Space Velocity. The Inverse Kinematics side can get much more complicated as adjusting this equation to solve for the Joint space means taking the inverse of the Jacobian matrix.</p>
137+
For Kinematic systems, the Task Space is used to describe the global coordinates, where the task is being performed. Forward Kinematics solves for the Task Space based on the robot properties. The Joint Space is the internal robot reference system, which typically includes the joint angles, lengths and offsets. Inverse Kinematics solves for the Joint Space from the Task Space. Both are important ways of modeling jobs and systems, and being able to convert between them are absolutely critical in modeling and job functionality.
139138

140-
<h2 id="inverse-jacobian">Inverse Jacobian</h2>
139+
A Jacobian Matrix defines the physical properties and is used in both Forward and Inverse Kinematics models to translate between the Task and Joint spaces. The Jacobian matrix, which is calculated from the DH parameters and current pose of the system, multiplied by the Joint Space Velocity matrix gives the Task Space Velocity. The Inverse Kinematics side can get much more complicated as adjusting this equation to solve for the Joint space means taking the inverse of the Jacobian matrix.
141140

142-
<p>By definition, the inverse of a matrix is what needs to be multiplied by a matrix to result in the identity matrix. Only square matrices can have inverses, and not all square matrices can be inverted (and are called noninvertible or singular). In kinematics, the Jacobian matrix size is based on both the number of links and degrees of freedom. The three possible conditions are where the system DOF and the number of links are: equal, greater than or less than. There will only be a square Jacobian when the system DOF and number of links are equal. When the system DOF is greater than the number of links, it is very possible that not all desired states are achievable. When the number of links is greater than the system DOF, over-articulation is possible. This means that there may be multiple poses that give a solution to one particular task space. A 6 link system in a 3 DOF space (x,y,z coordinates) will result in a Jacobian with 3 rows and 6 columns.</p>
141+
##Inverse Jacobian
142+
143+
By definition, the inverse of a matrix is what needs to be multiplied by a matrix to result in the identity matrix. Only square matrices can have inverses, and not all square matrices can be inverted (and are called noninvertible or singular). In kinematics, the Jacobian matrix size is based on both the number of links and degrees of freedom. The three possible conditions are where the system DOF and the number of links are: equal, greater than or less than. There will only be a square Jacobian when the system DOF and number of links are equal. When the system DOF is greater than the number of links, it is very possible that not all desired states are achievable. When the number of links is greater than the system DOF, over-articulation is possible. This means that there may be multiple poses that give a solution to one particular task space. A 6 link system in a 3 DOF space (x,y,z coordinates) will result in a Jacobian with 3 rows and 6 columns.
143144

144145
<script src="https://gist.github.com/mdiblasi/9925fd3572b30419c425.js"></script>
145146

146-
<h2 id="pseudo-jacobian">Pseudo Jacobian</h2>
147+
##Pseudo Jacobian
147148

148-
<p>Generating the Inverse Jacobian for solving the Inverse Kinematics (assuming achievable poses), isnt possible for non-square Jacobians. In these cases, which are typically iterative rather than analytic, an approximation is appropriate, which is achieved with the Pseudo Jacobian. The Pseudo Jacobian is calculated by manipulating the Jacobian, which has the extra benefit of avoiding a case where two sequential limbs are locked straight out, also known as a singularity condition.</p>
149+
Generating the Inverse Jacobian for solving the Inverse Kinematics (assuming achievable poses), isn't possible for non-square Jacobians. In these cases, which are typically iterative rather than analytic, an approximation is appropriate, which is achieved with the Pseudo Jacobian. The Pseudo Jacobian is calculated by manipulating the Jacobian, which has the extra benefit of avoiding a case where two sequential limbs are locked straight out, also known as a singularity condition.
149150

150151
<script src="https://gist.github.com/mdiblasi/38c718158daeb0dda564.js"></script>
151152

153+
154+
155+
156+
157+
152158

153159
</div>
154160
</div>

docs/Bowler-Kinematics/Analytic_Solver/index.html

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -131,14 +131,13 @@
131131
<div class="col-sm-9" role="main">
132132
<div class="bs-docs-section">
133133

134-
<h2 id="analytic-solver-overview">Analytic Solver Overview</h2>
134+
##Analytic Solver Overview
135135

136-
<p>Simple robot systems can be analytically solved when constraints and degrees of freedom align. Delta robots and 2 link revolute (rotational joint) arms are two examples of such robots that can be analytically analyzed. A delta robot is a system with 3 identical towers or points of rotation, all connecting to one tool tip. Depending on the configuration, it can pivot around a point or traverse the space, mirrored in 120 degree segments around the work space. This is also a great example of Parallel links, whereas a Series system, (like the 2 link revolute arm) is a series of sequential links connected one by one. There is one pose per achievable position since they arent over-constrained. It may not be possible to fully orient in every position, but mapping forward and inverse kinematics is a direct affair.</p>
136+
Simple robot systems can be analytically solved when constraints and degrees of freedom align. Delta robots and 2 link revolute (rotational joint) arms are two examples of such robots that can be analytically analyzed. A delta robot is a system with 3 identical towers or points of rotation, all connecting to one tool tip. Depending on the configuration, it can pivot around a point or traverse the space, mirrored in 120 degree segments around the work space. This is also a great example of Parallel links, whereas a Series system, (like the 2 link revolute arm) is a series of sequential links connected one by one. There is one pose per achievable position since they aren't over-constrained. It may not be possible to fully orient in every position, but mapping forward and inverse kinematics is a direct affair.
137137

138-
<h2 id="analytic-solver-techniques">Analytic Solver Techniques</h2>
138+
##Analytic Solver Techniques
139139

140-
<p>Direct systems can be analyzed as a series of linear equations or simplified to laws of triangles. A 2 link planar arm reaching for a point in 2D space has a limited number of ways to solve the end point. The base position and end point are known, so the end position of link 1 is the unknown. Drawing out the system to find that link position and with that the associated angles means equations of motion can be determined with a few simple lines of code or lower level math. There is no standard algorithm for finding the ideal pose, and it does not need to be recursively run for optimization purposes.</p>
141-
140+
Direct systems can be analyzed as a series of linear equations or simplified to laws of triangles. A 2 link planar arm reaching for a point in 2D space has a limited number of ways to solve the end point. The base position and end point are known, so the end position of link 1 is the unknown. Drawing out the system to find that link position and with that the associated angles means equations of motion can be determined with a few simple lines of code or lower level math. There is no standard algorithm for finding the ideal pose, and it does not need to be recursively run for optimization purposes.
142141
</div>
143142
</div>
144143
</div> <!-- row -->

docs/Bowler-Kinematics/CAD_Scripts/index.html

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -131,12 +131,11 @@
131131
<div class="col-sm-9" role="main">
132132
<div class="bs-docs-section">
133133

134-
<h2 id="cad-scripts">CAD Scripts</h2>
134+
##CAD Scripts
135135

136-
<p>Simulating is great for prototyping, finding issues and tweaking the design before much time or materials are invested. The next logical step is hardware, which is accomplished in Bowler Studio through the use of CAD Scripts. Once the design and function are sufficient, exporting to CAD for 3D printing, machining or other rapid prototyping methods is a simple button press away. Installing standard servos and connections couldnt be simpler, allowing for robots to go through the entire design process up to initial build quicker than ever before!</p>
136+
Simulating is great for prototyping, finding issues and tweaking the design before much time or materials are invested. The next logical step is hardware, which is accomplished in Bowler Studio through the use of CAD Scripts. Once the design and function are sufficient, exporting to CAD for 3D printing, machining or other rapid prototyping methods is a simple button press away. Installing standard servos and connections couldn't be simpler, allowing for robots to go through the entire design process up to initial build quicker than ever before!
137137

138-
<p>Allowing a designer to concentrate fully on function rather than form or compatibility allows for a richer design experience, as well as lowered development time. Robot arms, walkers or mobile robot platforms can be great productivity (or educational) tools and with the capability to have the non-function design work automated more advanced systems are possible faster than one can be ordered. Full system approaches like Bowler Studio lower the bar for manufacturing and learning yet raise the standard on robot design.</p>
139-
138+
Allowing a designer to concentrate fully on function rather than form or compatibility allows for a richer design experience, as well as lowered development time. Robot arms, walkers or mobile robot platforms can be great productivity (or educational) tools and with the capability to have the non-function design work automated more advanced systems are possible faster than one can be ordered. Full system approaches like Bowler Studio lower the bar for manufacturing and learning yet raise the standard on robot design.
140139
</div>
141140
</div>
142141
</div> <!-- row -->

0 commit comments

Comments
 (0)