# MarLand PhD research proposal
<!-- Put the link to this slide here so people can follow -->
slide: https://hackmd.io/p/rkoGaLbiq
---
## Project objective
- UAV to autonomously take-off and land on moving vessel
- dynamical disturbance: sea-state up to 3
- moving vessel
- due to waves (heave, roll, pitch)
- heading speed up to 15 knots
- without collision with objects on the deck
- Criteria:
- Landing position accuracy
- Touch down force
---
## Hardwares:
- On UAV (DJI M300 and Quadrotor platform):
- Autopilot + Onboard computer
- Gimbal camera, Bottom facing camera
- GPS
- 2D and attitude Lidar
- Force sensor
- Wind sensor
- On vessel
- LoLas positioning
- IMU, camera, wind sensor
- Computer with communication to UAV
---
## Phases of Landing:
- Phase 1: Follow
- according to the approach direction
- using GPS or Lolas (Internest) or vision detection of the vessel with heading
- starting distance: 100m - final distance: >10m - attitude >5m
- final position: Apriltag should be inside the gimbal camera
- Phase 2: Decent
- keep tracking Apriltag (visual servoing!?)
- aware of obstacles and occlusions
- final position: close to landing pad (50cm)
- Phase 3: Touchdown
- Aim to have close to zero force and position error
- Inside the determined landind period
---
## Research questions:
- How can we adopt learning-based method in highly dynamic, safety demanding robotic task?
- Does it bring any advantage compared to other non-learning-based methods?
---
## Perception
- Predict ship motion using IMU, camera and wind sensor
- Determine the landing period for UAV
- Wind velocity estimation and prediction in flight
- Determine the control mode
---
## Control
- Visual servoing: non-learning method (MPC or SMC) vs. Learning Policy for MPC
- Examples:
- https://github.com/uzh-rpg/high_mpc
- https://aswani.ieor.berkeley.edu/papers/icra_lbmpc_2012.pdf
- Reinforcement learning for touchdown phase
- https://github.com/utiasDSL/safe-control-gym
- http://www.robertbabuska.com/pdf/Kooi2021InclinedQuadrotorLanding.pdf
- https://github.com/Jacobkooi/InclinedDroneLander
---
## Planning
- Motion planning for chasing/approaching target while deal with obstacles and occlusion
- https://github.com/ZJU-FAST-Lab/visPlanner
- https://github.com/icsl-Jeon/dual_chaser
```graphviz
digraph {
compound=true
rankdir=RL
graph [ fontname="Source Sans Pro", fontsize=20 ];
node [ fontname="Source Sans Pro", fontsize=18];
edge [ fontname="Source Sans Pro", fontsize=12 ];
subgraph core {
c [label="Hackmd-it \ncore"] [shape=box]
}
c -> sync [ltail=session lhead=session]
subgraph cluster1 {
concentrate=true
a [label="Text source\nGithub, Gitlab, ..."] [shape=box]
b [label="HackMD Editor"] [shape=box]
sync [label="sync" shape=plaintext ]
b -> sync [dir="both"]
sync -> a [dir="both"]
label="An edit session"
}
}
```
---
### Architecture of extension
---
![](https://i.imgur.com/ij69tPh.png)
---
## Content script
- Bind with each page
- Manipulate DOM
- Add event listeners
- Isolated JavaScript environment
- It doesn't break things
---
# :fork_and_knife:
---
<style>
code.blue {
color: #337AB7 !important;
}
code.orange {
color: #F7A004 !important;
}
</style>
- <code class="orange">onMessage('event')</code>: Register event listener
- <code class="blue">sendMessage('event')</code>: Trigger event
---
# :bulb:
---
- Dead simple API
- Only cares about application logic
---
```typescript
import * as Channeru from 'channeru'
// setup channel in different page environment, once
const channel = Channeru.create()
```
---
```typescript
// in background script
const fakeLogin = async () => true
channel.answer('isLogin', async () => {
return await fakeLogin()
})
```
<br>
```typescript
// in inject script
const isLogin = await channel.callBackground('isLogin')
console.log(isLogin) //-> true
```
---
# :100: :muscle: :tada:
---
### Wrap up
- Cross envornment commnication
- A small library to solve messaging pain
- TypeScript Rocks :tada:
---
### Thank you! :sheep:
You can find me on
- GitHub
- Twitter
- or email me
{"metaMigratedAt":"2023-06-17T04:14:08.864Z","metaMigratedFrom":"YAML","title":"Research questions proposal","breaks":"true","description":"View the slide with \"Slide Mode\".","contributors":"[{\"id\":\"815b2e47-993e-4c0f-b4d1-8f2cc7390701\",\"add\":3125,\"del\":1081}]"}