farmbot开发入门教程-lua 坐标
说明:
- 介绍FarmBot OS 中的坐标 Lua 函数列表
坐标(x,y,z)
- 生成用于基于位置的功能(如move_absolute和)的坐标check_position。
coordinate(1.0, 20, 30)
-- Returns {x = 1.0, y = 20, z = 30}
check_position(坐标,公差)
- true如果设备在提供的坐标的容差范围内,则返回。
if check_position({x = 0, y = 0, z = 0}, 1.23) then
toast("FarmBot is at the home position", "success")
else
toast("FarmBot is not at the home position", "warn")
end
home = coordinate(0, 0, 0)
if check_position(home, 0.5) then
toast("FarmBot is at the home position", "success")
else
toast("FarmBot is not at the home position", "warn")
end
花园大小()
- 根据AXIS LENGTH设置,返回一个带有 、 和 属性的表x,y该表z表示FarmBot 工作体积的长度、宽度和高度(以毫米为单位)。
size = garden_size()
toast("Length: " .. size.x .. "mm")
toast("Width: " .. size.y .. "mm")
toast("Height: " .. size.z .. "mm")
get_seed_tray_cell(托盘,细胞)
- 根据单元格标签和种子托盘中心的坐标计算种子托盘单元格的坐标,例如。请参阅从种子托盘拾取特色序列以获取示例。B3
tray = variable("Seed Tray")
cell_label = variable("Seed Tray Cell")
cell = get_seed_tray_cell(tray, cell_label)
cell_depth = 5
-- Send message with cell info
local cell_coordinates = " (" .. cell.x .. ", " .. cell.y .. ", " .. cell.z - cell_depth .. ")"
toast("Picking up seed from cell " .. cell_label .. cell_coordinates)
-- Safe Z move to above the cell
move_absolute({
x = cell.x,
y = cell.y,
z = cell.z + 25,
safe_z = true
})
获取 xyz()
- 获取FarmBot 的当前x、y 和 z 坐标。
position = get_xyz()
toast("FarmBot's X coordinate is: " .. position.x)
网格(参数)
- 根据提供的参数生成坐标网格grid_points: 、、和,其中每个参数都是一个具有、和属性spacing的表。返回每个单元格调用一次的迭代器函数(参见下面的示例)。startoffsetxyz
范围 描述
grid_points 每个轴上的网格点数。x、y 和 z 轴上的网格点数必须至少为 1。
spacing 每个轴上网格点之间的距离(以毫米为单位)。
start(选修的) 网格中第一个点的坐标。默认为 (0,0,0)。
offset(选修的) 对每个网格点应用偏移。当 FarmBot 的末端执行器(例如:相机镜头)偏离工具头中心时很有用。每个轴的默认值为 0。
-- Generate a grid of 3x2x1 points, with a spacing of 100mm between each point
local grid_points = {x = 3, y = 2, z = 1}
local spacing = {x = 100, y = 100, z = 0}
local grid = grid({
grid_points = grid_points,
spacing = spacing
})
-- Move to each point in the grid
grid.each(function(cell)
toast("Moving to cell " .. cell.count .. ": (" .. cell.x .. ", " .. cell.y .. ", " .. cell.z .. ")")
move({
x = cell.x,
y = cell.y,
z = cell.z
})
end)
组(编号)
- 返回当前群组成员 ID的表,按照群组的SORT BY方法排序。
group_members = group(1234)
for i,member in ipairs(group_members) do
plant = api({
method = "get",
url = "/api/points/" .. member
})
move_absolute(plant.x, plant.y, 0)
end
safe_z()
- 返回安全高度设置的值。
-- Display the current Safe Height
toast("Safe Z Height: " .. safe_z())
-- Move FarmBot's Z-axis to the Safe Height
move{z=safe_z()}
- safe_z()它本身并不会启动任何动作,并且不要safe_z=true与向move或move_absolute命令添加参数相混淆。
土壤高度(x,y)
- 给定 X 和 Y 坐标,返回土壤 Z 轴高度的尽力估计值
x = 100
y = 300
soil_height = soil_height(x, y)
toast("Distance to soil at (" .. x .. ", " .. y .. "): " .. soil_height)
排序(点,方法)
- 使用所选的排序方法对给定的点表进行排序。
points = group(1234)
sorted_points = sort(points, "xy_alternating")
toast("Second point ID is: " .. sorted_points[2])
- 有以下排序方法可用。有关更多详细信息,请参阅点组排序。
xy_ascending
yx_ascending
xy_descending
yx_descending
xy_alternating
yx_alternating
nn(最近的邻居)
random
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号