< >
Home » Farmbot开发入门教程 » farmbot开发入门教程-lua 坐标

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

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: none