Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
171 commits
Select commit Hold shift + click to select a range
275e3a3
Update README and MQTTClient for installation instructions and code i…
Mile-Away Apr 18, 2025
bb1cac0
Merge remote-tracking branch 'origin/main' into dev
Xuwznln Apr 20, 2025
82881f5
feat: 支持local_config启动
Xuwznln Apr 20, 2025
e971424
add: registry description
Xuwznln Apr 20, 2025
5b4f580
add 3d visualization
Apr 23, 2025
279c5ed
完成在main中启动设备可视化
Apr 23, 2025
6155ec2
完成TF发布
Apr 23, 2025
1e01eae
修改模型方向,在yaml中添加变换属性
Apr 25, 2025
bed9720
添加物料tf变化时,发送topic到前端
Apr 25, 2025
ff8b75b
添加关节发布节点与物料可视化节点进入unilab
Apr 27, 2025
dbd1557
Merge branch 'refs/heads/main' into dev
Xuwznln Apr 29, 2025
bdf97be
使用json启动plr与3D模型仿真
Apr 29, 2025
09fc174
feat: node_info_update srv
Xuwznln Apr 29, 2025
e5749a8
close #12
Xuwznln Apr 29, 2025
ea6f25d
feat: show machine name
Xuwznln Apr 29, 2025
ba6a43c
feat: add hplc registry
Xuwznln Apr 29, 2025
6b649bf
feat: add hplc registry
Xuwznln Apr 29, 2025
0d2f1be
fix: hplc status typo
Xuwznln Apr 29, 2025
5038219
fix: devices/
Xuwznln Apr 29, 2025
8921bcd
完成启动OT并联动rviz
Apr 29, 2025
b7a16cd
add 3d visualization
Apr 23, 2025
2baa232
完成在main中启动设备可视化
Apr 23, 2025
0d24606
完成TF发布
Apr 23, 2025
2990e70
修改模型方向,在yaml中添加变换属性
Apr 25, 2025
111c3f4
添加物料tf变化时,发送topic到前端
Apr 25, 2025
d407423
添加关节发布节点与物料可视化节点进入unilab
Apr 27, 2025
49bb11b
使用json启动plr与3D模型仿真
Apr 29, 2025
dc197bf
完成启动OT并联动rviz
Apr 29, 2025
4dbb664
fix: device.class possible null
Xuwznln Apr 29, 2025
8ab108c
fix: HPLC additions with online service
Xuwznln Apr 30, 2025
2d034f7
fix: slave mode spin not working
Xuwznln Apr 30, 2025
7a51b2a
fix: slave mode spin not working
Xuwznln Apr 30, 2025
44c191f
Merge branch 'device_visualization' of https://github.com/q434343/Uni…
Apr 30, 2025
5212d2d
修复rviz位置问题,
Apr 30, 2025
9d2bfec
feat: 多ProtocolNode 允许子设备ID相同
Xuwznln May 1, 2025
752442c
feat: 支持env设置config
Xuwznln May 1, 2025
9eb271f
Merge remote-tracking branch 'origin/dev' into fork/q434343/device_vi…
Xuwznln May 1, 2025
2b42808
fix: running logic
Xuwznln May 1, 2025
fa5db06
fix: running logic
Xuwznln May 1, 2025
78239ab
fix: missing ot
Xuwznln May 1, 2025
5668310
在main中直接初始化republisher和物料的mesh节点
May 1, 2025
80380d1
将joint_republisher和resource_mesh_manager添加进 main_slave_run.py中
May 2, 2025
a52133b
Device visualization (#14)
q434343 May 6, 2025
1223e05
fix: missing hostname in devices_names
Xuwznln May 4, 2025
d6b8104
fix: missing paho-mqtt package
Xuwznln May 6, 2025
3c98c77
fix startup
Xuwznln May 6, 2025
65d0cbe
Merge remote-tracking branch 'origin/main' into dev
Xuwznln May 6, 2025
1a107cf
fix type hint
Xuwznln May 6, 2025
164417e
Merge remote-tracking branch 'origin/main' into dev
Xuwznln May 6, 2025
948f590
update actions
Xuwznln May 6, 2025
1949852
update actions
Xuwznln May 6, 2025
b47f67d
host node add_resource_from_outer
Xuwznln May 6, 2025
852d10d
pass device config to device class
Xuwznln May 6, 2025
32e370a
add: bind_parent_ids to resource create action
Xuwznln May 6, 2025
49a9f05
fix: host node should not be re_discovered
Xuwznln May 6, 2025
b6a3f17
feat: resource tracker support dict
Xuwznln May 6, 2025
e373220
feat: add more necessary params
Xuwznln May 6, 2025
de28c50
feat: fix boolean null in registry action data
Xuwznln May 6, 2025
ed2858a
feat: add outer resource
Xuwznln May 6, 2025
d199fda
编写mesh添加action
May 6, 2025
3dc62e3
feat: append resource
Xuwznln May 6, 2025
3d607db
add action
May 6, 2025
cd1e9a9
feat: vis 2d for plr
Xuwznln May 6, 2025
8617b12
Merge remote-tracking branch 'upstream/dev' into device_visualization
May 6, 2025
b43f232
Merge remote-tracking branch 'origin/dev' into device_visualization
Xuwznln May 6, 2025
aad2359
fix
May 6, 2025
6d5ada0
Merge remote-tracking branch 'q434343/device_visualization' into devi…
Xuwznln May 6, 2025
5df304b
fix: browser on rviz
Xuwznln May 6, 2025
3d60cb3
fix: cloud bridge error fallback to local
Xuwznln May 6, 2025
6cdd8c1
fix: salve auto run rviz
Xuwznln May 6, 2025
c12c2a8
初始化两个plate
May 6, 2025
f3637d4
Device visualization (#22)
q434343 May 6, 2025
83abf87
fix: multi channel
Xuwznln May 6, 2025
1b190ee
Merge remote-tracking branch 'upstream/dev' into device_visualization
May 6, 2025
fbff27a
fix: aspirate
Xuwznln May 6, 2025
45a73e2
fix: aspirate
Xuwznln May 6, 2025
2dde5b6
fix: aspirate
Xuwznln May 6, 2025
ad5168c
Merge branch 'dev' into device_visualization
May 6, 2025
34e03bb
fix: aspirate
Xuwznln May 6, 2025
da50e43
提交
May 6, 2025
6f97731
fix: jobadd
Xuwznln May 6, 2025
bec58e1
fix: jobadd
Xuwznln May 6, 2025
4223f9b
fix: msg converter
Xuwznln May 6, 2025
42f0994
tijiao
May 6, 2025
3d71c8b
Merge branch 'dev' into device_visualization
May 6, 2025
013c25f
Merge remote-tracking branch 'origin/dev' into fork/q434343/device_vi…
Xuwznln May 6, 2025
8e1dbb5
add resource creat easy action
Xuwznln May 13, 2025
f0576e5
identify debug msg
Xuwznln May 13, 2025
3600b6f
mq client id
Xuwznln May 13, 2025
83c765f
unify liquid_handler definition
TablewareBox May 14, 2025
4decd9a
Merge branch '24-high-level-liquidhandler' into dev
Xuwznln May 14, 2025
c2c2c2f
Merge branch 'main' into dev
Xuwznln May 29, 2025
a948f09
add biomek.py demo implementation
TablewareBox May 30, 2025
055d120
更新LiquidHandlerBiomek类,添加资源创建功能,优化协议创建方法,修复部分代码格式问题,更新YAML配置以支持新功能。
TablewareBox May 30, 2025
90a0f3d
merge
Xuwznln May 30, 2025
0452a68
Test
ElijahChang929 May 30, 2025
ea2e9c3
fix biomek success type
Xuwznln May 30, 2025
cb7c56a
Convert LH action to biomek.
ElijahChang929 May 30, 2025
208540b
Update biomek.py
ElijahChang929 May 30, 2025
d2dda6e
Merge branch '37-biomek-i5i7' of https://github.com/dptech-corp/Uni-L…
ElijahChang929 May 30, 2025
0f2555c
注册表上报handle和schema (param input)
Xuwznln May 30, 2025
478a859
修复biomek缺少的字段
Xuwznln May 30, 2025
6f6c70e
delete 's'
ElijahChang929 Jun 4, 2025
8a29bc5
Remove warnings
ElijahChang929 Jun 4, 2025
807dcdd
Update biomek.py
ElijahChang929 Jun 4, 2025
6d2489a
Merge branch '37-biomek-i5i7' of https://github.com/dptech-corp/Uni-L…
ElijahChang929 Jun 4, 2025
147b8f4
Biomek test
ElijahChang929 Jun 4, 2025
5b240cb
Update biomek.py
ElijahChang929 Jun 4, 2025
c5a495f
新增transfer_biomek的msg
Xuwznln Jun 4, 2025
e63c159
New transfer_biomek
ElijahChang929 Jun 4, 2025
e1a7c3a
Updated transfer_biomek
ElijahChang929 Jun 4, 2025
b957ad2
Merge branch '37-biomek-i5i7' of https://github.com/dptech-corp/Uni-L…
ElijahChang929 Jun 4, 2025
b999692
更新transfer_biomek的msg
Xuwznln Jun 5, 2025
39de3ac
更新transfer_biomek的msg
Xuwznln Jun 5, 2025
dd5a7ca
支持Biomek创建
Xuwznln Jun 5, 2025
a62112a
new action
qxw138 Jun 5, 2025
101c1bc
fix key name typo
Xuwznln Jun 5, 2025
46da42d
Merge branch '37-biomek-i5i7' of https://github.com/dptech-corp/Uni-L…
qxw138 Jun 5, 2025
1e00a66
New parameter for biomek to run.
ElijahChang929 Jun 6, 2025
3c2a4a6
Merge branch '37-biomek-i5i7' of https://github.com/dptech-corp/Uni-L…
ElijahChang929 Jun 6, 2025
106d71e
Refine
ElijahChang929 Jun 6, 2025
2573d34
Merge branch '37-biomek-i5i7' of https://github.com/dptech-corp/Uni-L…
qxw138 Jun 6, 2025
24ecb13
Update
ElijahChang929 Jun 6, 2025
5e86112
Merge branch '37-biomek-i5i7' of https://github.com/dptech-corp/Uni-L…
ElijahChang929 Jun 6, 2025
5bec899
new actions
qxw138 Jun 6, 2025
097114d
new actions
qxw138 Jun 6, 2025
1b9f3c6
1
qxw138 Jun 6, 2025
55be5e8
registry
Xuwznln Jun 6, 2025
48c43d3
fix biomek startup
Xuwznln Jun 6, 2025
c7b9c6a
fix handles not as default entry
Xuwznln Jun 6, 2025
6573c9e
biomek_test.py
qxw138 Jun 6, 2025
146d8c5
Merge branch '37-biomek-i5i7' of https://github.com/dptech-corp/Uni-L…
qxw138 Jun 6, 2025
e840516
Update biomek.py
qxw138 Jun 6, 2025
3f53f88
biomek_test.py
qxw138 Jun 7, 2025
8698821
fix liquid_handler.biomek handles
TablewareBox Jun 7, 2025
b6c9530
Merge branch '37-biomek-i5i7' of https://github.com/dptech-corp/Uni-L…
TablewareBox Jun 7, 2025
c0b7f2d
host node新增resource add时间统计
Xuwznln Jun 8, 2025
ab0c4b7
修正物料上传时间
Xuwznln Jun 8, 2025
6a14104
正确发送return_info结果
Xuwznln Jun 8, 2025
aaa8631
同步执行状态信息
Xuwznln Jun 8, 2025
5263277
取消raiseValueError提示
Xuwznln Jun 8, 2025
9b3377a
Update biomek_test.py
qxw138 Jun 8, 2025
f1fee5f
Merge branch '37-biomek-i5i7' of https://github.com/dptech-corp/Uni-L…
qxw138 Jun 8, 2025
6577fe1
0608 DONE
ElijahChang929 Jun 8, 2025
12c17ec
同步了Biomek.py 现在应可用
ElijahChang929 Jun 8, 2025
bab4b1d
biomek switch back to non-test
Xuwznln Jun 8, 2025
6ae77e0
temp disable initialize resource
Xuwznln Jun 8, 2025
729a0fc
37-biomek-i5i7 (#40)
Xuwznln Jun 9, 2025
133ffaa
Device visualization (#39)
q434343 Jun 9, 2025
d8a0c5e
Device visualization (#41)
Xuwznln Jun 9, 2025
4c7aa8a
fix move it
Xuwznln Jun 9, 2025
2e9a0a4
fix move it
Xuwznln Jun 9, 2025
ea5e7a5
Merge branch '37-biomek-i5i7' into dev
Xuwznln Jun 9, 2025
9c515a2
create_resource
Xuwznln Jun 9, 2025
d297abf
bump ver
Xuwznln Jun 9, 2025
9016998
增加modbus支持
Xuwznln Jun 10, 2025
369a21b
调整protocol node以更好支持多种类型的read和write
Xuwznln Jun 10, 2025
34151f5
补充日志
Xuwznln Jun 10, 2025
d7d0a27
Device visualization (#42)
Xuwznln Jun 12, 2025
96f37b3
Add Mock Device for Organic Synthesis\添加有机合成的虚拟仪器和Protocol (#43)
KCFeng425 Jun 12, 2025
11e4f05
bump version & protocol fix
Xuwznln Jun 12, 2025
ae3c65c
Merge remote-tracking branch 'origin/main' into dev
Xuwznln Jun 12, 2025
66af337
hotfix: Add macos_sdk_config (#46)
Mile-Away Jun 12, 2025
75ea45f
include device_mesh when pip install
Xuwznln Jun 12, 2025
30d143e
Merge branch 'dev' of https://github.com/dptech-corp/Uni-Lab-OS into dev
Xuwznln Jun 13, 2025
4471fed
测试自动构建
Xuwznln Jun 13, 2025
d5d516f
try build fix
Xuwznln Jun 13, 2025
49f1aa9
try build
Xuwznln Jun 13, 2025
5478ba3
test artifacts
Xuwznln Jun 13, 2025
7c71472
Merge branch 'dev' of github.com:dptech-corp/Uni-Lab-OS into dev
KCFeng425 Jun 14, 2025
3b32dcf
Update virtual_device.yaml
KCFeng425 Jun 14, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
132 changes: 132 additions & 0 deletions .github/workflows/multi-platform-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
name: Multi-Platform Conda Build

on:
push:
branches: [ main, dev ]
tags: [ 'v*' ]
pull_request:
branches: [ main, dev ]
workflow_dispatch:
inputs:
platforms:
description: '选择构建平台 (逗号分隔): linux-64, osx-64, osx-arm64, win-64'
required: false
default: 'osx-arm64'

jobs:
build:
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
platform: linux-64
env_file: unilabos-linux-64.yaml
- os: macos-13 # Intel
platform: osx-64
env_file: unilabos-osx-64.yaml
- os: macos-latest # ARM64
platform: osx-arm64
env_file: unilabos-osx-arm64.yaml
- os: windows-latest
platform: win-64
env_file: unilabos-win64.yaml

runs-on: ${{ matrix.os }}

defaults:
run:
shell: bash -l {0}

steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Check if platform should be built
id: should_build
run: |
if [[ "${{ github.event_name }}" != "workflow_dispatch" ]]; then
echo "should_build=true" >> $GITHUB_OUTPUT
elif [[ -z "${{ github.event.inputs.platforms }}" ]]; then
echo "should_build=true" >> $GITHUB_OUTPUT
elif [[ "${{ github.event.inputs.platforms }}" == *"${{ matrix.platform }}"* ]]; then
echo "should_build=true" >> $GITHUB_OUTPUT
else
echo "should_build=false" >> $GITHUB_OUTPUT
fi

- name: Setup Miniconda
if: steps.should_build.outputs.should_build == 'true'
uses: conda-incubator/setup-miniconda@v3
with:
miniconda-version: "latest"
channels: conda-forge,robostack-staging,defaults
channel-priority: strict
activate-environment: build-env
auto-activate-base: false
auto-update-conda: false
show-channel-urls: true

- name: Install boa and build tools
if: steps.should_build.outputs.should_build == 'true'
run: |
conda install -c conda-forge boa conda-build

- name: Show environment info
if: steps.should_build.outputs.should_build == 'true'
run: |
conda info
conda list | grep -E "(boa|conda-build)"
echo "Platform: ${{ matrix.platform }}"
echo "OS: ${{ matrix.os }}"

- name: Build conda package
if: steps.should_build.outputs.should_build == 'true'
run: |
if [[ "${{ matrix.platform }}" == "osx-arm64" ]]; then
boa build -m ./recipes/conda_build_config.yaml -m ./recipes/macos_sdk_config.yaml ./recipes/ros-humble-unilabos-msgs
else
boa build -m ./recipes/conda_build_config.yaml ./recipes/ros-humble-unilabos-msgs
fi

- name: List built packages
if: steps.should_build.outputs.should_build == 'true'
run: |
echo "Built packages in conda-bld:"
find $CONDA_PREFIX/conda-bld -name "*.tar.bz2" | head -10
ls -la $CONDA_PREFIX/conda-bld/${{ matrix.platform }}/ || echo "${{ matrix.platform }} directory not found"
ls -la $CONDA_PREFIX/conda-bld/noarch/ || echo "noarch directory not found"
echo "CONDA_PREFIX: $CONDA_PREFIX"
echo "Full path would be: $CONDA_PREFIX/conda-bld/**/*.tar.bz2"

- name: Prepare artifacts for upload
if: steps.should_build.outputs.should_build == 'true'
run: |
mkdir -p ${{ runner.temp }}/conda-packages
find $CONDA_PREFIX/conda-bld -name "*.tar.bz2" -exec cp {} ${{ runner.temp }}/conda-packages/ \;
echo "Copied files to temp directory:"
ls -la ${{ runner.temp }}/conda-packages/

- name: Upload conda package artifacts
if: steps.should_build.outputs.should_build == 'true'
uses: actions/upload-artifact@v4
with:
name: conda-package-${{ matrix.platform }}
path: ${{ runner.temp }}/conda-packages
if-no-files-found: warn
retention-days: 30

- name: Create release assets (on tags)
if: steps.should_build.outputs.should_build == 'true' && startsWith(github.ref, 'refs/tags/')
run: |
mkdir -p release-assets
find $CONDA_PREFIX/conda-bld -name "*.tar.bz2" -exec cp {} release-assets/ \;

- name: Upload to release
if: steps.should_build.outputs.should_build == 'true' && startsWith(github.ref, 'refs/tags/')
uses: softprops/action-gh-release@v1
with:
files: release-assets/*
draft: false
prerelease: false
2 changes: 2 additions & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
recursive-include unilabos/registry *.yaml
recursive-include unilabos/app/web *.html
recursive-include unilabos/app/web *.css
recursive-include unilabos/device_mesh/devices *
recursive-include unilabos/device_mesh/resources *
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ conda env update --file unilabos-[YOUR_OS].yml -n environment_name

# Currently, you need to install the `unilabos_msgs` package
# You can download the system-specific package from the Release page
conda install ros-humble-unilabos-msgs-0.9.4-xxxxx.tar.bz2
conda install ros-humble-unilabos-msgs-0.9.5-xxxxx.tar.bz2

# Install PyLabRobot and other prerequisites
git clone https://github.com/PyLabRobot/pylabrobot plr_repo
Expand Down
2 changes: 1 addition & 1 deletion README_zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ conda env update --file unilabos-[YOUR_OS].yml -n 环境名

# 现阶段,需要安装 `unilabos_msgs` 包
# 可以前往 Release 页面下载系统对应的包进行安装
conda install ros-humble-unilabos-msgs-0.9.4-xxxxx.tar.bz2
conda install ros-humble-unilabos-msgs-0.9.5-xxxxx.tar.bz2

# 安装PyLabRobot等前置
git clone https://github.com/PyLabRobot/pylabrobot plr_repo
Expand Down
7 changes: 7 additions & 0 deletions recipes/macos_sdk_config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
CONDA_BUILD_SYSROOT:
- /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
MACOSX_DEPLOYMENT_TARGET:
- "11.0"
CONDA_SUBDIR:
- osx-arm64
# boa build -m ./recipes/conda_build_config.yaml -m ./recipes/macos_sdk_config.yaml ./recipes/ros-humble-unilabos-msgs
2 changes: 1 addition & 1 deletion recipes/ros-humble-unilabos-msgs/recipe.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package:
name: ros-humble-unilabos-msgs
version: 0.9.4
version: 0.9.5
source:
path: ../../unilabos_msgs
folder: ros-humble-unilabos-msgs/src/work
Expand Down
2 changes: 1 addition & 1 deletion recipes/unilabos/recipe.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package:
name: unilabos
version: "0.9.4"
version: "0.9.5"

source:
path: ../..
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

setup(
name=package_name,
version='0.9.4',
version='0.9.5',
packages=find_packages(),
include_package_data=True,
install_requires=['setuptools'],
Expand Down
Loading
Loading