Skip to content

Commit

Permalink
test on misc
Browse files Browse the repository at this point in the history
  • Loading branch information
IvyWang845 committed Dec 19, 2023
1 parent 43e41e5 commit 54e2e26
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 46 deletions.
2 changes: 1 addition & 1 deletion _pages/projects.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
layout: page
title: misc
permalink: /projects/
description: A growing collection of various non-research projects, ordered in reverse chronological order and separated into class projects, undergraduate experiences, and simply fun side projects.
description: A growing collection of various non-research projects, ordered in reverse chronological order and separated into class projects, undergraduate experiences, and simply fun side projects for practicing my analysis techniques.
nav: true
nav_order: 3
display_categories: [class, fun, undergraduate]
Expand Down
73 changes: 28 additions & 45 deletions _projects/2018-04-01-me133b.md
Original file line number Diff line number Diff line change
@@ -1,69 +1,52 @@
---
title: "Tangent Bug Algorithm"
title: "Longitudinal Association Between Writing Motivation and Writing Quality Across Three Genres"
layout: page
category: class
img: /images/portfolio/pathplanning/preview.jpg
description: "Final project for Caltech Robotics course ME133b"
usemathjax: true
environments:
- url: /images/portfolio/pathplanning/env1.gif
image_path: /images/portfolio/pathplanning/env1.gif
alt: "Environment 1"
title: "Example environment 2"
- url: /images/portfolio/pathplanning/env2.gif
image_path: /images/portfolio/pathplanning/env2.gif
alt: "Environment 2"
title: "Example environment 2"
- url: /images/portfolio/pathplanning/env3.gif
image_path: /images/portfolio/pathplanning/env3.gif
alt: "Environment 3"
title: "Example environment 3"
- url: /images/portfolio/pathplanning/env4.gif
image_path: /images/portfolio/pathplanning/env4.gif
alt: "Environment 4"
title: "Example environment 4"
- url: /images/portfolio/pathplanning/env5.gif
image_path: /images/portfolio/pathplanning/env5.gif
alt: "Environment 5"
title: "Example environment 5"
- url: /images/portfolio/pathplanning/env6.gif
image_path: /images/portfolio/pathplanning/env6.gif
alt: "Environment 6"
title: "Example environment 6"
- url: /images/portfolio/pathplanning/env7.gif
image_path: /images/portfolio/pathplanning/env7.gif
alt: "Environment 7"
title: "Example environment 7"
---

This project was my final project for the Caltech robotics course 133b.
description: "Final project for MSU course CEP925"

Bug algorithms are very effective strategies for robotic path planning when the robot has a global goal but only local information about the environment is known. The benefits of bug algorithms is that the behaviors are simple and they are straightforward to implement. A disadvantage of bug algorithms is that it assumes perfect positioning and sensing. This problem could be diminished by using LIDAR data to keep track of the robots position instead of relying on wheel odometry and IMU sensors. As shown in Lab 3, odometry obtained from LIDAR data is much more accurate than wheel odometry or IMU integration.
---

In class, we learned about three bug algorithms: Bug I, Bug II, and Tangent Bug. For this project, I chose to implement the Tangent Bug algorithm in a MATLAB simulation environment.The Tangent Bug algorithm uses a finite range sensor to collect information about obstacles in the environment. In my simulation, the range sensor was assumed to be a LIDAR sensor. The Tangent Bug algorithm was selected because it provides the most "natural" and "intuitive" path to the goal. However, it is slightly more complicated than both Bug I and Bug II.
The advancement of nationwide models for literacy intervention and instruction over the
past two decades gears pedagogical focus towards the use of data-driven assessment and
evidence-based programs (Bianco, 2010; McMaster et al, 2017). In order to promptly organize
early identification and treatment support, many educational stakeholders give a high level of
attention to improving children's learning trajectories by implementing some progress
monitoring tools such as curriculum-based measurement (Valentine et al., 2021). This course of

action is particularly important for upper elementary-aged students writing because the genre-
based writing tasks involved in the Common Core State Standards for Written Language (CCSS-
WL) become progressively more complex and challenging from fourth grade onward, as new

quality traits of writing added into writing curriculum and assessment at each grade level
(Graham, Harris, & Santangelo, 2015). In addition, some research demonstrates an evident
heterogeneity amongst students within upper elementary school level based on their performance
on different writing measures such as writing component skills and writing motivation (see Troia
et al., in prep); hence, understanding the writing progress within- and between-person can be
beneficial for educators to capture the general picture and provide differentiated instructions
(McMaster et al., 2017)

### Project Summary
The main outcome of this project is a a graphical user interface (GUI) that demonstrates the Tangent Bug algorithm for seven different environments. Several supporting codes are used in this GUI.

The motivation for this project was to implement the Tangent Bug algorithm using LIDAR data. Even though this implementation is in a simulation environment. The algorithm does not use any information about the obstacles other than their intersection points with the simulated LIDAR beams. Thus, in theory this code could be used seamlessly with hardware to obtain the same results. However, the MATLAB simulation assumes that the robot is a point robot, so the desired [x,y] coordinates of the robot are directly commanded in simulation. In practice, an additional code would be needed to translate the desired coordinates into wheel velocities.
The motivation for this project was to implement the Tangent Bug algorithm using LIDAR data. Even though this implementation is in a simulation environment. The algorithm does not use any information about the obstacles other than their intersection points with the simulated LIDAR beams. Thus, in theory this code could be used seamlessly with hardware to obtain the same results. However, the MATLAB simulation assumes that the robot is a point robot, so the desired [x,y] coordinates of the robot are directly commanded in simulation. In practice, an additional code would be needed to translate the desired coordinates into wheel velocities.

### Project Details
The basic idea of the Tangent Bug algorithm is that it uses both motion-to-goal and boundary following behaviors to reach a desired goal. The motion-to-goal behavior is commanded as long as there is no blocking obstacle or if the blocking obstacle does not increase the heuristic distance. The heuristic distance is calculated using the following equation.
The basic idea of the Tangent Bug algorithm is that it uses both motion-to-goal and boundary following behaviors to reach a desired goal. The motion-to-goal behavior is commanded as long as there is no blocking obstacle or if the blocking obstacle does not increase the heuristic distance. The heuristic distance is calculated using the following equation.

$$ h = d(x,O_i) + d(O_i,q_{goal}) $$

where $$O_i$$ is an edge point of a continuous segment of an obstacle as obtained from LIDAR data. A visual representation of these endpoints can be seen below.
where $$O_i$$ is an edge point of a continuous segment of an obstacle as obtained from LIDAR data. A visual representation of these endpoints can be seen below.

<div class="d-flex justify-content-center">
{% include figure.html path="/images/portfolio/pathplanning/continuity.JPG" class="img-fluid rounded z-depth-1" caption="Intervals of Continuity" %}
</div>

Boundary following mode is commanded when the heuristic distance increases. The bug them remains in Boundary following mode until $$d_{reach} < d_{followed}$$. The value $$d_{followed}$$ is the shortest distance between the sensed boundary and the goal. The value $$d_{reach}$$ is the shortest distance between the blocking obstacle and the goal.If there is no blocking obstacle, $$d_{reach}$$ is the distance between the robot and the goal.

### Algorithmic breakdown
Motion to Goal (While the heuristic distance is decreasing or remaining the same)
1. Compute Lidar Data
2. Move toward the obstacle
### Algorithmic breakdown
Motion to Goal (While the heuristic distance is decreasing or remaining the same)
1. Compute Lidar Data
2. Move toward the obstacle
3. Terminate if the goal is reached

Boundary Following (While $$d_{reach} \geq d_{followed}$$)
Expand Down

0 comments on commit 54e2e26

Please sign in to comment.