Repository navigation
v0.1.2
Highlights
connect()anddisconnect()no longer drive the servos at the same time. Adisconnect()from another thread now waits for an in-flightconnect(), including its wake glide and its rollback, before it parks. The typical trigger was asyncio code that cancelsawait 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. Onepark()/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 adisconnect()is itself interrupted. Seedoc/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()raisesRuntimeErrorif adisconnect()was running when it was called, or ran during it. Everything it opened is closed first.disconnect()(and soshutdown.park()) waits for aconnect()running on another thread, with no time limit. A driver you connect yourself before buildingPalmimois armed throughoutconnect().
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