dragon-iss-docking-autopilot

所属分类:自动驾驶
开发工具:GO
文件大小:10KB
下载次数:0
上传日期:2020-05-29 07:56:09
上 传 者sh-1993
说明:  Go中的自动驾驶仪,用于在模拟器中对接SpaceX Dragon舱
(Autopilot in Go for docking the SpaceX Dragon capsule in the simulator)

文件列表:
LICENSE (1074, 2020-05-29)
autopilot.go (4985, 2020-05-29)
cmd (0, 2020-05-29)
cmd\autopilot-server (0, 2020-05-29)
cmd\autopilot-server\main.go (700, 2020-05-29)
go.mod (68, 2020-05-29)
loader.js (746, 2020-05-29)
vendor (0, 2020-05-29)
vendor\go_wasm_exec.js (17333, 2020-05-29)

# Dragon ISS Docking Autopilot in Go Autopilot written in Go and executed as WebAssembly for docking the SpaceX Dragon capsule in the [official simulator](https://iss-sim.spacex.com). ### [Screencast of the autopilot in action](https://youtu.be/jLTr6UwuSd4) Autopilot during docking ## Why I never used Go and WebAssembly together before. This seemed like a nice and small excercise and I also got to refresh controller algorithms. ## Using this autopilot - Compile the autopilot and serve the files. ```bash go run ./cmd/autopilot-server ``` - Open the SpaceX ISS docking simulator: https://iss-sim.spacex.com - Open the developer console of your browser (eg. right click > Inspect in Chrome) - Paste the following code into the console to load the autopilot: ```js const s = document.createElement("script"); s.setAttribute("src", "http://localhost:8000/loader.js?t="+ new Date().getTime()); document.body.appendChild(s); ``` If you want to make modifications to `autopilot.go`, restart the `autopilot-server`, refresh the simulator page and paste the above JavaScript code into the console again. ## Controller algorithm The main controller algorithm is the `correct()` method in `autopilot.go`. At first the current rate is calculated using the previous time and offset and dampened over some cycles `DampingCycles`. Then a correction factor `Correction` is used to calculate the target rate. This target rate is limited based on the offset and `RateFactor` but kept between `RateMin` and `RateMax`. The difference between target and current rate is then added to a clicks accumulator. Full clicks are then subtracted from the accumulator and returned from the function. Play around with the `ios` configuration to get different controller behavior. ## Contributing If you improved this autopilot or added a new feature, don't hesitate to open a PR. I'm looking forward to see what you will do with it. --- Built by [@mbertschler](https://twitter.com/mbertschler)

近期下载者

相关文件


收藏者