From 784fd7ca083b080d85d30322ecae8492504b1ae9 Mon Sep 17 00:00:00 2001 From: Sharwin24 Date: Mon, 20 Jan 2025 14:01:40 -0600 Subject: [PATCH] Fixing youtube video sizes and math equations --- config.yaml | 119 ++++++++++--------- content/posts/automated-poker-table/index.md | 11 +- content/posts/mobile-manipulation/index.md | 20 +++- content/posts/robot-arm-edu/index.md | 2 +- content/posts/toastbot/index.md | 11 +- 5 files changed, 96 insertions(+), 67 deletions(-) diff --git a/config.yaml b/config.yaml index a618a59..6c3f5e0 100644 --- a/config.yaml +++ b/config.yaml @@ -40,66 +40,71 @@ module: target: static/fonts markup: - defaultMarkdownHandler: goldmark goldmark: - duplicateResourceFiles: false - extensions: - cjk: - eastAsianLineBreaks: false - eastAsianLineBreaksStyle: simple - enable: false - escapedSpace: false - definitionList: true - extras: - delete: - enable: false - insert: - enable: false - mark: - enable: false - subscript: - enable: false - superscript: - enable: false - footnote: true - linkify: true - linkifyProtocol: https - passthrough: - delimiters: - block: [] - inline: [] - enable: false - strikethrough: true - table: true - taskList: true - typographer: - apostrophe: '’' - disable: false - ellipsis: '…' - emDash: '—' - enDash: '–' - leftAngleQuote: '«' - leftDoubleQuote: '“' - leftSingleQuote: '‘' - rightAngleQuote: '»' - rightDoubleQuote: '”' - rightSingleQuote: '’' - parser: - attribute: - block: false - title: true - autoHeadingID: true - autoHeadingIDType: github - wrapStandAloneImageWithinParagraph: true - renderHooks: - image: - enableDefault: false - link: - enableDefault: false renderer: - hardWraps: false unsafe: true - xhtml: false + +# markup: +# defaultMarkdownHandler: goldmark +# goldmark: +# duplicateResourceFiles: false +# extensions: +# cjk: +# eastAsianLineBreaks: false +# eastAsianLineBreaksStyle: simple +# enable: false +# escapedSpace: false +# definitionList: true +# extras: +# delete: +# enable: false +# insert: +# enable: false +# mark: +# enable: false +# subscript: +# enable: false +# superscript: +# enable: false +# footnote: true +# linkify: true +# linkifyProtocol: https +# passthrough: +# delimiters: +# block: [] +# inline: [] +# enable: false +# strikethrough: true +# table: true +# taskList: true +# typographer: +# apostrophe: '’' +# disable: false +# ellipsis: '…' +# emDash: '—' +# enDash: '–' +# leftAngleQuote: '«' +# leftDoubleQuote: '“' +# leftSingleQuote: '‘' +# rightAngleQuote: '»' +# rightDoubleQuote: '”' +# rightSingleQuote: '’' +# parser: +# attribute: +# block: false +# title: true +# autoHeadingID: true +# autoHeadingIDType: github +# wrapStandAloneImageWithinParagraph: true +# renderHooks: +# image: +# enableDefault: false +# link: +# enableDefault: false +# renderer: +# hardWraps: false +# unsafe: true +# xhtml: false # Site parameters params: diff --git a/content/posts/automated-poker-table/index.md b/content/posts/automated-poker-table/index.md index c3cf5f2..932a773 100644 --- a/content/posts/automated-poker-table/index.md +++ b/content/posts/automated-poker-table/index.md @@ -26,10 +26,17 @@ Collaborated with: An automated system that creates a seamless home-game experience by automating the tedious and repetitive tasks that occur during a game of cards while lowering the barrier of entry of knowledge for complex games, focusing on Texas Hold 'Em Poker as a proof of concept. -
- +
+
+ **Update (April 11, 2023): We won first place at the [Northeastern ECE Capstone Expo](https://coe.northeastern.edu/news/teams-share-top-honors-in-electrical-and-computer-engineering-capstone-presentations/)!** ## System Overview diff --git a/content/posts/mobile-manipulation/index.md b/content/posts/mobile-manipulation/index.md index 1c3060f..c7693b1 100644 --- a/content/posts/mobile-manipulation/index.md +++ b/content/posts/mobile-manipulation/index.md @@ -24,7 +24,13 @@ This project incorporates several robotics concepts to perform a pick and place ## Omnidirectional Mobile Base Kinematics (Mecanum Wheels) This robot uses mecanum wheels, which are omnidirectional wheels with 45-degree rollers that allow the robot to move in any direction without changing its orientation. When controlling the robot, we command the wheel velocities, which can be described by the following equation: -$$ u_i=\frac{1}{r_i}\overbrace{\begin{bmatrix}1 & \tan\gamma_i\end{bmatrix}}^{\text{driving direction}}\underbrace{\begin{bmatrix}\cos\beta_i & \sin\beta_i \\\ -\sin\beta_i & \cos\beta_i\end{bmatrix}}_{\text{linear velocity in wheel frame}} \overbrace{\begin{bmatrix}-y_i & 1 & 0 \\\ x_i & 0 & 1\end{bmatrix}}^{\text{linear velocity in body frame}} V_b $$ +
+ \[ + u_i=\frac{1}{r_i}\overbrace{\begin{bmatrix}1 & \tan\gamma_i\end{bmatrix}}^{\text{driving direction}} + \underbrace{\begin{bmatrix}\cos\beta_i & \sin\beta_i \\ -\sin\beta_i & \cos\beta_i\end{bmatrix}}_{\text{linear velocity in wheel frame}} + \overbrace{\begin{bmatrix}-y_i & 1 & 0 \\ x_i & 0 & 1\end{bmatrix}}^{\text{linear velocity in body frame}} V_b + \] +
where: - \\(u_i\\) is the wheel velocity @@ -122,10 +128,12 @@ trajectory = np.concatenate( ## Odometry Odometry is the process of estimating the mobile robot's pose by integrating the wheel velocities. The robot's pose is represented by the chassis configuration \\([\phi, x, y]\\), where \\(\phi\\) is the orientation and \\(x, y\\) are the position in the world frame. We can compute the body twist \\(V_b\\) using the wheel velocities \\(\dot{\theta}\\), the timestep \\(\Delta t\\), and the chassis configuration \\( F=pinv(H(0))\\): -$$ +
+\[ \dot{\theta} = \Delta\theta / \Delta t \\\ V_b = \underbrace{H(0)^{\dagger}}_{F} \cdot \dot{\theta} -$$ +\] +
The body twist \\(V_b\\) can be integrated to get the displacement \\(T_{bk} = exp([V_b])\\), which is then applied to the chassis configuration to get the new pose. @@ -166,9 +174,11 @@ def odometry(chassis_config: np.array, delta_wheel_config: np.array) -> np.array ## Task-Space Feedforward & Feedback Control To perform the pick and place task, we need to implement a control law that can track a desired end-effector trajectory. The control law is given by: -$$ +
+\[ V_e(t) = \overbrace{[Ad_{X^{-1}X_d}]V_d(t)}^{\text{Feedforward}} + K_pX_{err}(t) + K_i \int X_{err}(t) -$$ +\] +
where: - \\(V_e(t)\\) is the error twist required to track the desired trajectory diff --git a/content/posts/robot-arm-edu/index.md b/content/posts/robot-arm-edu/index.md index 55147ab..f46ce17 100644 --- a/content/posts/robot-arm-edu/index.md +++ b/content/posts/robot-arm-edu/index.md @@ -1,6 +1,6 @@ --- title: "Educational Robot Arm" -date: 2024-01-05T09:00:00+00:00 +date: 2024-04-12T09:00:00+00:00 description: Educational Kit for Introductory Robotics hero: images/kavar_background.jpg author: diff --git a/content/posts/toastbot/index.md b/content/posts/toastbot/index.md index 0da765c..35d8653 100644 --- a/content/posts/toastbot/index.md +++ b/content/posts/toastbot/index.md @@ -16,10 +16,17 @@ tags: ["Python", "ROS", "RViz", "Moveit API", "Intel Realsense"] Using a 7-DoF Franka Emika Panda Robot Arm, we developed a pick and place sequence using an Intel Realsense camera for identifying april tags. -
- +
+
+ ## Robot Arm Control The Franka Emika Panda Robot Arm has a ROS package `franka_ros` which allows us to control the robot arm using the Moveit API. The Moveit API offers services and action servers to faciliate trajectory planning, end-effector operation, and motion profiling.