Skip to content

v0.1.2

Choose a tag to compare

@github-actions github-actions released this 30 Sep 22:04
· 32 commits to main since this release
f0fa6f1

Highlights

  • connect() and disconnect() no longer drive the servos at the same time. A disconnect() from another thread now waits for an in-flight connect(), including its wake glide and its rollback, before it parks. The typical trigger was asyncio code that cancels await asyncio.to_thread(robot.connect) (the thread keeps running) and disconnects in its cleanup. (#62)
  • connect() turns servo torque on last. The display, speaker, camera and mic open first, so a step that can take long (a camera open, a first-run voice download) runs with the robot limp. (#62)
  • A shared stop path, palmimo_sdk.shutdown. One park() / park_async() that every program's stop ends in, plus three ways for a signal to reach it depending on the shape of your loop: loop_stop_on_signals, stop_flag_on_signals, interrupt_on_signals. The torque-off now also runs when a disconnect() is itself interrupted. See doc/explanation/shutdown.md. (#23)

Upgrade notes

  • connect() opens resources in a new order: display, speaker, camera, mic, then the driver. A missing servo bus is now reported after the peripherals have opened; they are closed again before the error is raised.
  • connect() raises RuntimeError if a disconnect() was running when it was called, or ran during it. Everything it opened is closed first.
  • disconnect() (and so shutdown.park()) waits for a connect() running on another thread, with no time limit. A driver you connect yourself before building Palmimo is armed throughout connect().

Known issues

  • None new in this release.

Tested on a robot with servos and a head camera: plain connect/disconnect, and a disconnect() from another thread during the wake glide, which parked only after the glide finished.

What's Changed

SDK & motions

  • fix(sdk): 0.1.2 — make connect() and disconnect() exclude each other by @DoskoiYuta in #62

Other changes

  • feat(sdk): add the shared stop path, and reach the torque-off through an interrupted disconnect by @ksk-taka in #23
  • feat: app manifests (palmimo.toml) and the release catalog by @DoskoiYuta in #36

Full Changelog: v0.1.1...v0.1.2