This commit is contained in:
ob-yalian
2026-01-13 02:41:46 +00:00
parent eccf538f6d
commit f43f7c8d77
217 changed files with 4349 additions and 1365 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
# Sphinx build info version 1
# This file records the configuration used when building these files. When it is not found, a full rebuild will be done.
config: ccc5048bec8f2a4772b5b21cb7330155
config: 08c29ca94146ef204006f71b6232cfef
tags: 645f666f9bcd5a90fca523b33c5a78b7
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -18,6 +18,17 @@ OrbbecSDK ROS2 封装为 Orbbec 相机与 ROS 2 环境提供无缝集成。它
</tr>
</thead>
<tbody>
<tr>
<td rowspan="2" style="text-align: center; font-weight: bold;">Gemini 340</td>
<td>Gemini 345</td>
<td>not supported</td>
<td>recommended for new designs</td>
</tr>
<tr>
<td>Gemini 345Lg</td>
<td>not supported</td>
<td>recommended for new designs</td>
</tr>
<tr>
<td style="text-align: center; font-weight: bold;">Gemini 435Le</td>
<td>Gemini 435Le</td>
@@ -84,7 +84,7 @@
* **`enable_depth_auto_exposure_priority`**
* 启用深度自动曝光优先级。
* **`mean_intensity_set_point`**
* 设置深度图像的目标平均强度。例如:`mean_intensity_set_point:=100`。
* 设置开启自动曝光时深度图像的目标平均强度。例如:`mean_intensity_set_point:=100`。
> **注意:** 这取代了已弃用的 `depth_brightness`,后者仍支持以保持向后兼容性。
* **`enable_depth_scale`**
* 设置D2C后是否启用深度缩放。`true`表示启用,默认为`true`。
@@ -101,7 +101,7 @@
* **`ir_ae_max_exposure`**
* 设置红外自动曝光的最大曝光值。
* **`ir_brightness`**
* 设置红外亮度。
* 设置开启自动曝光时ir图像的目标平均强度。
#### 激光 / LDP
* **`enable_laser`**
@@ -154,6 +154,20 @@
* 启用gmsl触发输出信号 / 设置gmsl触发fps。用于 [gmsl相机](../5_advanced_guide/multi_camera/gmsl_camera.md)。
* **`preset_resolution_config`**
* 摄像头设备的预设分辨率配置。格式: "width,height,ir_decimation_factor,depth_decimation_factor". Example: "1280,720,4,4". 仅在 Gemini435Le 设备上受支持。留空禁用。
* **`ae_mode`**
* `colorbased`:自动曝光基于彩色流。`depthbased`:自动曝光基于深度流。**默认值:** `depthbased`
> 仅支持Gemini 305。
>
* **`enalbe_sports_mode`**
* 是否开启运动模式。**默认值:** `false`
> 仅支持Gemini 305。
>
* **`depth_downscale`** / **`left_ir_downscale`** /**`right_ir_downscale`**
* 设置下采样倍数。可用`ros2 run orbbec_camera list_camera_profile_mode_node`查看可设置分辨率。**默认值:** `1`
> 仅支持Gemini 305。
>
* **`enable_ptp_config`**
* 启用PTP时间同步。仅适用于Gemini 335Le。需要 `enable_sync_host_time` 设置为 `false`。
#### 视差
* **`disparity_to_depth_mode`**
@@ -217,8 +231,6 @@
* 相机时间与主机系统同步的间隔(秒)。
> **注意**:仅当 **`enable_sync_host_time = true`** 且 **`time_domain = device`** 时需要设置此参数。
* **`enable_ptp_config`**
* 启用PTP时间同步。仅适用于Gemini 335Le。需要 `enable_sync_host_time` 设置为 `false`。
* **`enable_frame_sync`**
* 启用帧同步。
@@ -1,4 +1,4 @@
# 所有可用的相机控制服务
# 可用服务
> **注意:** 与特定数据流相关的服务(例如 `/camera/set_color_*`)仅在启动文件中启用该数据流时可用(例如 `enable_color:=true`)。
@@ -1,6 +1,6 @@
# 深度工作模式切换
Orbbec SDK ROS 2 支持深度工作模式切换。Gemini 2、Gemini 2 L 和 Femto 以及 Femto Bolt 相机支持深度工作模式切换。
Orbbec SDK ROS 2 支持深度工作模式切换。Gemini 2 和 Gemini 2 L 相机支持深度工作模式切换。
- 在启动相机之前,可以为相应的 xxx.launch.py 文件的支持配置深度工作模式(depth_work_mode)。
- Gemini 2、Gemini 2 L 和 Gemini 2 XL 相机支持深度工作模式切换。
@@ -7,6 +7,6 @@
| High Accuracy | - 高置信度深度<br>- 几乎无噪声深度值<br>- 填充率较低 | - 避障<br>- 物体扫描 |
| High Density | - 更高填充率<br>- 更多微小物体<br>- 可能存在噪声深度值 | - 物体识别<br>- 抓取和放置<br>- 前景和背景动画 |
| Medium Density | - 填充率和精度的平衡性能<br>- 与 Default 相比:填充率较低,边缘质量更好 | - 通用场景和 Default 的替代方案 |
| Custom | - 用户自定义预设<br>- 从上述预设派生,具有自定义修改,例如后处理管道的新配置、深度 AE 功能的修改平均强度设定点等 | - 通过使用自定义配置可获得比预定义预设更好的深度性能<br>- 适用于已建立的自定义配置 |
| Custom | - 用户自定义预设<br>- 从上述预设派生,具有自定义修改<br>- 例如后处理管道的新配置等 | - 通过使用自定义配置可获得比预定义预设更好的深度性能<br>- 适用于已建立的自定义配置 |
根据您的具体使用场景选择合适的预设名称,并将其设置为 `device_preset` 参数的值。
+476
View File
@@ -0,0 +1,476 @@
// @ts-check
/**@constructor*/
BaseStemmer = function() {
/** @protected */
this.current = '';
this.cursor = 0;
this.limit = 0;
this.limit_backward = 0;
this.bra = 0;
this.ket = 0;
/**
* @param {string} value
*/
this.setCurrent = function(value) {
this.current = value;
this.cursor = 0;
this.limit = this.current.length;
this.limit_backward = 0;
this.bra = this.cursor;
this.ket = this.limit;
};
/**
* @return {string}
*/
this.getCurrent = function() {
return this.current;
};
/**
* @param {BaseStemmer} other
*/
this.copy_from = function(other) {
/** @protected */
this.current = other.current;
this.cursor = other.cursor;
this.limit = other.limit;
this.limit_backward = other.limit_backward;
this.bra = other.bra;
this.ket = other.ket;
};
/**
* @param {number[]} s
* @param {number} min
* @param {number} max
* @return {boolean}
*/
this.in_grouping = function(s, min, max) {
/** @protected */
if (this.cursor >= this.limit) return false;
var ch = this.current.charCodeAt(this.cursor);
if (ch > max || ch < min) return false;
ch -= min;
if ((s[ch >>> 3] & (0x1 << (ch & 0x7))) == 0) return false;
this.cursor++;
return true;
};
/**
* @param {number[]} s
* @param {number} min
* @param {number} max
* @return {boolean}
*/
this.go_in_grouping = function(s, min, max) {
/** @protected */
while (this.cursor < this.limit) {
var ch = this.current.charCodeAt(this.cursor);
if (ch > max || ch < min)
return true;
ch -= min;
if ((s[ch >>> 3] & (0x1 << (ch & 0x7))) == 0)
return true;
this.cursor++;
}
return false;
};
/**
* @param {number[]} s
* @param {number} min
* @param {number} max
* @return {boolean}
*/
this.in_grouping_b = function(s, min, max) {
/** @protected */
if (this.cursor <= this.limit_backward) return false;
var ch = this.current.charCodeAt(this.cursor - 1);
if (ch > max || ch < min) return false;
ch -= min;
if ((s[ch >>> 3] & (0x1 << (ch & 0x7))) == 0) return false;
this.cursor--;
return true;
};
/**
* @param {number[]} s
* @param {number} min
* @param {number} max
* @return {boolean}
*/
this.go_in_grouping_b = function(s, min, max) {
/** @protected */
while (this.cursor > this.limit_backward) {
var ch = this.current.charCodeAt(this.cursor - 1);
if (ch > max || ch < min) return true;
ch -= min;
if ((s[ch >>> 3] & (0x1 << (ch & 0x7))) == 0) return true;
this.cursor--;
}
return false;
};
/**
* @param {number[]} s
* @param {number} min
* @param {number} max
* @return {boolean}
*/
this.out_grouping = function(s, min, max) {
/** @protected */
if (this.cursor >= this.limit) return false;
var ch = this.current.charCodeAt(this.cursor);
if (ch > max || ch < min) {
this.cursor++;
return true;
}
ch -= min;
if ((s[ch >>> 3] & (0X1 << (ch & 0x7))) == 0) {
this.cursor++;
return true;
}
return false;
};
/**
* @param {number[]} s
* @param {number} min
* @param {number} max
* @return {boolean}
*/
this.go_out_grouping = function(s, min, max) {
/** @protected */
while (this.cursor < this.limit) {
var ch = this.current.charCodeAt(this.cursor);
if (ch <= max && ch >= min) {
ch -= min;
if ((s[ch >>> 3] & (0X1 << (ch & 0x7))) != 0) {
return true;
}
}
this.cursor++;
}
return false;
};
/**
* @param {number[]} s
* @param {number} min
* @param {number} max
* @return {boolean}
*/
this.out_grouping_b = function(s, min, max) {
/** @protected */
if (this.cursor <= this.limit_backward) return false;
var ch = this.current.charCodeAt(this.cursor - 1);
if (ch > max || ch < min) {
this.cursor--;
return true;
}
ch -= min;
if ((s[ch >>> 3] & (0x1 << (ch & 0x7))) == 0) {
this.cursor--;
return true;
}
return false;
};
/**
* @param {number[]} s
* @param {number} min
* @param {number} max
* @return {boolean}
*/
this.go_out_grouping_b = function(s, min, max) {
/** @protected */
while (this.cursor > this.limit_backward) {
var ch = this.current.charCodeAt(this.cursor - 1);
if (ch <= max && ch >= min) {
ch -= min;
if ((s[ch >>> 3] & (0x1 << (ch & 0x7))) != 0) {
return true;
}
}
this.cursor--;
}
return false;
};
/**
* @param {string} s
* @return {boolean}
*/
this.eq_s = function(s)
{
/** @protected */
if (this.limit - this.cursor < s.length) return false;
if (this.current.slice(this.cursor, this.cursor + s.length) != s)
{
return false;
}
this.cursor += s.length;
return true;
};
/**
* @param {string} s
* @return {boolean}
*/
this.eq_s_b = function(s)
{
/** @protected */
if (this.cursor - this.limit_backward < s.length) return false;
if (this.current.slice(this.cursor - s.length, this.cursor) != s)
{
return false;
}
this.cursor -= s.length;
return true;
};
/**
* @param {Among[]} v
* @return {number}
*/
this.find_among = function(v)
{
/** @protected */
var i = 0;
var j = v.length;
var c = this.cursor;
var l = this.limit;
var common_i = 0;
var common_j = 0;
var first_key_inspected = false;
while (true)
{
var k = i + ((j - i) >>> 1);
var diff = 0;
var common = common_i < common_j ? common_i : common_j; // smaller
// w[0]: string, w[1]: substring_i, w[2]: result, w[3]: function (optional)
var w = v[k];
var i2;
for (i2 = common; i2 < w[0].length; i2++)
{
if (c + common == l)
{
diff = -1;
break;
}
diff = this.current.charCodeAt(c + common) - w[0].charCodeAt(i2);
if (diff != 0) break;
common++;
}
if (diff < 0)
{
j = k;
common_j = common;
}
else
{
i = k;
common_i = common;
}
if (j - i <= 1)
{
if (i > 0) break; // v->s has been inspected
if (j == i) break; // only one item in v
// - but now we need to go round once more to get
// v->s inspected. This looks messy, but is actually
// the optimal approach.
if (first_key_inspected) break;
first_key_inspected = true;
}
}
do {
var w = v[i];
if (common_i >= w[0].length)
{
this.cursor = c + w[0].length;
if (w.length < 4) return w[2];
var res = w[3](this);
this.cursor = c + w[0].length;
if (res) return w[2];
}
i = w[1];
} while (i >= 0);
return 0;
};
// find_among_b is for backwards processing. Same comments apply
/**
* @param {Among[]} v
* @return {number}
*/
this.find_among_b = function(v)
{
/** @protected */
var i = 0;
var j = v.length
var c = this.cursor;
var lb = this.limit_backward;
var common_i = 0;
var common_j = 0;
var first_key_inspected = false;
while (true)
{
var k = i + ((j - i) >> 1);
var diff = 0;
var common = common_i < common_j ? common_i : common_j;
var w = v[k];
var i2;
for (i2 = w[0].length - 1 - common; i2 >= 0; i2--)
{
if (c - common == lb)
{
diff = -1;
break;
}
diff = this.current.charCodeAt(c - 1 - common) - w[0].charCodeAt(i2);
if (diff != 0) break;
common++;
}
if (diff < 0)
{
j = k;
common_j = common;
}
else
{
i = k;
common_i = common;
}
if (j - i <= 1)
{
if (i > 0) break;
if (j == i) break;
if (first_key_inspected) break;
first_key_inspected = true;
}
}
do {
var w = v[i];
if (common_i >= w[0].length)
{
this.cursor = c - w[0].length;
if (w.length < 4) return w[2];
var res = w[3](this);
this.cursor = c - w[0].length;
if (res) return w[2];
}
i = w[1];
} while (i >= 0);
return 0;
};
/* to replace chars between c_bra and c_ket in this.current by the
* chars in s.
*/
/**
* @param {number} c_bra
* @param {number} c_ket
* @param {string} s
* @return {number}
*/
this.replace_s = function(c_bra, c_ket, s)
{
/** @protected */
var adjustment = s.length - (c_ket - c_bra);
this.current = this.current.slice(0, c_bra) + s + this.current.slice(c_ket);
this.limit += adjustment;
if (this.cursor >= c_ket) this.cursor += adjustment;
else if (this.cursor > c_bra) this.cursor = c_bra;
return adjustment;
};
/**
* @return {boolean}
*/
this.slice_check = function()
{
/** @protected */
if (this.bra < 0 ||
this.bra > this.ket ||
this.ket > this.limit ||
this.limit > this.current.length)
{
return false;
}
return true;
};
/**
* @param {number} c_bra
* @return {boolean}
*/
this.slice_from = function(s)
{
/** @protected */
var result = false;
if (this.slice_check())
{
this.replace_s(this.bra, this.ket, s);
result = true;
}
return result;
};
/**
* @return {boolean}
*/
this.slice_del = function()
{
/** @protected */
return this.slice_from("");
};
/**
* @param {number} c_bra
* @param {number} c_ket
* @param {string} s
*/
this.insert = function(c_bra, c_ket, s)
{
/** @protected */
var adjustment = this.replace_s(c_bra, c_ket, s);
if (c_bra <= this.bra) this.bra += adjustment;
if (c_bra <= this.ket) this.ket += adjustment;
};
/**
* @return {string}
*/
this.slice_to = function()
{
/** @protected */
var result = '';
if (this.slice_check())
{
result = this.current.slice(this.bra, this.ket);
}
return result;
};
/**
* @return {string}
*/
this.assign_to = function()
{
/** @protected */
return this.current.slice(0, this.limit);
};
};
File diff suppressed because one or more lines are too long
+6 -5
View File
@@ -59,7 +59,7 @@ const Documentation = {
Object.assign(Documentation.TRANSLATIONS, catalog.messages);
Documentation.PLURAL_EXPR = new Function(
"n",
`return (${catalog.plural_expr})`
`return (${catalog.plural_expr})`,
);
Documentation.LOCALE = catalog.locale;
},
@@ -89,7 +89,7 @@ const Documentation = {
const togglerElements = document.querySelectorAll("img.toggler");
togglerElements.forEach((el) =>
el.addEventListener("click", (event) => toggler(event.currentTarget))
el.addEventListener("click", (event) => toggler(event.currentTarget)),
);
togglerElements.forEach((el) => (el.style.display = ""));
if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler);
@@ -98,14 +98,15 @@ const Documentation = {
initOnKeyListeners: () => {
// only install a listener if it is really needed
if (
!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS &&
!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS
!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS
&& !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS
)
return;
document.addEventListener("keydown", (event) => {
// bail for input elements
if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return;
if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName))
return;
// bail with special keys
if (event.altKey || event.ctrlKey || event.metaKey) return;
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
+115 -57
View File
@@ -41,11 +41,12 @@ if (typeof Scorer === "undefined") {
}
// Global search result kind enum, used by themes to style search results.
// prettier-ignore
class SearchResultKind {
static get index() { return "index"; }
static get object() { return "object"; }
static get text() { return "text"; }
static get title() { return "title"; }
static get index() { return "index"; }
static get object() { return "object"; }
static get text() { return "text"; }
static get title() { return "title"; }
}
const _removeChildren = (element) => {
@@ -58,6 +59,15 @@ const _removeChildren = (element) => {
const _escapeRegExp = (string) =>
string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
const _escapeHTML = (text) => {
return text
.replaceAll("&", "&amp;")
.replaceAll("<", "&lt;")
.replaceAll(">", "&gt;")
.replaceAll('"', "&quot;")
.replaceAll("'", "&apos;");
};
const _displayItem = (item, searchTerms, highlightTerms) => {
const docBuilder = DOCUMENTATION_OPTIONS.BUILDER;
const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX;
@@ -90,25 +100,30 @@ const _displayItem = (item, searchTerms, highlightTerms) => {
let linkEl = listItem.appendChild(document.createElement("a"));
linkEl.href = linkUrl + anchor;
linkEl.dataset.score = score;
linkEl.innerHTML = title;
linkEl.innerHTML = _escapeHTML(title);
if (descr) {
listItem.appendChild(document.createElement("span")).innerHTML =
" (" + descr + ")";
` (${_escapeHTML(descr)})`;
// highlight search terms in the description
if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js
highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted"));
}
else if (showSearchSummary)
if (SPHINX_HIGHLIGHT_ENABLED)
// SPHINX_HIGHLIGHT_ENABLED is set in sphinx_highlight.js
highlightTerms.forEach((term) =>
_highlightText(listItem, term, "highlighted"),
);
} else if (showSearchSummary)
fetch(requestUrl)
.then((responseData) => responseData.text())
.then((data) => {
if (data)
listItem.appendChild(
Search.makeSearchSummary(data, searchTerms, anchor)
Search.makeSearchSummary(data, searchTerms, anchor),
);
// highlight search terms in the summary
if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js
highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted"));
if (SPHINX_HIGHLIGHT_ENABLED)
// SPHINX_HIGHLIGHT_ENABLED is set in sphinx_highlight.js
highlightTerms.forEach((term) =>
_highlightText(listItem, term, "highlighted"),
);
});
Search.output.appendChild(listItem);
};
@@ -117,14 +132,14 @@ const _finishSearch = (resultCount) => {
Search.title.innerText = _("Search Results");
if (!resultCount)
Search.status.innerText = Documentation.gettext(
"Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories."
"Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.",
);
else
Search.status.innerText = Documentation.ngettext(
"Search finished, found one page matching the search query.",
"Search finished, found ${resultCount} pages matching the search query.",
resultCount,
).replace('${resultCount}', resultCount);
).replace("${resultCount}", resultCount);
};
const _displayNextItem = (
results,
@@ -138,7 +153,7 @@ const _displayNextItem = (
_displayItem(results.pop(), searchTerms, highlightTerms);
setTimeout(
() => _displayNextItem(results, resultCount, searchTerms, highlightTerms),
5
5,
);
}
// search finished, update title and status message
@@ -170,9 +185,10 @@ const _orderResultsByScoreThenName = (a, b) => {
* This is the same as ``\W+`` in Python, preserving the surrogate pair area.
*/
if (typeof splitQuery === "undefined") {
var splitQuery = (query) => query
var splitQuery = (query) =>
query
.split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu)
.filter(term => term) // remove remaining empty strings
.filter((term) => term); // remove remaining empty strings
}
/**
@@ -184,16 +200,23 @@ const Search = {
_pulse_status: -1,
htmlToText: (htmlString, anchor) => {
const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html');
const htmlElement = new DOMParser().parseFromString(
htmlString,
"text/html",
);
for (const removalQuery of [".headerlink", "script", "style"]) {
htmlElement.querySelectorAll(removalQuery).forEach((el) => { el.remove() });
htmlElement.querySelectorAll(removalQuery).forEach((el) => {
el.remove();
});
}
if (anchor) {
const anchorContent = htmlElement.querySelector(`[role="main"] ${anchor}`);
const anchorContent = htmlElement.querySelector(
`[role="main"] ${anchor}`,
);
if (anchorContent) return anchorContent.textContent;
console.warn(
`Anchored content block not found. Sphinx search tries to obtain it via DOM query '[role=main] ${anchor}'. Check your theme or template.`
`Anchored content block not found. Sphinx search tries to obtain it via DOM query '[role=main] ${anchor}'. Check your theme or template.`,
);
}
@@ -202,7 +225,7 @@ const Search = {
if (docContent) return docContent.textContent;
console.warn(
"Content block not found. Sphinx search tries to obtain it via DOM query '[role=main]'. Check your theme or template."
"Content block not found. Sphinx search tries to obtain it via DOM query '[role=main]'. Check your theme or template.",
);
return "";
},
@@ -287,12 +310,8 @@ const Search = {
const queryTermLower = queryTerm.toLowerCase();
// maybe skip this "word"
// stopwords array is from language_data.js
if (
stopwords.indexOf(queryTermLower) !== -1 ||
queryTerm.match(/^\d+$/)
)
return;
// stopwords set is from language_data.js
if (stopwords.has(queryTermLower) || queryTerm.match(/^\d+$/)) return;
// stem the word
let word = stemmer.stemWord(queryTermLower);
@@ -304,8 +323,12 @@ const Search = {
}
});
if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js
localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" "))
if (SPHINX_HIGHLIGHT_ENABLED) {
// SPHINX_HIGHLIGHT_ENABLED is set in sphinx_highlight.js
localStorage.setItem(
"sphinx_highlight_terms",
[...highlightTerms].join(" "),
);
}
// console.debug("SEARCH: searching for:");
@@ -318,7 +341,13 @@ const Search = {
/**
* execute search (requires search index to be loaded)
*/
_performSearch: (query, searchTerms, excludedTerms, highlightTerms, objectTerms) => {
_performSearch: (
query,
searchTerms,
excludedTerms,
highlightTerms,
objectTerms,
) => {
const filenames = Search._index.filenames;
const docNames = Search._index.docnames;
const titles = Search._index.titles;
@@ -334,10 +363,15 @@ const Search = {
const queryLower = query.toLowerCase().trim();
for (const [title, foundTitles] of Object.entries(allTitles)) {
if (title.toLowerCase().trim().includes(queryLower) && (queryLower.length >= title.length/2)) {
if (
title.toLowerCase().trim().includes(queryLower)
&& queryLower.length >= title.length / 2
) {
for (const [file, id] of foundTitles) {
const score = Math.round(Scorer.title * queryLower.length / title.length);
const boost = titles[file] === title ? 1 : 0; // add a boost for document titles
const score = Math.round(
(Scorer.title * queryLower.length) / title.length,
);
const boost = titles[file] === title ? 1 : 0; // add a boost for document titles
normalResults.push([
docNames[file],
titles[file] !== title ? `${titles[file]} > ${title}` : title,
@@ -353,9 +387,9 @@ const Search = {
// search for explicit entries in index directives
for (const [entry, foundEntries] of Object.entries(indexEntries)) {
if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) {
if (entry.includes(queryLower) && queryLower.length >= entry.length / 2) {
for (const [file, id, isMain] of foundEntries) {
const score = Math.round(100 * queryLower.length / entry.length);
const score = Math.round((100 * queryLower.length) / entry.length);
const result = [
docNames[file],
titles[file],
@@ -376,11 +410,13 @@ const Search = {
// lookup as object
objectTerms.forEach((term) =>
normalResults.push(...Search.performObjectSearch(term, objectTerms))
normalResults.push(...Search.performObjectSearch(term, objectTerms)),
);
// lookup as search terms in fulltext
normalResults.push(...Search.performTermsSearch(searchTerms, excludedTerms));
normalResults.push(
...Search.performTermsSearch(searchTerms, excludedTerms),
);
// let the scorer override scores with a custom scoring function
if (Scorer.score) {
@@ -401,7 +437,11 @@ const Search = {
// note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept
let seen = new Set();
results = results.reverse().reduce((acc, result) => {
let resultStr = result.slice(0, 4).concat([result[5]]).map(v => String(v)).join(',');
let resultStr = result
.slice(0, 4)
.concat([result[5]])
.map((v) => String(v))
.join(",");
if (!seen.has(resultStr)) {
acc.push(result);
seen.add(resultStr);
@@ -413,8 +453,20 @@ const Search = {
},
query: (query) => {
const [searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms] = Search._parseQuery(query);
const results = Search._performSearch(searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms);
const [
searchQuery,
searchTerms,
excludedTerms,
highlightTerms,
objectTerms,
] = Search._parseQuery(query);
const results = Search._performSearch(
searchQuery,
searchTerms,
excludedTerms,
highlightTerms,
objectTerms,
);
// for debugging
//Search.lastresults = results.slice(); // a copy
@@ -437,7 +489,7 @@ const Search = {
const results = [];
const objectSearchCallback = (prefix, match) => {
const name = match[4]
const name = match[4];
const fullname = (prefix ? prefix + "." : "") + name;
const fullnameLower = fullname.toLowerCase();
if (fullnameLower.indexOf(object) < 0) return;
@@ -489,9 +541,7 @@ const Search = {
]);
};
Object.keys(objects).forEach((prefix) =>
objects[prefix].forEach((array) =>
objectSearchCallback(prefix, array)
)
objects[prefix].forEach((array) => objectSearchCallback(prefix, array)),
);
return results;
},
@@ -516,8 +566,14 @@ const Search = {
// find documents, if any, containing the query word in their text/title term indices
// use Object.hasOwnProperty to avoid mismatching against prototype properties
const arr = [
{ files: terms.hasOwnProperty(word) ? terms[word] : undefined, score: Scorer.term },
{ files: titleTerms.hasOwnProperty(word) ? titleTerms[word] : undefined, score: Scorer.title },
{
files: terms.hasOwnProperty(word) ? terms[word] : undefined,
score: Scorer.term,
},
{
files: titleTerms.hasOwnProperty(word) ? titleTerms[word] : undefined,
score: Scorer.title,
},
];
// add support for partial matches
if (word.length > 2) {
@@ -558,7 +614,8 @@ const Search = {
// create the mapping
files.forEach((file) => {
if (!fileMap.has(file)) fileMap.set(file, [word]);
else if (fileMap.get(file).indexOf(word) === -1) fileMap.get(file).push(word);
else if (fileMap.get(file).indexOf(word) === -1)
fileMap.get(file).push(word);
});
});
@@ -569,11 +626,11 @@ const Search = {
// as search terms with length < 3 are discarded
const filteredTermCount = [...searchTerms].filter(
(term) => term.length > 2
(term) => term.length > 2,
).length;
if (
wordList.length !== searchTerms.size &&
wordList.length !== filteredTermCount
wordList.length !== searchTerms.size
&& wordList.length !== filteredTermCount
)
continue;
@@ -581,10 +638,10 @@ const Search = {
if (
[...excludedTerms].some(
(term) =>
terms[term] === file ||
titleTerms[term] === file ||
(terms[term] || []).includes(file) ||
(titleTerms[term] || []).includes(file)
terms[term] === file
|| titleTerms[term] === file
|| (terms[term] || []).includes(file)
|| (titleTerms[term] || []).includes(file),
)
)
break;
@@ -626,7 +683,8 @@ const Search = {
let summary = document.createElement("p");
summary.classList.add("context");
summary.textContent = top + text.substr(startWithContext, 240).trim() + tail;
summary.textContent =
top + text.substr(startWithContext, 240).trim() + tail;
return summary;
},
+36 -31
View File
@@ -1,7 +1,7 @@
/* Highlighting utilities for Sphinx HTML documentation. */
"use strict";
const SPHINX_HIGHLIGHT_ENABLED = true
const SPHINX_HIGHLIGHT_ENABLED = true;
/**
* highlight a given string on a node by wrapping it in
@@ -13,9 +13,9 @@ const _highlight = (node, addItems, text, className) => {
const parent = node.parentNode;
const pos = val.toLowerCase().indexOf(text);
if (
pos >= 0 &&
!parent.classList.contains(className) &&
!parent.classList.contains("nohighlight")
pos >= 0
&& !parent.classList.contains(className)
&& !parent.classList.contains("nohighlight")
) {
let span;
@@ -30,13 +30,7 @@ const _highlight = (node, addItems, text, className) => {
span.appendChild(document.createTextNode(val.substr(pos, text.length)));
const rest = document.createTextNode(val.substr(pos + text.length));
parent.insertBefore(
span,
parent.insertBefore(
rest,
node.nextSibling
)
);
parent.insertBefore(span, parent.insertBefore(rest, node.nextSibling));
node.nodeValue = val.substr(0, pos);
/* There may be more occurrences of search term in this node. So call this
* function recursively on the remaining fragment.
@@ -46,7 +40,7 @@ const _highlight = (node, addItems, text, className) => {
if (isInSVG) {
const rect = document.createElementNS(
"http://www.w3.org/2000/svg",
"rect"
"rect",
);
const bbox = parent.getBBox();
rect.x.baseVal.value = bbox.x;
@@ -65,7 +59,7 @@ const _highlightText = (thisNode, text, className) => {
let addItems = [];
_highlight(thisNode, addItems, text, className);
addItems.forEach((obj) =>
obj.parent.insertAdjacentElement("beforebegin", obj.target)
obj.parent.insertAdjacentElement("beforebegin", obj.target),
);
};
@@ -73,25 +67,31 @@ const _highlightText = (thisNode, text, className) => {
* Small JavaScript module for the documentation.
*/
const SphinxHighlight = {
/**
* highlight the search words provided in localstorage in the text
*/
highlightSearchWords: () => {
if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight
if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight
// get and clear terms from localstorage
const url = new URL(window.location);
const highlight =
localStorage.getItem("sphinx_highlight_terms")
|| url.searchParams.get("highlight")
|| "";
localStorage.removeItem("sphinx_highlight_terms")
url.searchParams.delete("highlight");
window.history.replaceState({}, "", url);
localStorage.getItem("sphinx_highlight_terms")
|| url.searchParams.get("highlight")
|| "";
localStorage.removeItem("sphinx_highlight_terms");
// Update history only if '?highlight' is present; otherwise it
// clears text fragments (not set in window.location by the browser)
if (url.searchParams.has("highlight")) {
url.searchParams.delete("highlight");
window.history.replaceState({}, "", url);
}
// get individual terms from highlight string
const terms = highlight.toLowerCase().split(/\s+/).filter(x => x);
const terms = highlight
.toLowerCase()
.split(/\s+/)
.filter((x) => x);
if (terms.length === 0) return; // nothing to do
// There should never be more than one element matching "div.body"
@@ -107,11 +107,11 @@ const SphinxHighlight = {
document
.createRange()
.createContextualFragment(
'<p class="highlight-link">' +
'<a href="javascript:SphinxHighlight.hideSearchWords()">' +
_("Hide Search Matches") +
"</a></p>"
)
'<p class="highlight-link">'
+ '<a href="javascript:SphinxHighlight.hideSearchWords()">'
+ _("Hide Search Matches")
+ "</a></p>",
),
);
},
@@ -125,7 +125,7 @@ const SphinxHighlight = {
document
.querySelectorAll("span.highlighted")
.forEach((el) => el.classList.remove("highlighted"));
localStorage.removeItem("sphinx_highlight_terms")
localStorage.removeItem("sphinx_highlight_terms");
},
initEscapeListener: () => {
@@ -134,10 +134,15 @@ const SphinxHighlight = {
document.addEventListener("keydown", (event) => {
// bail for input elements
if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return;
if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName))
return;
// bail with special keys
if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return;
if (DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS && (event.key === "Escape")) {
if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey)
return;
if (
DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS
&& event.key === "Escape"
) {
SphinxHighlight.hideSearchWords();
event.preventDefault();
}
+4 -2
View File
@@ -20,7 +20,7 @@ Documentation.addTranslations({
"Go": "\u63d0\u4ea4",
"Hide Search Matches": "\u9690\u85cf\u641c\u7d22\u7ed3\u679c",
"Index": "\u7d22\u5f15",
"Index &ndash; %(key)s": "\u7d22\u5f15 &ndash; %(key)s",
"Index &#x2013; %(key)s": "\u7d22\u5f15 &#x2013; %(key)s",
"Index pages by letter": "\u5b57\u6bcd\u7d22\u5f15",
"Indices and tables:": "\u7d22\u5f15\u548c\u8868\u683c\uff1a",
"Last updated on %(last_updated)s.": "\u6700\u540e\u66f4\u65b0\u4e8e %(last_updated)s.",
@@ -36,7 +36,9 @@ Documentation.addTranslations({
"Search": "\u641c\u7d22",
"Search Page": "\u641c\u7d22\u9875\u9762",
"Search Results": "\u641c\u7d22\u7ed3\u679c",
"Search finished, found ${resultCount} page(s) matching the search query.": "\u641c\u7d22\u5b8c\u6210\uff0c\u5339\u914d\u5230 ${resultCount} \u9875\u3002",
"Search finished, found one page matching the search query.": [
"\u641c\u7d22\u5b8c\u6210\uff0c\u5339\u914d\u641c\u7d22\u6761\u4ef6\u7684\u6709 ${resultCount} \u4e2a\u9875\u9762\u3002"
],
"Search within %(docstitle)s": "\u5728 %(docstitle)s \u4e2d\u641c\u7d22",
"Searching": "\u6b63\u5728\u641c\u7d22\u4e2d",
"Searching for multiple words only shows matches that contain\n all words.": "\u5f53\u641c\u7d22\u591a\u4e2a\u5173\u952e\u8bcd\u65f6\uff0c\u53ea\u4f1a\u663e\u793a\u540c\u65f6\u5305\u542b\u6240\u6709\u5173\u952e\u8bcd\u7684\u5185\u5bb9\u3002",
+6 -6
View File
@@ -7,7 +7,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>索引 &mdash; OrbbecSDK V2 ROS2 封装 文档</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=e59714d7" />
<link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=9edc463e" />
<link rel="stylesheet" type="text/css" href="_static/custom.css?v=63de077d" />
@@ -15,9 +15,9 @@
<script src="_static/jquery.js?v=5d32c60e"></script>
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="_static/documentation_options.js?v=7d86a446"></script>
<script src="_static/doctools.js?v=9bcbadda"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="_static/translations.js?v=beaddf03"></script>
<script src="_static/doctools.js?v=fd6eb6e6"></script>
<script src="_static/sphinx_highlight.js?v=6ffebe34"></script>
<script src="_static/translations.js?v=540d3cec"></script>
<script src="_static/js/theme.js"></script>
<link rel="index" title="索引" href="#" />
<link rel="search" title="搜索" href="search.html" />
@@ -129,7 +129,7 @@
<li class="toctree-l4"><a class="reference internal" href="source/camera_devices/4_application_guide/launch_parameters.html#id18">4.1.6. 深度滤波器</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="source/camera_devices/4_application_guide/services.html">4.2. 所有可用的相机控制服务</a><ul>
<li class="toctree-l3"><a class="reference internal" href="source/camera_devices/4_application_guide/services.html">4.2. 可用服务</a><ul>
<li class="toctree-l4"><a class="reference internal" href="source/camera_devices/4_application_guide/services.html#id2">4.2.1. 数据流控制</a><ul>
<li class="toctree-l5"><a class="reference internal" href="source/camera_devices/4_application_guide/services.html#id3">4.2.1.1. 彩色流</a></li>
<li class="toctree-l5"><a class="reference internal" href="source/camera_devices/4_application_guide/services.html#id4">4.2.1.2. 深度流</a></li>
@@ -411,7 +411,7 @@
<div role="contentinfo">
<p>&#169; 版权所有 2025, 奥比中光科技集团股份有限公司 www.orbbec.com.。
<span class="lastupdated">最后更新于 2026年01月07日 06:53:11.
<span class="lastupdated">最后更新于 2026年01月13日 02:41:42.
</span></p>
</div>
+8 -8
View File
@@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>OrbbecSDK V2 ROS2 封装文档 &mdash; OrbbecSDK V2 ROS2 封装 文档</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=e59714d7" />
<link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=9edc463e" />
<link rel="stylesheet" type="text/css" href="_static/custom.css?v=63de077d" />
@@ -16,9 +16,9 @@
<script src="_static/jquery.js?v=5d32c60e"></script>
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="_static/documentation_options.js?v=7d86a446"></script>
<script src="_static/doctools.js?v=9bcbadda"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="_static/translations.js?v=beaddf03"></script>
<script src="_static/doctools.js?v=fd6eb6e6"></script>
<script src="_static/sphinx_highlight.js?v=6ffebe34"></script>
<script src="_static/translations.js?v=540d3cec"></script>
<script src="_static/js/theme.js"></script>
<link rel="index" title="索引" href="genindex.html" />
<link rel="search" title="搜索" href="search.html" />
@@ -131,7 +131,7 @@
<li class="toctree-l4"><a class="reference internal" href="source/camera_devices/4_application_guide/launch_parameters.html#id18">4.1.6. 深度滤波器</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="source/camera_devices/4_application_guide/services.html">4.2. 所有可用的相机控制服务</a><ul>
<li class="toctree-l3"><a class="reference internal" href="source/camera_devices/4_application_guide/services.html">4.2. 可用服务</a><ul>
<li class="toctree-l4"><a class="reference internal" href="source/camera_devices/4_application_guide/services.html#id2">4.2.1. 数据流控制</a><ul>
<li class="toctree-l5"><a class="reference internal" href="source/camera_devices/4_application_guide/services.html#id3">4.2.1.1. 彩色流</a></li>
<li class="toctree-l5"><a class="reference internal" href="source/camera_devices/4_application_guide/services.html#id4">4.2.1.2. 深度流</a></li>
@@ -399,7 +399,7 @@
<div itemprop="articleBody">
<div class="lang-switch" style="margin:0 0 1em 0; font-size:0.9em;"><a class="lang-other" href="#">English</a> | <a class="lang-current" href="#">中文</a></div><script>(function(){var p=window.location.pathname;var isEn=p.indexOf('/en/')!==-1 && p.indexOf('/zh/')===-1;if(p.indexOf('/zh/')!==-1) isEn=false;var other = isEn ? p.replace(/\/en\//, '/zh/') : p.replace(/\/zh\//, '/en/');var current=p;var sw=document.querySelector('.lang-switch'); if(!sw) return;var o=sw.querySelector('.lang-other'); var c=sw.querySelector('.lang-current');if(isEn){ o.textContent='中文'; c.textContent='English'; } else { o.textContent='English'; c.textContent='中文'; }o.setAttribute('href', other); c.setAttribute('href', current);})();</script><section id="orbbecsdk-v2-ros2">
<h1>OrbbecSDK V2 ROS2 封装文档<a class="headerlink" href="#orbbecsdk-v2-ros2" title="Link to this heading"></a></h1>
<h1>OrbbecSDK V2 ROS2 封装文档<a class="headerlink" href="#orbbecsdk-v2-ros2" title="链接到此标题。"></a></h1>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="source/camera_devices/index.html">Camera Devices</a><ul>
@@ -422,7 +422,7 @@
</li>
<li class="toctree-l2"><a class="reference internal" href="source/camera_devices/4_application_guide/application_guide.html">4. 应用指南</a><ul>
<li class="toctree-l3"><a class="reference internal" href="source/camera_devices/4_application_guide/launch_parameters.html">4.1. 启动参数</a></li>
<li class="toctree-l3"><a class="reference internal" href="source/camera_devices/4_application_guide/services.html">4.2. 所有可用的相机控制服务</a></li>
<li class="toctree-l3"><a class="reference internal" href="source/camera_devices/4_application_guide/services.html">4.2. 可用服务</a></li>
<li class="toctree-l3"><a class="reference internal" href="source/camera_devices/4_application_guide/topics.html">4.3. 可用话题</a></li>
<li class="toctree-l3"><a class="reference internal" href="source/camera_devices/4_application_guide/coordinate_and_tf.html">4.4. 坐标系和 TF 变换</a></li>
<li class="toctree-l3"><a class="reference internal" href="source/camera_devices/4_application_guide/compressed_image.html">4.5. 压缩图像</a></li>
@@ -502,7 +502,7 @@
<div role="contentinfo">
<p>&#169; 版权所有 2025, 奥比中光科技集团股份有限公司 www.orbbec.com.。
<span class="lastupdated">最后更新于 2026年01月07日 06:53:11.
<span class="lastupdated">最后更新于 2026年01月13日 02:41:42.
</span></p>
</div>
BIN
View File
Binary file not shown.
+6 -6
View File
@@ -7,7 +7,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>搜索 &mdash; OrbbecSDK V2 ROS2 封装 文档</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=e59714d7" />
<link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=9edc463e" />
<link rel="stylesheet" type="text/css" href="_static/custom.css?v=63de077d" />
@@ -16,9 +16,9 @@
<script src="_static/jquery.js?v=5d32c60e"></script>
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="_static/documentation_options.js?v=7d86a446"></script>
<script src="_static/doctools.js?v=9bcbadda"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="_static/translations.js?v=beaddf03"></script>
<script src="_static/doctools.js?v=fd6eb6e6"></script>
<script src="_static/sphinx_highlight.js?v=6ffebe34"></script>
<script src="_static/translations.js?v=540d3cec"></script>
<script src="_static/js/theme.js"></script>
<script src="_static/searchtools.js"></script>
<script src="_static/language_data.js"></script>
@@ -132,7 +132,7 @@
<li class="toctree-l4"><a class="reference internal" href="source/camera_devices/4_application_guide/launch_parameters.html#id18">4.1.6. 深度滤波器</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="source/camera_devices/4_application_guide/services.html">4.2. 所有可用的相机控制服务</a><ul>
<li class="toctree-l3"><a class="reference internal" href="source/camera_devices/4_application_guide/services.html">4.2. 可用服务</a><ul>
<li class="toctree-l4"><a class="reference internal" href="source/camera_devices/4_application_guide/services.html#id2">4.2.1. 数据流控制</a><ul>
<li class="toctree-l5"><a class="reference internal" href="source/camera_devices/4_application_guide/services.html#id3">4.2.1.1. 彩色流</a></li>
<li class="toctree-l5"><a class="reference internal" href="source/camera_devices/4_application_guide/services.html#id4">4.2.1.2. 深度流</a></li>
@@ -419,7 +419,7 @@
<div role="contentinfo">
<p>&#169; 版权所有 2025, 奥比中光科技集团股份有限公司 www.orbbec.com.。
<span class="lastupdated">最后更新于 2026年01月07日 06:53:11.
<span class="lastupdated">最后更新于 2026年01月13日 02:41:42.
</span></p>
</div>
+1 -1
View File
File diff suppressed because one or more lines are too long
@@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>1.1. 引言 &mdash; OrbbecSDK V2 ROS2 封装 文档</title>
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=e59714d7" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=9edc463e" />
<link rel="stylesheet" type="text/css" href="../../../_static/custom.css?v=63de077d" />
@@ -16,9 +16,9 @@
<script src="../../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../../_static/documentation_options.js?v=7d86a446"></script>
<script src="../../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../_static/translations.js?v=beaddf03"></script>
<script src="../../../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../../../_static/sphinx_highlight.js?v=6ffebe34"></script>
<script src="../../../_static/translations.js?v=540d3cec"></script>
<script src="../../../_static/js/theme.js"></script>
<link rel="index" title="索引" href="../../../genindex.html" />
<link rel="search" title="搜索" href="../../../search.html" />
@@ -132,7 +132,7 @@
<li class="toctree-l4"><a class="reference internal" href="../4_application_guide/launch_parameters.html#id18">4.1.6. 深度滤波器</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../4_application_guide/services.html">4.2. 所有可用的相机控制服务</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../4_application_guide/services.html">4.2. 可用服务</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../4_application_guide/services.html#id2">4.2.1. 数据流控制</a><ul>
<li class="toctree-l5"><a class="reference internal" href="../4_application_guide/services.html#id3">4.2.1.1. 彩色流</a></li>
<li class="toctree-l5"><a class="reference internal" href="../4_application_guide/services.html#id4">4.2.1.2. 深度流</a></li>
@@ -402,7 +402,7 @@
<div itemprop="articleBody">
<div class="lang-switch" style="margin:0 0 1em 0; font-size:0.9em;"><a class="lang-other" href="#">English</a> | <a class="lang-current" href="#">中文</a></div><script>(function(){var p=window.location.pathname;var isEn=p.indexOf('/en/')!==-1 && p.indexOf('/zh/')===-1;if(p.indexOf('/zh/')!==-1) isEn=false;var other = isEn ? p.replace(/\/en\//, '/zh/') : p.replace(/\/zh\//, '/en/');var current=p;var sw=document.querySelector('.lang-switch'); if(!sw) return;var o=sw.querySelector('.lang-other'); var c=sw.querySelector('.lang-current');if(isEn){ o.textContent='中文'; c.textContent='English'; } else { o.textContent='English'; c.textContent='中文'; }o.setAttribute('href', other); c.setAttribute('href', current);})();</script><section id="id1">
<h1><span class="section-number">1.1. </span>引言<a class="headerlink" href="#id1" title="Link to this heading"></a></h1>
<h1><span class="section-number">1.1. </span>引言<a class="headerlink" href="#id1" title="链接到此标题。"></a></h1>
<p>OrbbecSDK ROS2 封装为 Orbbec 相机与 ROS 2 环境提供无缝集成。它支持 ROS2 Foxy、Humble 和 Jazzy 发行版。</p>
<p>默认推荐使用 <strong>v2-main</strong> 分支。对于 v2-main 尚不支持的旧 OpenNI 设备,请使用 <strong>main</strong> 分支。仅由 main 分支支持的设备型号列在下表中。</p>
<p>如果您是中国用户,推荐使用 <a class="reference external" href="https://gitee.com/orbbecdeveloper/OrbbecSDK_ROS2">gitee 仓库</a>。</p>
@@ -417,6 +417,17 @@
</tr>
</thead>
<tbody>
<tr>
<td rowspan="2" style="text-align: center; font-weight: bold;">Gemini 340</td>
<td>Gemini 345</td>
<td>not supported</td>
<td>recommended for new designs</td>
</tr>
<tr>
<td>Gemini 345Lg</td>
<td>not supported</td>
<td>recommended for new designs</td>
</tr>
<tr>
<td style="text-align: center; font-weight: bold;">Gemini 435Le</td>
<td>Gemini 435Le</td>
@@ -550,7 +561,7 @@
<li><p>即将支持:近期将添加支持。</p></li>
</ol>
<section id="id2">
<h2><span class="section-number">1.1.1. </span>支持的硬件产品<a class="headerlink" href="#id2" title="Link to this heading"></a></h2>
<h2><span class="section-number">1.1.1. </span>支持的硬件产品<a class="headerlink" href="#id2" title="链接到此标题。"></a></h2>
<p>以下设备由 OrbbecSDK ROS2 封装 v2-main 分支支持。后续将增加更多设备支持。如果您在下表中未找到设备,请尝试 <a class="reference external" href="https://github.com/orbbec/OrbbecSDK_ROS2">main</a> 分支。</p>
<p>为获得最佳性能,强烈建议升级到最新固件版本,以确保获得最新的改进与缺陷修复。</p>
<p>关于如何获取与升级最新固件,<a class="reference internal" href="../3_quickstarts/orbbecviewer.html"><span class="doc">请点击这里</span></a>。</p>
@@ -637,7 +648,7 @@
</table><p>所有启动文件本质上是类似的,主要区别在于同系列不同型号设置的参数默认值。USB 标准差异(如 USB 2.0 与 USB 3.0)可能需要调整这些参数。如果遇到启动失败,请仔细查看规格说明书,特别关注启动文件中的分辨率设置以及其他参数,以确保兼容与最佳性能。</p>
</section>
<section id="orbbec">
<h2><span class="section-number">1.1.2. </span>Orbbec 相机规格书<a class="headerlink" href="#orbbec" title="Link to this heading"></a></h2>
<h2><span class="section-number">1.1.2. </span>Orbbec 相机规格书<a class="headerlink" href="#orbbec" title="链接到此标题。"></a></h2>
<p>更多信息请参考相机规格书。</p>
<style>
table {
@@ -726,7 +737,7 @@ thead th {
</table></section>
<hr class="docutils" />
<section id="id3">
<h2><span class="section-number">1.1.3. </span>支持的平台<a class="headerlink" href="#id3" title="Link to this heading"></a></h2>
<h2><span class="section-number">1.1.3. </span>支持的平台<a class="headerlink" href="#id3" title="链接到此标题。"></a></h2>
<ul class="simple">
<li><p>Linux x64:已在 Ubuntu 22.04 上测试</p></li>
<li><p>Linux ARM64:已在 NVIDIA Jetson AGX Orin、NVIDIA Jetson Orin NX、NVIDIA Jetson Orin Nano、NVIDIA Jetson AGX Xavier、NVIDIA Jetson Xavier NX 上测试</p></li>
@@ -746,7 +757,7 @@ thead th {
<div role="contentinfo">
<p>&#169; 版权所有 2025, 奥比中光科技集团股份有限公司 www.orbbec.com.。
<span class="lastupdated">最后更新于 2026年01月07日 06:53:11.
<span class="lastupdated">最后更新于 2026年01月13日 02:41:42.
</span></p>
</div>
@@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>1.2. Orbbec SDK 概述 &mdash; OrbbecSDK V2 ROS2 封装 文档</title>
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=e59714d7" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=9edc463e" />
<link rel="stylesheet" type="text/css" href="../../../_static/custom.css?v=63de077d" />
@@ -16,9 +16,9 @@
<script src="../../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../../_static/documentation_options.js?v=7d86a446"></script>
<script src="../../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../_static/translations.js?v=beaddf03"></script>
<script src="../../../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../../../_static/sphinx_highlight.js?v=6ffebe34"></script>
<script src="../../../_static/translations.js?v=540d3cec"></script>
<script src="../../../_static/js/theme.js"></script>
<link rel="index" title="索引" href="../../../genindex.html" />
<link rel="search" title="搜索" href="../../../search.html" />
@@ -132,7 +132,7 @@
<li class="toctree-l4"><a class="reference internal" href="../4_application_guide/launch_parameters.html#id18">4.1.6. 深度滤波器</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../4_application_guide/services.html">4.2. 所有可用的相机控制服务</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../4_application_guide/services.html">4.2. 可用服务</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../4_application_guide/services.html#id2">4.2.1. 数据流控制</a><ul>
<li class="toctree-l5"><a class="reference internal" href="../4_application_guide/services.html#id3">4.2.1.1. 彩色流</a></li>
<li class="toctree-l5"><a class="reference internal" href="../4_application_guide/services.html#id4">4.2.1.2. 深度流</a></li>
@@ -402,10 +402,10 @@
<div itemprop="articleBody">
<div class="lang-switch" style="margin:0 0 1em 0; font-size:0.9em;"><a class="lang-other" href="#">English</a> | <a class="lang-current" href="#">中文</a></div><script>(function(){var p=window.location.pathname;var isEn=p.indexOf('/en/')!==-1 && p.indexOf('/zh/')===-1;if(p.indexOf('/zh/')!==-1) isEn=false;var other = isEn ? p.replace(/\/en\//, '/zh/') : p.replace(/\/zh\//, '/en/');var current=p;var sw=document.querySelector('.lang-switch'); if(!sw) return;var o=sw.querySelector('.lang-other'); var c=sw.querySelector('.lang-current');if(isEn){ o.textContent='中文'; c.textContent='English'; } else { o.textContent='English'; c.textContent='中文'; }o.setAttribute('href', other); c.setAttribute('href', current);})();</script><section id="orbbec-sdk">
<h1><span class="section-number">1.2. </span>Orbbec SDK 概述<a class="headerlink" href="#orbbec-sdk" title="Link to this heading"></a></h1>
<h1><span class="section-number">1.2. </span>Orbbec SDK 概述<a class="headerlink" href="#orbbec-sdk" title="链接到此标题。"></a></h1>
<p>本节介绍 C++ 版本的 Orbbec SDK。其架构和概念与 Python 包装器一致。</p>
<section id="id1">
<h2><span class="section-number">1.2.1. </span>术语<a class="headerlink" href="#id1" title="Link to this heading"></a></h2>
<h2><span class="section-number">1.2.1. </span>术语<a class="headerlink" href="#id1" title="链接到此标题。"></a></h2>
<table border="1" class="docutils">
<thead>
<tr>
@@ -503,7 +503,7 @@
</tbody>
</table></section>
<section id="orbbec-sdk-v2">
<h2><span class="section-number">1.2.2. </span>Orbbec SDK v2 架构概述<a class="headerlink" href="#orbbec-sdk-v2" title="Link to this heading"></a></h2>
<h2><span class="section-number">1.2.2. </span>Orbbec SDK v2 架构概述<a class="headerlink" href="#orbbec-sdk-v2" title="链接到此标题。"></a></h2>
<p><img alt="OrbbecSDK v2 软件架构" src="../../../_images/Soft_Architecture.png" /></p>
<ul class="simple">
<li><p>应用层(Application)</p></li>
@@ -531,7 +531,7 @@
<p>各平台的驱动实现。</p>
</section>
<section id="sdk">
<h2><span class="section-number">1.2.3. </span>SDK 概念概述<a class="headerlink" href="#sdk" title="Link to this heading"></a></h2>
<h2><span class="section-number">1.2.3. </span>SDK 概念概述<a class="headerlink" href="#sdk" title="链接到此标题。"></a></h2>
<ul class="simple">
<li><p>Context(上下文)</p></li>
</ul>
@@ -570,7 +570,7 @@
<p>回放功能,播放录制的文件,并支持控制回放速度和其他相关参数。</p>
</section>
<section id="id2">
<h2><span class="section-number">1.2.4. </span>SDK 编程模型<a class="headerlink" href="#id2" title="Link to this heading"></a></h2>
<h2><span class="section-number">1.2.4. </span>SDK 编程模型<a class="headerlink" href="#id2" title="链接到此标题。"></a></h2>
<p>以下是 C++ 编程逻辑流程图。Python 的编程逻辑与之相同。</p>
<ul class="simple">
<li><p>标准流程图:</p></li>
@@ -596,7 +596,7 @@
<div role="contentinfo">
<p>&#169; 版权所有 2025, 奥比中光科技集团股份有限公司 www.orbbec.com.。
<span class="lastupdated">最后更新于 2026年01月07日 06:53:11.
<span class="lastupdated">最后更新于 2026年01月13日 02:41:42.
</span></p>
</div>
@@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>1. 概述 &mdash; OrbbecSDK V2 ROS2 封装 文档</title>
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=e59714d7" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=9edc463e" />
<link rel="stylesheet" type="text/css" href="../../../_static/custom.css?v=63de077d" />
@@ -16,9 +16,9 @@
<script src="../../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../../_static/documentation_options.js?v=7d86a446"></script>
<script src="../../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../_static/translations.js?v=beaddf03"></script>
<script src="../../../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../../../_static/sphinx_highlight.js?v=6ffebe34"></script>
<script src="../../../_static/translations.js?v=540d3cec"></script>
<script src="../../../_static/js/theme.js"></script>
<link rel="index" title="索引" href="../../../genindex.html" />
<link rel="search" title="搜索" href="../../../search.html" />
@@ -132,7 +132,7 @@
<li class="toctree-l4"><a class="reference internal" href="../4_application_guide/launch_parameters.html#id18">4.1.6. 深度滤波器</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../4_application_guide/services.html">4.2. 所有可用的相机控制服务</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../4_application_guide/services.html">4.2. 可用服务</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../4_application_guide/services.html#id2">4.2.1. 数据流控制</a><ul>
<li class="toctree-l5"><a class="reference internal" href="../4_application_guide/services.html#id3">4.2.1.1. 彩色流</a></li>
<li class="toctree-l5"><a class="reference internal" href="../4_application_guide/services.html#id4">4.2.1.2. 深度流</a></li>
@@ -401,7 +401,7 @@
<div itemprop="articleBody">
<div class="lang-switch" style="margin:0 0 1em 0; font-size:0.9em;"><a class="lang-other" href="#">English</a> | <a class="lang-current" href="#">中文</a></div><script>(function(){var p=window.location.pathname;var isEn=p.indexOf('/en/')!==-1 && p.indexOf('/zh/')===-1;if(p.indexOf('/zh/')!==-1) isEn=false;var other = isEn ? p.replace(/\/en\//, '/zh/') : p.replace(/\/zh\//, '/en/');var current=p;var sw=document.querySelector('.lang-switch'); if(!sw) return;var o=sw.querySelector('.lang-other'); var c=sw.querySelector('.lang-current');if(isEn){ o.textContent='中文'; c.textContent='English'; } else { o.textContent='English'; c.textContent='中文'; }o.setAttribute('href', other); c.setAttribute('href', current);})();</script><section id="id1">
<h1><span class="section-number">1. </span>概述<a class="headerlink" href="#id1" title="Link to this heading"></a></h1>
<h1><span class="section-number">1. </span>概述<a class="headerlink" href="#id1" title="链接到此标题。"></a></h1>
<p>本章节提供 Orbbec SDK 的概述,包括支持的产品、主要功能和架构。</p>
<div class="toctree-wrapper compound">
<ul>
@@ -434,7 +434,7 @@
<div role="contentinfo">
<p>&#169; 版权所有 2025, 奥比中光科技集团股份有限公司 www.orbbec.com.。
<span class="lastupdated">最后更新于 2026年01月07日 06:53:11.
<span class="lastupdated">最后更新于 2026年01月13日 02:41:42.
</span></p>
</div>
@@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>2.1. 环境配置 &mdash; OrbbecSDK V2 ROS2 封装 文档</title>
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=e59714d7" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=9edc463e" />
<link rel="stylesheet" type="text/css" href="../../../_static/custom.css?v=63de077d" />
@@ -16,9 +16,9 @@
<script src="../../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../../_static/documentation_options.js?v=7d86a446"></script>
<script src="../../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../_static/translations.js?v=beaddf03"></script>
<script src="../../../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../../../_static/sphinx_highlight.js?v=6ffebe34"></script>
<script src="../../../_static/translations.js?v=540d3cec"></script>
<script src="../../../_static/js/theme.js"></script>
<link rel="index" title="索引" href="../../../genindex.html" />
<link rel="search" title="搜索" href="../../../search.html" />
@@ -132,7 +132,7 @@
<li class="toctree-l4"><a class="reference internal" href="../4_application_guide/launch_parameters.html#id18">4.1.6. 深度滤波器</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../4_application_guide/services.html">4.2. 所有可用的相机控制服务</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../4_application_guide/services.html">4.2. 可用服务</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../4_application_guide/services.html#id2">4.2.1. 数据流控制</a><ul>
<li class="toctree-l5"><a class="reference internal" href="../4_application_guide/services.html#id3">4.2.1.1. 彩色流</a></li>
<li class="toctree-l5"><a class="reference internal" href="../4_application_guide/services.html#id4">4.2.1.2. 深度流</a></li>
@@ -402,7 +402,7 @@
<div itemprop="articleBody">
<div class="lang-switch" style="margin:0 0 1em 0; font-size:0.9em;"><a class="lang-other" href="#">English</a> | <a class="lang-current" href="#">中文</a></div><script>(function(){var p=window.location.pathname;var isEn=p.indexOf('/en/')!==-1 && p.indexOf('/zh/')===-1;if(p.indexOf('/zh/')!==-1) isEn=false;var other = isEn ? p.replace(/\/en\//, '/zh/') : p.replace(/\/zh\//, '/en/');var current=p;var sw=document.querySelector('.lang-switch'); if(!sw) return;var o=sw.querySelector('.lang-other'); var c=sw.querySelector('.lang-current');if(isEn){ o.textContent='中文'; c.textContent='English'; } else { o.textContent='English'; c.textContent='中文'; }o.setAttribute('href', other); c.setAttribute('href', current);})();</script><section id="id1">
<h1><span class="section-number">2.1. </span>环境配置<a class="headerlink" href="#id1" title="Link to this heading"></a></h1>
<h1><span class="section-number">2.1. </span>环境配置<a class="headerlink" href="#id1" title="链接到此标题。"></a></h1>
<p>根据官方指南安装 ROS 2:</p>
<ul class="simple">
<li><p><a class="reference external" href="https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debians.html">ROS 2 安装指南(Ubuntu)</a></p></li>
@@ -422,7 +422,7 @@ ros-<span class="nv">$ROS_DISTRO</span>-backward-ros<span class="w"> </span>libd
</div>
</section>
<section id="id2">
<h1><span class="section-number">2.2. </span>二进制安装<a class="headerlink" href="#id2" title="Link to this heading"></a></h1>
<h1><span class="section-number">2.2. </span>二进制安装<a class="headerlink" href="#id2" title="链接到此标题。"></a></h1>
<p>查看软件包:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>apt<span class="w"> </span>update
apt<span class="w"> </span>list<span class="w"> </span><span class="p">|</span><span class="w"> </span>grep<span class="w"> </span>orbbec
@@ -436,7 +436,7 @@ apt<span class="w"> </span>list<span class="w"> </span><span class="p">|</span><
</section>
<hr class="docutils" />
<section id="id3">
<h1><span class="section-number">2.3. </span>从源码构建<a class="headerlink" href="#id3" title="Link to this heading"></a></h1>
<h1><span class="section-number">2.3. </span>从源码构建<a class="headerlink" href="#id3" title="链接到此标题。"></a></h1>
<p>创建 <code class="docutils literal notranslate"><span class="pre">colcon</span></code> 工作空间:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mkdir<span class="w"> </span>-p<span class="w"> </span>~/ros2_ws/src
</pre></div>
@@ -467,7 +467,7 @@ colcon<span class="w"> </span>build<span class="w"> </span>--event-handlers<span
<div role="contentinfo">
<p>&#169; 版权所有 2025, 奥比中光科技集团股份有限公司 www.orbbec.com.。
<span class="lastupdated">最后更新于 2026年01月07日 06:53:11.
<span class="lastupdated">最后更新于 2026年01月13日 02:41:42.
</span></p>
</div>
@@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>2. 安装 &mdash; OrbbecSDK V2 ROS2 封装 文档</title>
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=e59714d7" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=9edc463e" />
<link rel="stylesheet" type="text/css" href="../../../_static/custom.css?v=63de077d" />
@@ -16,9 +16,9 @@
<script src="../../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../../_static/documentation_options.js?v=7d86a446"></script>
<script src="../../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../_static/translations.js?v=beaddf03"></script>
<script src="../../../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../../../_static/sphinx_highlight.js?v=6ffebe34"></script>
<script src="../../../_static/translations.js?v=540d3cec"></script>
<script src="../../../_static/js/theme.js"></script>
<link rel="index" title="索引" href="../../../genindex.html" />
<link rel="search" title="搜索" href="../../../search.html" />
@@ -132,7 +132,7 @@
<li class="toctree-l4"><a class="reference internal" href="../4_application_guide/launch_parameters.html#id18">4.1.6. 深度滤波器</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../4_application_guide/services.html">4.2. 所有可用的相机控制服务</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../4_application_guide/services.html">4.2. 可用服务</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../4_application_guide/services.html#id2">4.2.1. 数据流控制</a><ul>
<li class="toctree-l5"><a class="reference internal" href="../4_application_guide/services.html#id3">4.2.1.1. 彩色流</a></li>
<li class="toctree-l5"><a class="reference internal" href="../4_application_guide/services.html#id4">4.2.1.2. 深度流</a></li>
@@ -401,7 +401,7 @@
<div itemprop="articleBody">
<div class="lang-switch" style="margin:0 0 1em 0; font-size:0.9em;"><a class="lang-other" href="#">English</a> | <a class="lang-current" href="#">中文</a></div><script>(function(){var p=window.location.pathname;var isEn=p.indexOf('/en/')!==-1 && p.indexOf('/zh/')===-1;if(p.indexOf('/zh/')!==-1) isEn=false;var other = isEn ? p.replace(/\/en\//, '/zh/') : p.replace(/\/zh\//, '/en/');var current=p;var sw=document.querySelector('.lang-switch'); if(!sw) return;var o=sw.querySelector('.lang-other'); var c=sw.querySelector('.lang-current');if(isEn){ o.textContent='中文'; c.textContent='English'; } else { o.textContent='English'; c.textContent='中文'; }o.setAttribute('href', other); c.setAttribute('href', current);})();</script><section id="id1">
<h1><span class="section-number">2. </span>安装<a class="headerlink" href="#id1" title="Link to this heading"></a></h1>
<h1><span class="section-number">2. </span>安装<a class="headerlink" href="#id1" title="链接到此标题。"></a></h1>
<p>本章节说明如何安装 Orbbec ROS2 Python SDK,包括从源码构建、安装依赖项以及使用注册脚本。</p>
<div class="toctree-wrapper compound">
<ul>
@@ -429,7 +429,7 @@
<div role="contentinfo">
<p>&#169; 版权所有 2025, 奥比中光科技集团股份有限公司 www.orbbec.com.。
<span class="lastupdated">最后更新于 2026年01月07日 06:53:11.
<span class="lastupdated">最后更新于 2026年01月13日 02:41:42.
</span></p>
</div>
@@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>2.4. 注册脚本(必需) &mdash; OrbbecSDK V2 ROS2 封装 文档</title>
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=e59714d7" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=9edc463e" />
<link rel="stylesheet" type="text/css" href="../../../_static/custom.css?v=63de077d" />
@@ -16,9 +16,9 @@
<script src="../../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../../_static/documentation_options.js?v=7d86a446"></script>
<script src="../../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../_static/translations.js?v=beaddf03"></script>
<script src="../../../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../../../_static/sphinx_highlight.js?v=6ffebe34"></script>
<script src="../../../_static/translations.js?v=540d3cec"></script>
<script src="../../../_static/js/theme.js"></script>
<link rel="index" title="索引" href="../../../genindex.html" />
<link rel="search" title="搜索" href="../../../search.html" />
@@ -132,7 +132,7 @@
<li class="toctree-l4"><a class="reference internal" href="../4_application_guide/launch_parameters.html#id18">4.1.6. 深度滤波器</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../4_application_guide/services.html">4.2. 所有可用的相机控制服务</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../4_application_guide/services.html">4.2. 可用服务</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../4_application_guide/services.html#id2">4.2.1. 数据流控制</a><ul>
<li class="toctree-l5"><a class="reference internal" href="../4_application_guide/services.html#id3">4.2.1.1. 彩色流</a></li>
<li class="toctree-l5"><a class="reference internal" href="../4_application_guide/services.html#id4">4.2.1.2. 深度流</a></li>
@@ -402,17 +402,17 @@
<div itemprop="articleBody">
<div class="lang-switch" style="margin:0 0 1em 0; font-size:0.9em;"><a class="lang-other" href="#">English</a> | <a class="lang-current" href="#">中文</a></div><script>(function(){var p=window.location.pathname;var isEn=p.indexOf('/en/')!==-1 && p.indexOf('/zh/')===-1;if(p.indexOf('/zh/')!==-1) isEn=false;var other = isEn ? p.replace(/\/en\//, '/zh/') : p.replace(/\/zh\//, '/en/');var current=p;var sw=document.querySelector('.lang-switch'); if(!sw) return;var o=sw.querySelector('.lang-other'); var c=sw.querySelector('.lang-current');if(isEn){ o.textContent='中文'; c.textContent='English'; } else { o.textContent='English'; c.textContent='中文'; }o.setAttribute('href', other); c.setAttribute('href', current);})();</script><section id="id1">
<h1><span class="section-number">2.4. </span>注册脚本(必需)<a class="headerlink" href="#id1" title="Link to this heading"></a></h1>
<h1><span class="section-number">2.4. </span>注册脚本(必需)<a class="headerlink" href="#id1" title="链接到此标题。"></a></h1>
<p>为了让 Orbbec 相机在 Linux 上被正确识别,请安装 udev 规则。</p>
<section id="id2">
<h2><span class="section-number">2.4.1. </span>二进制安装<a class="headerlink" href="#id2" title="Link to this heading"></a></h2>
<h2><span class="section-number">2.4.1. </span>二进制安装<a class="headerlink" href="#id2" title="链接到此标题。"></a></h2>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>cp<span class="w"> </span>/opt/ros/<span class="nv">$ROS_DISTRO</span>/share/orbbec_camera/udev/99-obsensor-libusb.rules<span class="w"> </span>/etc/udev/rules.d/
sudo<span class="w"> </span>udevadm<span class="w"> </span>control<span class="w"> </span>--reload-rules<span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span>sudo<span class="w"> </span>udevadm<span class="w"> </span>trigger
</pre></div>
</div>
</section>
<section id="id3">
<h2><span class="section-number">2.4.2. </span>从源码构建<a class="headerlink" href="#id3" title="Link to this heading"></a></h2>
<h2><span class="section-number">2.4.2. </span>从源码构建<a class="headerlink" href="#id3" title="链接到此标题。"></a></h2>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="nb">cd</span><span class="w"> </span>~/ros2_ws/src/OrbbecSDK_ROS2/orbbec_camera/scripts
sudo<span class="w"> </span>bash<span class="w"> </span>install_udev_rules.sh
sudo<span class="w"> </span>udevadm<span class="w"> </span>control<span class="w"> </span>--reload-rules<span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span>sudo<span class="w"> </span>udevadm<span class="w"> </span>trigger
@@ -435,7 +435,7 @@ sudo<span class="w"> </span>udevadm<span class="w"> </span>control<span class="w
<div role="contentinfo">
<p>&#169; 版权所有 2025, 奥比中光科技集团股份有限公司 www.orbbec.com.。
<span class="lastupdated">最后更新于 2026年01月07日 06:53:11.
<span class="lastupdated">最后更新于 2026年01月13日 02:41:42.
</span></p>
</div>
@@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>3.2. OrbbecViewer 快速入门 &mdash; OrbbecSDK V2 ROS2 封装 文档</title>
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=e59714d7" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=9edc463e" />
<link rel="stylesheet" type="text/css" href="../../../_static/custom.css?v=63de077d" />
@@ -16,9 +16,9 @@
<script src="../../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../../_static/documentation_options.js?v=7d86a446"></script>
<script src="../../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../_static/translations.js?v=beaddf03"></script>
<script src="../../../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../../../_static/sphinx_highlight.js?v=6ffebe34"></script>
<script src="../../../_static/translations.js?v=540d3cec"></script>
<script src="../../../_static/js/theme.js"></script>
<link rel="index" title="索引" href="../../../genindex.html" />
<link rel="search" title="搜索" href="../../../search.html" />
@@ -132,7 +132,7 @@
<li class="toctree-l4"><a class="reference internal" href="../4_application_guide/launch_parameters.html#id18">4.1.6. 深度滤波器</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../4_application_guide/services.html">4.2. 所有可用的相机控制服务</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../4_application_guide/services.html">4.2. 可用服务</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../4_application_guide/services.html#id2">4.2.1. 数据流控制</a><ul>
<li class="toctree-l5"><a class="reference internal" href="../4_application_guide/services.html#id3">4.2.1.1. 彩色流</a></li>
<li class="toctree-l5"><a class="reference internal" href="../4_application_guide/services.html#id4">4.2.1.2. 深度流</a></li>
@@ -402,28 +402,28 @@
<div itemprop="articleBody">
<div class="lang-switch" style="margin:0 0 1em 0; font-size:0.9em;"><a class="lang-other" href="#">English</a> | <a class="lang-current" href="#">中文</a></div><script>(function(){var p=window.location.pathname;var isEn=p.indexOf('/en/')!==-1 && p.indexOf('/zh/')===-1;if(p.indexOf('/zh/')!==-1) isEn=false;var other = isEn ? p.replace(/\/en\//, '/zh/') : p.replace(/\/zh\//, '/en/');var current=p;var sw=document.querySelector('.lang-switch'); if(!sw) return;var o=sw.querySelector('.lang-other'); var c=sw.querySelector('.lang-current');if(isEn){ o.textContent='中文'; c.textContent='English'; } else { o.textContent='English'; c.textContent='中文'; }o.setAttribute('href', other); c.setAttribute('href', current);})();</script><section id="orbbecviewer">
<h1><span class="section-number">3.2. </span>OrbbecViewer 快速入门<a class="headerlink" href="#orbbecviewer" title="Link to this heading"></a></h1>
<h1><span class="section-number">3.2. </span>OrbbecViewer 快速入门<a class="headerlink" href="#orbbecviewer" title="链接到此标题。"></a></h1>
<blockquote>
<div><p><strong>注意:</strong> 此 ROS 包的参数和功能与 <strong>Orbbec Viewer</strong> 保持一致;有关参数使用或设备型号支持的任何问题,请参考 Orbbec Viewer。</p>
</div></blockquote>
<section id="id1">
<h2><span class="section-number">3.2.1. </span>下载<a class="headerlink" href="#id1" title="Link to this heading"></a></h2>
<h2><span class="section-number">3.2.1. </span>下载<a class="headerlink" href="#id1" title="链接到此标题。"></a></h2>
<p><strong>仓库链接:</strong><a class="reference external" href="https://github.com/orbbec/OrbbecSDK_v2/releases">OrbbecViewer 下载</a></p>
<p>根据您的设备类型选择合适版本的 OrbbecViewer。</p>
<p><img alt="orbbecviewer" src="../../../_images/orbbecviewer1.png" /></p>
</section>
<section id="id2">
<h2><span class="section-number">3.2.2. </span>连接设备<a class="headerlink" href="#id2" title="Link to this heading"></a></h2>
<h2><span class="section-number">3.2.2. </span>连接设备<a class="headerlink" href="#id2" title="链接到此标题。"></a></h2>
<p>当 Orbbec Viewer 打开时,当前设备连接状态将显著地显示在应用程序窗口的左上角。此区域提供关于相机是否已连接并正常工作的即时反馈。</p>
<p><img alt="orbbecviewer" src="../../../_images/orbbecviewer2.png" /></p>
</section>
<section id="id3">
<h2><span class="section-number">3.2.3. </span>相机控制<a class="headerlink" href="#id3" title="Link to this heading"></a></h2>
<h2><span class="section-number">3.2.3. </span>相机控制<a class="headerlink" href="#id3" title="链接到此标题。"></a></h2>
<p>您可以使用窗口顶部的按钮快速查看图像,并在窗口左侧的相机面板中调整图像参数。</p>
<p><img alt="orbbecviewer" src="../../../_images/orbbecviewer3.png" /></p>
</section>
<section id="id4">
<h2><span class="section-number">3.2.4. </span>设备信息和固件升级<a class="headerlink" href="#id4" title="Link to this heading"></a></h2>
<h2><span class="section-number">3.2.4. </span>设备信息和固件升级<a class="headerlink" href="#id4" title="链接到此标题。"></a></h2>
<p>点击窗口左下角的图标以查看当前相机信息并升级固件。</p>
<p><img alt="orbbecviewer" src="../../../_images/orbbecviewer4.png" /></p>
<p>请参考下面的列表获取最新的相机固件。<a class="reference external" href="https://www.orbbec.com/docs/g330-explore-camera-functions-in-orbbec-viewer/">更多信息请点击这里。</a></p>
@@ -498,7 +498,7 @@
<div role="contentinfo">
<p>&#169; 版权所有 2025, 奥比中光科技集团股份有限公司 www.orbbec.com.。
<span class="lastupdated">最后更新于 2026年01月07日 06:53:11.
<span class="lastupdated">最后更新于 2026年01月13日 02:41:42.
</span></p>
</div>
@@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>3.1. ROS 包快速入门 &mdash; OrbbecSDK V2 ROS2 封装 文档</title>
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=e59714d7" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=9edc463e" />
<link rel="stylesheet" type="text/css" href="../../../_static/custom.css?v=63de077d" />
@@ -16,9 +16,9 @@
<script src="../../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../../_static/documentation_options.js?v=7d86a446"></script>
<script src="../../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../_static/translations.js?v=beaddf03"></script>
<script src="../../../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../../../_static/sphinx_highlight.js?v=6ffebe34"></script>
<script src="../../../_static/translations.js?v=540d3cec"></script>
<script src="../../../_static/js/theme.js"></script>
<link rel="index" title="索引" href="../../../genindex.html" />
<link rel="search" title="搜索" href="../../../search.html" />
@@ -132,7 +132,7 @@
<li class="toctree-l4"><a class="reference internal" href="../4_application_guide/launch_parameters.html#id18">4.1.6. 深度滤波器</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../4_application_guide/services.html">4.2. 所有可用的相机控制服务</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../4_application_guide/services.html">4.2. 可用服务</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../4_application_guide/services.html#id2">4.2.1. 数据流控制</a><ul>
<li class="toctree-l5"><a class="reference internal" href="../4_application_guide/services.html#id3">4.2.1.1. 彩色流</a></li>
<li class="toctree-l5"><a class="reference internal" href="../4_application_guide/services.html#id4">4.2.1.2. 深度流</a></li>
@@ -402,9 +402,9 @@
<div itemprop="articleBody">
<div class="lang-switch" style="margin:0 0 1em 0; font-size:0.9em;"><a class="lang-other" href="#">English</a> | <a class="lang-current" href="#">中文</a></div><script>(function(){var p=window.location.pathname;var isEn=p.indexOf('/en/')!==-1 && p.indexOf('/zh/')===-1;if(p.indexOf('/zh/')!==-1) isEn=false;var other = isEn ? p.replace(/\/en\//, '/zh/') : p.replace(/\/zh\//, '/en/');var current=p;var sw=document.querySelector('.lang-switch'); if(!sw) return;var o=sw.querySelector('.lang-other'); var c=sw.querySelector('.lang-current');if(isEn){ o.textContent='中文'; c.textContent='English'; } else { o.textContent='English'; c.textContent='中文'; }o.setAttribute('href', other); c.setAttribute('href', current);})();</script><section id="ros">
<h1><span class="section-number">3.1. </span>ROS 包快速入门<a class="headerlink" href="#ros" title="Link to this heading"></a></h1>
<h1><span class="section-number">3.1. </span>ROS 包快速入门<a class="headerlink" href="#ros" title="链接到此标题。"></a></h1>
<section id="id1">
<h2><span class="section-number">3.1.1. </span>简介<a class="headerlink" href="#id1" title="Link to this heading"></a></h2>
<h2><span class="section-number">3.1.1. </span>简介<a class="headerlink" href="#id1" title="链接到此标题。"></a></h2>
<p>本节提供 Orbbec ROS 2 包装器的快速入门指南。
您将学习如何:</p>
<ul class="simple">
@@ -415,9 +415,9 @@
</section>
<hr class="docutils" />
<section id="id2">
<h2><span class="section-number">3.1.2. </span>构建您的第一个相机应用<a class="headerlink" href="#id2" title="Link to this heading"></a></h2>
<h2><span class="section-number">3.1.2. </span>构建您的第一个相机应用<a class="headerlink" href="#id2" title="链接到此标题。"></a></h2>
<section id="ros-2">
<h3><span class="section-number">3.1.2.1. </span>步骤 1:配置 ROS 2 和工作空间环境<a class="headerlink" href="#ros-2" title="Link to this heading"></a></h3>
<h3><span class="section-number">3.1.2.1. </span>步骤 1:配置 ROS 2 和工作空间环境<a class="headerlink" href="#ros-2" title="链接到此标题。"></a></h3>
<p>确保已配置 ROS 2 和工作空间环境:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="nb">source</span><span class="w"> </span>/opt/ros/<span class="nv">$ROS_DISTRO</span>/setup.bash
</pre></div>
@@ -428,7 +428,7 @@
</div>
</section>
<section id="id3">
<h3><span class="section-number">3.1.2.2. </span>步骤 2:启动相机节点<a class="headerlink" href="#id3" title="Link to this heading"></a></h3>
<h3><span class="section-number">3.1.2.2. </span>步骤 2:启动相机节点<a class="headerlink" href="#id3" title="链接到此标题。"></a></h3>
<ul class="simple">
<li><p>在终端 1 中</p></li>
</ul>
@@ -443,7 +443,7 @@ ros2<span class="w"> </span>launch<span class="w"> </span>orbbec_camera<span cla
</div>
</section>
<section id="rviz2">
<h3><span class="section-number">3.1.2.3. </span>步骤 3:在 RViz2 中可视化<a class="headerlink" href="#rviz2" title="Link to this heading"></a></h3>
<h3><span class="section-number">3.1.2.3. </span>步骤 3:在 RViz2 中可视化<a class="headerlink" href="#rviz2" title="链接到此标题。"></a></h3>
<p>启动 RViz2 并加载默认配置:</p>
<ul class="simple">
<li><p>在终端 2 中</p></li>
@@ -461,10 +461,10 @@ ros2<span class="w"> </span>launch<span class="w"> </span>orbbec_camera<span cla
</section>
<hr class="docutils" />
<section id="id4">
<h2><span class="section-number">3.1.3. </span>示例功能<a class="headerlink" href="#id4" title="Link to this heading"></a></h2>
<h2><span class="section-number">3.1.3. </span>示例功能<a class="headerlink" href="#id4" title="链接到此标题。"></a></h2>
<p>节点运行后,尝试一些 ROS 2 CLI 命令:</p>
<section id="id5">
<h3><span class="section-number">3.1.3.1. </span>列出可用的话题/服务/参数<a class="headerlink" href="#id5" title="Link to this heading"></a></h3>
<h3><span class="section-number">3.1.3.1. </span>列出可用的话题/服务/参数<a class="headerlink" href="#id5" title="链接到此标题。"></a></h3>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>ros2<span class="w"> </span>topic<span class="w"> </span>list
ros2<span class="w"> </span>service<span class="w"> </span>list
ros2<span class="w"> </span>param<span class="w"> </span>list
@@ -472,21 +472,21 @@ ros2<span class="w"> </span>param<span class="w"> </span>list
</div>
</section>
<section id="id6">
<h3><span class="section-number">3.1.3.2. </span>回显话题<a class="headerlink" href="#id6" title="Link to this heading"></a></h3>
<h3><span class="section-number">3.1.3.2. </span>回显话题<a class="headerlink" href="#id6" title="链接到此标题。"></a></h3>
<p>查看深度相机数据:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>ros2<span class="w"> </span>topic<span class="w"> </span><span class="nb">echo</span><span class="w"> </span>/camera/depth/camera_info
</pre></div>
</div>
</section>
<section id="id7">
<h3><span class="section-number">3.1.3.3. </span>调用服务<a class="headerlink" href="#id7" title="Link to this heading"></a></h3>
<h3><span class="section-number">3.1.3.3. </span>调用服务<a class="headerlink" href="#id7" title="链接到此标题。"></a></h3>
<p>例如,获取设备信息:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>ros2<span class="w"> </span>service<span class="w"> </span>call<span class="w"> </span>/camera/get_device_info<span class="w"> </span>orbbec_camera_msgs/srv/GetDeviceInfo<span class="w"> </span><span class="s1">&#39;{}&#39;</span>
</pre></div>
</div>
</section>
<section id="rosbag2">
<h3><span class="section-number">3.1.3.4. </span>使用 rosbag2 录制<a class="headerlink" href="#rosbag2" title="Link to this heading"></a></h3>
<h3><span class="section-number">3.1.3.4. </span>使用 rosbag2 录制<a class="headerlink" href="#rosbag2" title="链接到此标题。"></a></h3>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>ros2<span class="w"> </span>bag<span class="w"> </span>record<span class="w"> </span>/camera/color/image_raw<span class="w"> </span>/camera/depth/image_raw
</pre></div>
</div>
@@ -506,7 +506,7 @@ ros2<span class="w"> </span>param<span class="w"> </span>list
<div role="contentinfo">
<p>&#169; 版权所有 2025, 奥比中光科技集团股份有限公司 www.orbbec.com.。
<span class="lastupdated">最后更新于 2026年01月07日 06:53:11.
<span class="lastupdated">最后更新于 2026年01月13日 02:41:42.
</span></p>
</div>
@@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>3. 快速开始 &mdash; OrbbecSDK V2 ROS2 封装 文档</title>
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=e59714d7" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=9edc463e" />
<link rel="stylesheet" type="text/css" href="../../../_static/custom.css?v=63de077d" />
@@ -16,9 +16,9 @@
<script src="../../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../../_static/documentation_options.js?v=7d86a446"></script>
<script src="../../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../_static/translations.js?v=beaddf03"></script>
<script src="../../../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../../../_static/sphinx_highlight.js?v=6ffebe34"></script>
<script src="../../../_static/translations.js?v=540d3cec"></script>
<script src="../../../_static/js/theme.js"></script>
<link rel="index" title="索引" href="../../../genindex.html" />
<link rel="search" title="搜索" href="../../../search.html" />
@@ -132,7 +132,7 @@
<li class="toctree-l4"><a class="reference internal" href="../4_application_guide/launch_parameters.html#id18">4.1.6. 深度滤波器</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../4_application_guide/services.html">4.2. 所有可用的相机控制服务</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../4_application_guide/services.html">4.2. 可用服务</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../4_application_guide/services.html#id2">4.2.1. 数据流控制</a><ul>
<li class="toctree-l5"><a class="reference internal" href="../4_application_guide/services.html#id3">4.2.1.1. 彩色流</a></li>
<li class="toctree-l5"><a class="reference internal" href="../4_application_guide/services.html#id4">4.2.1.2. 深度流</a></li>
@@ -401,7 +401,7 @@
<div itemprop="articleBody">
<div class="lang-switch" style="margin:0 0 1em 0; font-size:0.9em;"><a class="lang-other" href="#">English</a> | <a class="lang-current" href="#">中文</a></div><script>(function(){var p=window.location.pathname;var isEn=p.indexOf('/en/')!==-1 && p.indexOf('/zh/')===-1;if(p.indexOf('/zh/')!==-1) isEn=false;var other = isEn ? p.replace(/\/en\//, '/zh/') : p.replace(/\/zh\//, '/en/');var current=p;var sw=document.querySelector('.lang-switch'); if(!sw) return;var o=sw.querySelector('.lang-other'); var c=sw.querySelector('.lang-current');if(isEn){ o.textContent='中文'; c.textContent='English'; } else { o.textContent='English'; c.textContent='中文'; }o.setAttribute('href', other); c.setAttribute('href', current);})();</script><section id="id1">
<h1><span class="section-number">3. </span>快速开始<a class="headerlink" href="#id1" title="Link to this heading"></a></h1>
<h1><span class="section-number">3. </span>快速开始<a class="headerlink" href="#id1" title="链接到此标题。"></a></h1>
<p>本章节提供 SDK 的快速入门指南,帮助用户快速运行基本示例程序。</p>
<div class="toctree-wrapper compound">
<ul>
@@ -434,7 +434,7 @@
<div role="contentinfo">
<p>&#169; 版权所有 2025, 奥比中光科技集团股份有限公司 www.orbbec.com.。
<span class="lastupdated">最后更新于 2026年01月07日 06:53:11.
<span class="lastupdated">最后更新于 2026年01月13日 02:41:42.
</span></p>
</div>
@@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>4. 应用指南 &mdash; OrbbecSDK V2 ROS2 封装 文档</title>
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=e59714d7" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=9edc463e" />
<link rel="stylesheet" type="text/css" href="../../../_static/custom.css?v=63de077d" />
@@ -16,9 +16,9 @@
<script src="../../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../../_static/documentation_options.js?v=7d86a446"></script>
<script src="../../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../_static/translations.js?v=beaddf03"></script>
<script src="../../../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../../../_static/sphinx_highlight.js?v=6ffebe34"></script>
<script src="../../../_static/translations.js?v=540d3cec"></script>
<script src="../../../_static/js/theme.js"></script>
<link rel="index" title="索引" href="../../../genindex.html" />
<link rel="search" title="搜索" href="../../../search.html" />
@@ -132,7 +132,7 @@
<li class="toctree-l4"><a class="reference internal" href="launch_parameters.html#id18">4.1.6. 深度滤波器</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="services.html">4.2. 所有可用的相机控制服务</a><ul>
<li class="toctree-l3"><a class="reference internal" href="services.html">4.2. 可用服务</a><ul>
<li class="toctree-l4"><a class="reference internal" href="services.html#id2">4.2.1. 数据流控制</a><ul>
<li class="toctree-l5"><a class="reference internal" href="services.html#id3">4.2.1.1. 彩色流</a></li>
<li class="toctree-l5"><a class="reference internal" href="services.html#id4">4.2.1.2. 深度流</a></li>
@@ -401,7 +401,7 @@
<div itemprop="articleBody">
<div class="lang-switch" style="margin:0 0 1em 0; font-size:0.9em;"><a class="lang-other" href="#">English</a> | <a class="lang-current" href="#">中文</a></div><script>(function(){var p=window.location.pathname;var isEn=p.indexOf('/en/')!==-1 && p.indexOf('/zh/')===-1;if(p.indexOf('/zh/')!==-1) isEn=false;var other = isEn ? p.replace(/\/en\//, '/zh/') : p.replace(/\/zh\//, '/en/');var current=p;var sw=document.querySelector('.lang-switch'); if(!sw) return;var o=sw.querySelector('.lang-other'); var c=sw.querySelector('.lang-current');if(isEn){ o.textContent='中文'; c.textContent='English'; } else { o.textContent='English'; c.textContent='中文'; }o.setAttribute('href', other); c.setAttribute('href', current);})();</script><section id="id1">
<h1><span class="section-number">4. </span>应用指南<a class="headerlink" href="#id1" title="Link to this heading"></a></h1>
<h1><span class="section-number">4. </span>应用指南<a class="headerlink" href="#id1" title="链接到此标题。"></a></h1>
<p>本章介绍使用SDK进行应用开发,包括启动参数配置、ROS2服务和话题使用。</p>
<div class="toctree-wrapper compound">
<ul>
@@ -414,7 +414,7 @@
<li class="toctree-l2"><a class="reference internal" href="launch_parameters.html#id18">4.1.6. 深度滤波器</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="services.html">4.2. 所有可用的相机控制服务</a><ul>
<li class="toctree-l1"><a class="reference internal" href="services.html">4.2. 可用服务</a><ul>
<li class="toctree-l2"><a class="reference internal" href="services.html#id2">4.2.1. 数据流控制</a></li>
<li class="toctree-l2"><a class="reference internal" href="services.html#id7">4.2.2. 传感器与发射器控制</a></li>
<li class="toctree-l2"><a class="reference internal" href="services.html#id8">4.2.3. 设备信息与管理</a></li>
@@ -461,7 +461,7 @@
<div role="contentinfo">
<p>&#169; 版权所有 2025, 奥比中光科技集团股份有限公司 www.orbbec.com.。
<span class="lastupdated">最后更新于 2026年01月07日 06:53:11.
<span class="lastupdated">最后更新于 2026年01月13日 02:41:42.
</span></p>
</div>
@@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>4.5. 压缩图像 &mdash; OrbbecSDK V2 ROS2 封装 文档</title>
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=e59714d7" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=9edc463e" />
<link rel="stylesheet" type="text/css" href="../../../_static/custom.css?v=63de077d" />
@@ -16,9 +16,9 @@
<script src="../../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../../_static/documentation_options.js?v=7d86a446"></script>
<script src="../../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../_static/translations.js?v=beaddf03"></script>
<script src="../../../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../../../_static/sphinx_highlight.js?v=6ffebe34"></script>
<script src="../../../_static/translations.js?v=540d3cec"></script>
<script src="../../../_static/js/theme.js"></script>
<link rel="index" title="索引" href="../../../genindex.html" />
<link rel="search" title="搜索" href="../../../search.html" />
@@ -132,7 +132,7 @@
<li class="toctree-l4"><a class="reference internal" href="launch_parameters.html#id18">4.1.6. 深度滤波器</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="services.html">4.2. 所有可用的相机控制服务</a><ul>
<li class="toctree-l3"><a class="reference internal" href="services.html">4.2. 可用服务</a><ul>
<li class="toctree-l4"><a class="reference internal" href="services.html#id2">4.2.1. 数据流控制</a><ul>
<li class="toctree-l5"><a class="reference internal" href="services.html#id3">4.2.1.1. 彩色流</a></li>
<li class="toctree-l5"><a class="reference internal" href="services.html#id4">4.2.1.2. 深度流</a></li>
@@ -402,7 +402,7 @@
<div itemprop="articleBody">
<div class="lang-switch" style="margin:0 0 1em 0; font-size:0.9em;"><a class="lang-other" href="#">English</a> | <a class="lang-current" href="#">中文</a></div><script>(function(){var p=window.location.pathname;var isEn=p.indexOf('/en/')!==-1 && p.indexOf('/zh/')===-1;if(p.indexOf('/zh/')!==-1) isEn=false;var other = isEn ? p.replace(/\/en\//, '/zh/') : p.replace(/\/zh\//, '/en/');var current=p;var sw=document.querySelector('.lang-switch'); if(!sw) return;var o=sw.querySelector('.lang-other'); var c=sw.querySelector('.lang-current');if(isEn){ o.textContent='中文'; c.textContent='English'; } else { o.textContent='English'; c.textContent='中文'; }o.setAttribute('href', other); c.setAttribute('href', current);})();</script><section id="id1">
<h1><span class="section-number">4.5. </span>压缩图像<a class="headerlink" href="#id1" title="Link to this heading"></a></h1>
<h1><span class="section-number">4.5. </span>压缩图像<a class="headerlink" href="#id1" title="链接到此标题。"></a></h1>
<p>您可以使用 <code class="docutils literal notranslate"><span class="pre">image_transport</span></code> 通过 <code class="docutils literal notranslate"><span class="pre">jpeg</span></code> 压缩图像。以下是使用示例:</p>
<p>要访问压缩的彩色图像,可以使用以下命令:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>ros2<span class="w"> </span>topic<span class="w"> </span><span class="nb">echo</span><span class="w"> </span>/camera/color/image_raw/compressed<span class="w"> </span>--no-arr
@@ -423,7 +423,7 @@
<div role="contentinfo">
<p>&#169; 版权所有 2025, 奥比中光科技集团股份有限公司 www.orbbec.com.。
<span class="lastupdated">最后更新于 2026年01月07日 06:53:11.
<span class="lastupdated">最后更新于 2026年01月13日 02:41:42.
</span></p>
</div>
@@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>4.4. 坐标系和 TF 变换 &mdash; OrbbecSDK V2 ROS2 封装 文档</title>
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=e59714d7" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=9edc463e" />
<link rel="stylesheet" type="text/css" href="../../../_static/custom.css?v=63de077d" />
@@ -16,9 +16,9 @@
<script src="../../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../../_static/documentation_options.js?v=7d86a446"></script>
<script src="../../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../_static/translations.js?v=beaddf03"></script>
<script src="../../../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../../../_static/sphinx_highlight.js?v=6ffebe34"></script>
<script src="../../../_static/translations.js?v=540d3cec"></script>
<script src="../../../_static/js/theme.js"></script>
<link rel="index" title="索引" href="../../../genindex.html" />
<link rel="search" title="搜索" href="../../../search.html" />
@@ -132,7 +132,7 @@
<li class="toctree-l4"><a class="reference internal" href="launch_parameters.html#id18">4.1.6. 深度滤波器</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="services.html">4.2. 所有可用的相机控制服务</a><ul>
<li class="toctree-l3"><a class="reference internal" href="services.html">4.2. 可用服务</a><ul>
<li class="toctree-l4"><a class="reference internal" href="services.html#id2">4.2.1. 数据流控制</a><ul>
<li class="toctree-l5"><a class="reference internal" href="services.html#id3">4.2.1.1. 彩色流</a></li>
<li class="toctree-l5"><a class="reference internal" href="services.html#id4">4.2.1.2. 深度流</a></li>
@@ -402,14 +402,14 @@
<div itemprop="articleBody">
<div class="lang-switch" style="margin:0 0 1em 0; font-size:0.9em;"><a class="lang-other" href="#">English</a> | <a class="lang-current" href="#">中文</a></div><script>(function(){var p=window.location.pathname;var isEn=p.indexOf('/en/')!==-1 && p.indexOf('/zh/')===-1;if(p.indexOf('/zh/')!==-1) isEn=false;var other = isEn ? p.replace(/\/en\//, '/zh/') : p.replace(/\/zh\//, '/en/');var current=p;var sw=document.querySelector('.lang-switch'); if(!sw) return;var o=sw.querySelector('.lang-other'); var c=sw.querySelector('.lang-current');if(isEn){ o.textContent='中文'; c.textContent='English'; } else { o.textContent='English'; c.textContent='中文'; }o.setAttribute('href', other); c.setAttribute('href', current);})();</script><section id="tf">
<h1><span class="section-number">4.4. </span>坐标系和 TF 变换<a class="headerlink" href="#tf" title="Link to this heading"></a></h1>
<h1><span class="section-number">4.4. </span>坐标系和 TF 变换<a class="headerlink" href="#tf" title="链接到此标题。"></a></h1>
<section id="id1">
<h2><span class="section-number">4.4.1. </span>相机传感器结构<a class="headerlink" href="#id1" title="Link to this heading"></a></h2>
<h2><span class="section-number">4.4.1. </span>相机传感器结构<a class="headerlink" href="#id1" title="链接到此标题。"></a></h2>
<p><img alt="module in rviz2" src="../../../_images/image3.png" /></p>
<p><img alt="module in rviz2" src="../../../_images/image1.png" /></p>
</section>
<section id="abtf">
<h2><span class="section-number">4.4.2. </span>从坐标系A到坐标系B的TF变换:<a class="headerlink" href="#abtf" title="Link to this heading"></a></h2>
<h2><span class="section-number">4.4.2. </span>从坐标系A到坐标系B的TF变换:<a class="headerlink" href="#abtf" title="链接到此标题。"></a></h2>
<p>在Orbbec相机中,原点(0,0,0)取自camera_link位置。</p>
<p>可以使用以下命令查看相机的URDF模型和坐标系结构:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>ros2<span class="w"> </span>launch<span class="w"> </span>orbbec_description<span class="w"> </span>view_model.launch.py<span class="w"> </span>model:<span class="o">=</span>gemini_335_336.urdf.xacro
@@ -418,7 +418,7 @@
<p><img alt="rviz2中的模块" src="../../../_images/image2.png" /></p>
</section>
<section id="ros2-vs">
<h2><span class="section-number">4.4.3. </span>ROS2机器人坐标系 vs 相机光学坐标系<a class="headerlink" href="#ros2-vs" title="Link to this heading"></a></h2>
<h2><span class="section-number">4.4.3. </span>ROS2机器人坐标系 vs 相机光学坐标系<a class="headerlink" href="#ros2-vs" title="链接到此标题。"></a></h2>
<ul class="simple">
<li><p>视角:</p>
<ul>
@@ -436,9 +436,9 @@
</ul>
</section>
<section id="ros2-tf">
<h2><span class="section-number">4.4.4. </span>ROS2 TF工具的使用<a class="headerlink" href="#ros2-tf" title="Link to this heading"></a></h2>
<h2><span class="section-number">4.4.4. </span>ROS2 TF工具的使用<a class="headerlink" href="#ros2-tf" title="链接到此标题。"></a></h2>
<section id="id2">
<h3><span class="section-number">4.4.4.1. </span>查看TF树结构<a class="headerlink" href="#id2" title="Link to this heading"></a></h3>
<h3><span class="section-number">4.4.4.1. </span>查看TF树结构<a class="headerlink" href="#id2" title="链接到此标题。"></a></h3>
<p>可以使用以下ROS2命令来打印和可视化相机包发布的TF树:</p>
<p><strong>打印所有TF关系:</strong></p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>ros2<span class="w"> </span>run<span class="w"> </span>tf2_tools<span class="w"> </span>view_frames
@@ -481,7 +481,7 @@
</div>
</section>
<section id="rviz2tf">
<h3><span class="section-number">4.4.4.2. </span>使用rviz2可视化TF树<a class="headerlink" href="#rviz2tf" title="Link to this heading"></a></h3>
<h3><span class="section-number">4.4.4.2. </span>使用rviz2可视化TF树<a class="headerlink" href="#rviz2tf" title="链接到此标题。"></a></h3>
<p>在rviz2中可以实时可视化TF树结构和坐标系的相对位置:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>rviz2
</pre></div>
@@ -496,9 +496,9 @@
</section>
</section>
<section id="id3">
<h2><span class="section-number">4.4.5. </span>相机TF计算和发布机制<a class="headerlink" href="#id3" title="Link to this heading"></a></h2>
<h2><span class="section-number">4.4.5. </span>相机TF计算和发布机制<a class="headerlink" href="#id3" title="链接到此标题。"></a></h2>
<section id="obcameranode-calcandpublishstatictransform">
<h3><span class="section-number">4.4.5.1. </span>核心函数:<a class="reference external" href="https://github.com/orbbec/OrbbecSDK_ROS2/blob/166c35b4ea211c60265ca9b38b1b15519d1ea3dd/orbbec_camera/src/ob_camera_node.cpp#L3475">OBCameraNode::calcAndPublishStaticTransform()</a><a class="headerlink" href="#obcameranode-calcandpublishstatictransform" title="Link to this heading"></a></h3>
<h3><span class="section-number">4.4.5.1. </span>核心函数:<a class="reference external" href="https://github.com/orbbec/OrbbecSDK_ROS2/blob/166c35b4ea211c60265ca9b38b1b15519d1ea3dd/orbbec_camera/src/ob_camera_node.cpp#L3475">OBCameraNode::calcAndPublishStaticTransform()</a><a class="headerlink" href="#obcameranode-calcandpublishstatictransform" title="链接到此标题。"></a></h3>
<p>相机节点通过此函数计算和发布所有传感器之间的静态转换关系。</p>
<div class="highlight-cpp notranslate"><div class="highlight"><pre><span></span><span class="kt">void</span><span class="w"> </span><span class="nf">OBCameraNode::calcAndPublishStaticTransform</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="n">tf2</span><span class="o">::</span><span class="n">Quaternion</span><span class="w"> </span><span class="n">quaternion_optical</span><span class="p">,</span><span class="w"> </span><span class="n">zero_rot</span><span class="p">;</span>
@@ -668,7 +668,7 @@
</div>
</section>
<section id="id4">
<h3><span class="section-number">4.4.5.2. </span>函数解析<a class="headerlink" href="#id4" title="Link to this heading"></a></h3>
<h3><span class="section-number">4.4.5.2. </span>函数解析<a class="headerlink" href="#id4" title="链接到此标题。"></a></h3>
<p>下面是代码的详细解释:</p>
<p><strong>四元数初始化与坐标系变换</strong></p>
<div class="highlight-cpp notranslate"><div class="highlight"><pre><span></span><span class="n">tf2</span><span class="o">::</span><span class="n">Quaternion</span><span class="w"> </span><span class="n">quaternion_optical</span><span class="p">,</span><span class="w"> </span><span class="n">zero_rot</span><span class="p">;</span>
@@ -764,7 +764,7 @@
<div role="contentinfo">
<p>&#169; 版权所有 2025, 奥比中光科技集团股份有限公司 www.orbbec.com.。
<span class="lastupdated">最后更新于 2026年01月07日 06:53:11.
<span class="lastupdated">最后更新于 2026年01月13日 02:41:42.
</span></p>
</div>
@@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>4.1. 启动参数 &mdash; OrbbecSDK V2 ROS2 封装 文档</title>
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=e59714d7" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=9edc463e" />
<link rel="stylesheet" type="text/css" href="../../../_static/custom.css?v=63de077d" />
@@ -16,13 +16,13 @@
<script src="../../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../../_static/documentation_options.js?v=7d86a446"></script>
<script src="../../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../_static/translations.js?v=beaddf03"></script>
<script src="../../../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../../../_static/sphinx_highlight.js?v=6ffebe34"></script>
<script src="../../../_static/translations.js?v=540d3cec"></script>
<script src="../../../_static/js/theme.js"></script>
<link rel="index" title="索引" href="../../../genindex.html" />
<link rel="search" title="搜索" href="../../../search.html" />
<link rel="next" title="4.2. 所有可用的相机控制服务" href="services.html" />
<link rel="next" title="4.2. 可用服务" href="services.html" />
<link rel="prev" title="4. 应用指南" href="application_guide.html" />
</head>
@@ -132,7 +132,7 @@
<li class="toctree-l4"><a class="reference internal" href="#id18">4.1.6. 深度滤波器</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="services.html">4.2. 所有可用的相机控制服务</a><ul>
<li class="toctree-l3"><a class="reference internal" href="services.html">4.2. 可用服务</a><ul>
<li class="toctree-l4"><a class="reference internal" href="services.html#id2">4.2.1. 数据流控制</a><ul>
<li class="toctree-l5"><a class="reference internal" href="services.html#id3">4.2.1.1. 彩色流</a></li>
<li class="toctree-l5"><a class="reference internal" href="services.html#id4">4.2.1.2. 深度流</a></li>
@@ -402,13 +402,13 @@
<div itemprop="articleBody">
<div class="lang-switch" style="margin:0 0 1em 0; font-size:0.9em;"><a class="lang-other" href="#">English</a> | <a class="lang-current" href="#">中文</a></div><script>(function(){var p=window.location.pathname;var isEn=p.indexOf('/en/')!==-1 && p.indexOf('/zh/')===-1;if(p.indexOf('/zh/')!==-1) isEn=false;var other = isEn ? p.replace(/\/en\//, '/zh/') : p.replace(/\/zh\//, '/en/');var current=p;var sw=document.querySelector('.lang-switch'); if(!sw) return;var o=sw.querySelector('.lang-other'); var c=sw.querySelector('.lang-current');if(isEn){ o.textContent='中文'; c.textContent='English'; } else { o.textContent='English'; c.textContent='中文'; }o.setAttribute('href', other); c.setAttribute('href', current);})();</script><section id="id1">
<h1><span class="section-number">4.1. </span>启动参数<a class="headerlink" href="#id1" title="Link to this heading"></a></h1>
<h1><span class="section-number">4.1. </span>启动参数<a class="headerlink" href="#id1" title="链接到此标题。"></a></h1>
<blockquote>
<div><p>如果您不确定如何设置参数,可以连接orbbec相机并打开 <a class="reference external" href="https://github.com/orbbec/OrbbecSDK/releases">OrbbecViewer</a>。</p>
</div></blockquote>
<p>以下是可用的启动参数:</p>
<section id="id2">
<h2><span class="section-number">4.1.1. </span>核心与数据流配置<a class="headerlink" href="#id2" title="Link to this heading"></a></h2>
<h2><span class="section-number">4.1.1. </span>核心与数据流配置<a class="headerlink" href="#id2" title="链接到此标题。"></a></h2>
<ul>
<li><p><strong><code class="docutils literal notranslate"><span class="pre">camera_name</span></code></strong></p>
<ul class="simple">
@@ -512,9 +512,9 @@
</ul>
</section>
<section id="id3">
<h2><span class="section-number">4.1.2. </span>传感器控制<a class="headerlink" href="#id3" title="Link to this heading"></a></h2>
<h2><span class="section-number">4.1.2. </span>传感器控制<a class="headerlink" href="#id3" title="链接到此标题。"></a></h2>
<section id="id4">
<h3><span class="section-number">4.1.2.1. </span>彩色流<a class="headerlink" href="#id4" title="Link to this heading"></a></h3>
<h3><span class="section-number">4.1.2.1. </span>彩色流<a class="headerlink" href="#id4" title="链接到此标题。"></a></h3>
<ul class="simple">
<li><p><strong><code class="docutils literal notranslate"><span class="pre">enable_color_auto_exposure</span></code></strong></p>
<ul>
@@ -584,7 +584,7 @@
</ul>
</section>
<section id="id5">
<h3><span class="section-number">4.1.2.2. </span>深度流<a class="headerlink" href="#id5" title="Link to this heading"></a></h3>
<h3><span class="section-number">4.1.2.2. </span>深度流<a class="headerlink" href="#id5" title="链接到此标题。"></a></h3>
<ul>
<li><p><strong><code class="docutils literal notranslate"><span class="pre">enable_depth_auto_exposure_priority</span></code></strong></p>
<ul class="simple">
@@ -593,7 +593,7 @@
</li>
<li><p><strong><code class="docutils literal notranslate"><span class="pre">mean_intensity_set_point</span></code></strong></p>
<ul class="simple">
<li><p>设置深度图像的目标平均强度。例如:<code class="docutils literal notranslate"><span class="pre">mean_intensity_set_point:=100</span></code>。</p></li>
<li><p>设置开启自动曝光时深度图像的目标平均强度。例如:<code class="docutils literal notranslate"><span class="pre">mean_intensity_set_point:=100</span></code>。</p></li>
</ul>
<blockquote>
<div><p><strong>注意:</strong> 这取代了已弃用的 <code class="docutils literal notranslate"><span class="pre">depth_brightness</span></code>,后者仍支持以保持向后兼容性。</p>
@@ -617,7 +617,7 @@
</ul>
</section>
<section id="id6">
<h3><span class="section-number">4.1.2.3. </span>红外流<a class="headerlink" href="#id6" title="Link to this heading"></a></h3>
<h3><span class="section-number">4.1.2.3. </span>红外流<a class="headerlink" href="#id6" title="链接到此标题。"></a></h3>
<ul class="simple">
<li><p><strong><code class="docutils literal notranslate"><span class="pre">enable_ir_auto_exposure</span></code></strong></p>
<ul>
@@ -636,13 +636,13 @@
</li>
<li><p><strong><code class="docutils literal notranslate"><span class="pre">ir_brightness</span></code></strong></p>
<ul>
<li><p>设置红外亮度。</p></li>
<li><p>设置开启自动曝光时ir图像的目标平均强度。</p></li>
</ul>
</li>
</ul>
</section>
<section id="ldp">
<h3><span class="section-number">4.1.2.4. </span>激光 / LDP<a class="headerlink" href="#ldp" title="Link to this heading"></a></h3>
<h3><span class="section-number">4.1.2.4. </span>激光 / LDP<a class="headerlink" href="#ldp" title="链接到此标题。"></a></h3>
<ul class="simple">
<li><p><strong><code class="docutils literal notranslate"><span class="pre">enable_laser</span></code></strong></p>
<ul>
@@ -663,9 +663,9 @@
</section>
</section>
<section id="id7">
<h2><span class="section-number">4.1.3. </span>设备、同步与高级功能<a class="headerlink" href="#id7" title="Link to this heading"></a></h2>
<h2><span class="section-number">4.1.3. </span>设备、同步与高级功能<a class="headerlink" href="#id7" title="链接到此标题。"></a></h2>
<section id="id8">
<h3><span class="section-number">4.1.3.1. </span>多相机同步<a class="headerlink" href="#id8" title="Link to this heading"></a></h3>
<h3><span class="section-number">4.1.3.1. </span>多相机同步<a class="headerlink" href="#id8" title="链接到此标题。"></a></h3>
<ul class="simple">
<li><p><strong><code class="docutils literal notranslate"><span class="pre">sync_mode</span></code></strong></p>
<ul>
@@ -708,7 +708,7 @@
</div></blockquote>
</section>
<section id="id9">
<h3><span class="section-number">4.1.3.2. </span>网络相机<a class="headerlink" href="#id9" title="Link to this heading"></a></h3>
<h3><span class="section-number">4.1.3.2. </span>网络相机<a class="headerlink" href="#id9" title="链接到此标题。"></a></h3>
<ul class="simple">
<li><p><strong><code class="docutils literal notranslate"><span class="pre">enumerate_net_device</span></code></strong></p>
<ul>
@@ -751,22 +751,54 @@
</div></blockquote>
</section>
<section id="id10">
<h3><span class="section-number">4.1.3.3. </span>设备特定<a class="headerlink" href="#id10" title="Link to this heading"></a></h3>
<ul class="simple">
<li><p><strong><code class="docutils literal notranslate"><span class="pre">enable_gmsl_trigger</span></code></strong> / <strong><code class="docutils literal notranslate"><span class="pre">gmsl_trigger_fps</span></code></strong></p>
<h3><span class="section-number">4.1.3.3. </span>设备特定<a class="headerlink" href="#id10" title="链接到此标题。"></a></h3>
<ul>
<li><p><strong><code class="docutils literal notranslate"><span class="pre">enable_gmsl_trigger</span></code></strong> / <strong><code class="docutils literal notranslate"><span class="pre">gmsl_trigger_fps</span></code></strong></p>
<ul class="simple">
<li><p>启用gmsl触发输出信号 / 设置gmsl触发fps。用于 <a class="reference internal" href="../5_advanced_guide/multi_camera/gmsl_camera.html"><span class="doc">gmsl相机</span></a>。</p></li>
</ul>
</li>
<li><p><strong><code class="docutils literal notranslate"><span class="pre">preset_resolution_config</span></code></strong></p>
<ul>
<ul class="simple">
<li><p>摄像头设备的预设分辨率配置。格式: &quot;width,height,ir_decimation_factor,depth_decimation_factor&quot;. Example: &quot;1280,720,4,4&quot;. 仅在 Gemini435Le 设备上受支持。留空禁用。</p></li>
</ul>
</li>
<li><p><strong><code class="docutils literal notranslate"><span class="pre">ae_mode</span></code></strong></p>
<ul>
<li><p><code class="docutils literal notranslate"><span class="pre">colorbased</span></code>:自动曝光基于彩色流。<code class="docutils literal notranslate"><span class="pre">depthbased</span></code>:自动曝光基于深度流。<strong>默认值:</strong> <code class="docutils literal notranslate"><span class="pre">depthbased</span></code></p>
<blockquote>
<div><p>仅支持Gemini 305。</p>
</div></blockquote>
</li>
</ul>
</li>
<li><p><strong><code class="docutils literal notranslate"><span class="pre">enalbe_sports_mode</span></code></strong></p>
<ul>
<li><p>是否开启运动模式。<strong>默认值:</strong> <code class="docutils literal notranslate"><span class="pre">false</span></code></p>
<blockquote>
<div><p>仅支持Gemini 305。</p>
</div></blockquote>
</li>
</ul>
</li>
<li><p><strong><code class="docutils literal notranslate"><span class="pre">depth_downscale</span></code></strong> / <strong><code class="docutils literal notranslate"><span class="pre">left_ir_downscale</span></code></strong> /<strong><code class="docutils literal notranslate"><span class="pre">right_ir_downscale</span></code></strong></p>
<ul>
<li><p>设置下采样倍数。可用<code class="docutils literal notranslate"><span class="pre">ros2</span> <span class="pre">run</span> <span class="pre">orbbec_camera</span> <span class="pre">list_camera_profile_mode_node</span></code>查看可设置分辨率。<strong>默认值:</strong> <code class="docutils literal notranslate"><span class="pre">1</span></code></p>
<blockquote>
<div><p>仅支持Gemini 305。</p>
</div></blockquote>
</li>
</ul>
</li>
<li><p><strong><code class="docutils literal notranslate"><span class="pre">enable_ptp_config</span></code></strong></p>
<ul class="simple">
<li><p>启用PTP时间同步。仅适用于Gemini 335Le。需要 <code class="docutils literal notranslate"><span class="pre">enable_sync_host_time</span></code> 设置为 <code class="docutils literal notranslate"><span class="pre">false</span></code>。</p></li>
</ul>
</li>
</ul>
</section>
<section id="id11">
<h3><span class="section-number">4.1.3.4. </span>视差<a class="headerlink" href="#id11" title="Link to this heading"></a></h3>
<h3><span class="section-number">4.1.3.4. </span>视差<a class="headerlink" href="#id11" title="链接到此标题。"></a></h3>
<ul class="simple">
<li><p><strong><code class="docutils literal notranslate"><span class="pre">disparity_to_depth_mode</span></code></strong></p>
<ul>
@@ -781,7 +813,7 @@
</ul>
</section>
<section id="ae">
<h3><span class="section-number">4.1.3.5. </span>交错AE模式<a class="headerlink" href="#ae" title="Link to this heading"></a></h3>
<h3><span class="section-number">4.1.3.5. </span>交错AE模式<a class="headerlink" href="#ae" title="链接到此标题。"></a></h3>
<ul class="simple">
<li><p><strong><code class="docutils literal notranslate"><span class="pre">interleave_ae_mode</span></code></strong></p>
<ul>
@@ -802,7 +834,7 @@
</ul>
</section>
<section id="id12">
<h3><span class="section-number">4.1.3.6. </span>相机内同步<a class="headerlink" href="#id12" title="Link to this heading"></a></h3>
<h3><span class="section-number">4.1.3.6. </span>相机内同步<a class="headerlink" href="#id12" title="链接到此标题。"></a></h3>
<ul class="simple">
<li><p><strong><code class="docutils literal notranslate"><span class="pre">depth_registration</span></code></strong></p>
<ul>
@@ -831,9 +863,9 @@
</section>
</section>
<section id="id13">
<h2><span class="section-number">4.1.4. </span>基础与通用参数<a class="headerlink" href="#id13" title="Link to this heading"></a></h2>
<h2><span class="section-number">4.1.4. </span>基础与通用参数<a class="headerlink" href="#id13" title="链接到此标题。"></a></h2>
<section id="id14">
<h3><span class="section-number">4.1.4.1. </span>固件与后端<a class="headerlink" href="#id14" title="Link to this heading"></a></h3>
<h3><span class="section-number">4.1.4.1. </span>固件与后端<a class="headerlink" href="#id14" title="链接到此标题。"></a></h3>
<ul class="simple">
<li><p><strong><code class="docutils literal notranslate"><span class="pre">upgrade_firmware</span></code></strong></p>
<ul>
@@ -863,7 +895,7 @@
</ul>
</section>
<section id="tf">
<h3><span class="section-number">4.1.4.2. </span>TF、外参与校准<a class="headerlink" href="#tf" title="Link to this heading"></a></h3>
<h3><span class="section-number">4.1.4.2. </span>TF、外参与校准<a class="headerlink" href="#tf" title="链接到此标题。"></a></h3>
<ul class="simple">
<li><p><strong><code class="docutils literal notranslate"><span class="pre">publish_tf</span></code></strong> / <strong><code class="docutils literal notranslate"><span class="pre">tf_publish_rate</span></code></strong></p>
<ul>
@@ -888,7 +920,7 @@
</ul>
</section>
<section id="id15">
<h3><span class="section-number">4.1.4.3. </span>时间同步<a class="headerlink" href="#id15" title="Link to this heading"></a></h3>
<h3><span class="section-number">4.1.4.3. </span>时间同步<a class="headerlink" href="#id15" title="链接到此标题。"></a></h3>
<ul>
<li><p><strong><code class="docutils literal notranslate"><span class="pre">enable_sync_host_time</span></code></strong></p>
<ul class="simple">
@@ -908,11 +940,6 @@
<div><p><strong>注意</strong>:仅当 <strong><code class="docutils literal notranslate"><span class="pre">enable_sync_host_time</span> <span class="pre">=</span> <span class="pre">true</span></code></strong> 且 <strong><code class="docutils literal notranslate"><span class="pre">time_domain</span> <span class="pre">=</span> <span class="pre">device</span></code></strong> 时需要设置此参数。</p>
</div></blockquote>
</li>
<li><p><strong><code class="docutils literal notranslate"><span class="pre">enable_ptp_config</span></code></strong></p>
<ul class="simple">
<li><p>启用PTP时间同步。仅适用于Gemini 335Le。需要 <code class="docutils literal notranslate"><span class="pre">enable_sync_host_time</span></code> 设置为 <code class="docutils literal notranslate"><span class="pre">false</span></code>。</p></li>
</ul>
</li>
<li><p><strong><code class="docutils literal notranslate"><span class="pre">enable_frame_sync</span></code></strong></p>
<ul class="simple">
<li><p>启用帧同步。</p></li>
@@ -921,7 +948,7 @@
</ul>
</section>
<section id="id16">
<h3><span class="section-number">4.1.4.4. </span>日志与诊断<a class="headerlink" href="#id16" title="Link to this heading"></a></h3>
<h3><span class="section-number">4.1.4.4. </span>日志与诊断<a class="headerlink" href="#id16" title="链接到此标题。"></a></h3>
<ul class="simple">
<li><p><strong><code class="docutils literal notranslate"><span class="pre">log_level</span></code></strong></p>
<ul>
@@ -946,7 +973,7 @@
</ul>
</section>
<section id="id17">
<h3><span class="section-number">4.1.4.5. </span>其他<a class="headerlink" href="#id17" title="Link to this heading"></a></h3>
<h3><span class="section-number">4.1.4.5. </span>其他<a class="headerlink" href="#id17" title="链接到此标题。"></a></h3>
<ul class="simple">
<li><p><strong><code class="docutils literal notranslate"><span class="pre">config_file_path</span></code></strong></p>
<ul>
@@ -967,7 +994,7 @@
</section>
</section>
<section id="imu">
<h2><span class="section-number">4.1.5. </span>IMU<a class="headerlink" href="#imu" title="Link to this heading"></a></h2>
<h2><span class="section-number">4.1.5. </span>IMU<a class="headerlink" href="#imu" title="链接到此标题。"></a></h2>
<ul class="simple">
<li><p><strong><code class="docutils literal notranslate"><span class="pre">enable_accel</span></code></strong> / <strong><code class="docutils literal notranslate"><span class="pre">enable_gyro</span></code></strong></p>
<ul>
@@ -1002,7 +1029,7 @@
</ul>
</section>
<section id="id18">
<h2><span class="section-number">4.1.6. </span>深度滤波器<a class="headerlink" href="#id18" title="Link to this heading"></a></h2>
<h2><span class="section-number">4.1.6. </span>深度滤波器<a class="headerlink" href="#id18" title="链接到此标题。"></a></h2>
<ul class="simple">
<li><p><strong><code class="docutils literal notranslate"><span class="pre">enable_decimation_filter</span></code></strong></p>
<ul>
@@ -1072,14 +1099,14 @@
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="页脚">
<a href="application_guide.html" class="btn btn-neutral float-left" title="4. 应用指南" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> 上一页</a>
<a href="services.html" class="btn btn-neutral float-right" title="4.2. 所有可用的相机控制服务" accesskey="n" rel="next">下一页 <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
<a href="services.html" class="btn btn-neutral float-right" title="4.2. 可用服务" accesskey="n" rel="next">下一页 <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; 版权所有 2025, 奥比中光科技集团股份有限公司 www.orbbec.com.。
<span class="lastupdated">最后更新于 2026年01月07日 06:53:11.
<span class="lastupdated">最后更新于 2026年01月13日 02:41:42.
</span></p>
</div>
@@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>4.6. 在ROS 2中启用和可视化点云 &mdash; OrbbecSDK V2 ROS2 封装 文档</title>
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=e59714d7" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=9edc463e" />
<link rel="stylesheet" type="text/css" href="../../../_static/custom.css?v=63de077d" />
@@ -16,9 +16,9 @@
<script src="../../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../../_static/documentation_options.js?v=7d86a446"></script>
<script src="../../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../_static/translations.js?v=beaddf03"></script>
<script src="../../../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../../../_static/sphinx_highlight.js?v=6ffebe34"></script>
<script src="../../../_static/translations.js?v=540d3cec"></script>
<script src="../../../_static/js/theme.js"></script>
<link rel="index" title="索引" href="../../../genindex.html" />
<link rel="search" title="搜索" href="../../../search.html" />
@@ -132,7 +132,7 @@
<li class="toctree-l4"><a class="reference internal" href="launch_parameters.html#id18">4.1.6. 深度滤波器</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="services.html">4.2. 所有可用的相机控制服务</a><ul>
<li class="toctree-l3"><a class="reference internal" href="services.html">4.2. 可用服务</a><ul>
<li class="toctree-l4"><a class="reference internal" href="services.html#id2">4.2.1. 数据流控制</a><ul>
<li class="toctree-l5"><a class="reference internal" href="services.html#id3">4.2.1.1. 彩色流</a></li>
<li class="toctree-l5"><a class="reference internal" href="services.html#id4">4.2.1.2. 深度流</a></li>
@@ -402,19 +402,19 @@
<div itemprop="articleBody">
<div class="lang-switch" style="margin:0 0 1em 0; font-size:0.9em;"><a class="lang-other" href="#">English</a> | <a class="lang-current" href="#">中文</a></div><script>(function(){var p=window.location.pathname;var isEn=p.indexOf('/en/')!==-1 && p.indexOf('/zh/')===-1;if(p.indexOf('/zh/')!==-1) isEn=false;var other = isEn ? p.replace(/\/en\//, '/zh/') : p.replace(/\/zh\//, '/en/');var current=p;var sw=document.querySelector('.lang-switch'); if(!sw) return;var o=sw.querySelector('.lang-other'); var c=sw.querySelector('.lang-current');if(isEn){ o.textContent='中文'; c.textContent='English'; } else { o.textContent='English'; c.textContent='中文'; }o.setAttribute('href', other); c.setAttribute('href', current);})();</script><section id="ros-2">
<h1><span class="section-number">4.6. </span>在ROS 2中启用和可视化点云<a class="headerlink" href="#ros-2" title="Link to this heading"></a></h1>
<h1><span class="section-number">4.6. </span>在ROS 2中启用和可视化点云<a class="headerlink" href="#ros-2" title="链接到此标题。"></a></h1>
<p>本节演示如何从相机节点启用点云数据输出并使用RViz2进行可视化。</p>
<section id="id1">
<h2><span class="section-number">4.6.1. </span>启用深度点云<a class="headerlink" href="#id1" title="Link to this heading"></a></h2>
<h2><span class="section-number">4.6.1. </span>启用深度点云<a class="headerlink" href="#id1" title="链接到此标题。"></a></h2>
<section id="id2">
<h3><span class="section-number">4.6.1.1. </span>启用深度点云的命令<a class="headerlink" href="#id2" title="Link to this heading"></a></h3>
<h3><span class="section-number">4.6.1.1. </span>启用深度点云的命令<a class="headerlink" href="#id2" title="链接到此标题。"></a></h3>
<p>要激活深度信息的点云数据流,使用以下命令:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>ros2<span class="w"> </span>launch<span class="w"> </span>orbbec_camera<span class="w"> </span>gemini_330_series.launch.py<span class="w"> </span>enable_point_cloud:<span class="o">=</span><span class="nb">true</span>
</pre></div>
</div>
</section>
<section id="rviz2">
<h3><span class="section-number">4.6.1.2. </span>在RViz2中可视化深度点云<a class="headerlink" href="#rviz2" title="Link to this heading"></a></h3>
<h3><span class="section-number">4.6.1.2. </span>在RViz2中可视化深度点云<a class="headerlink" href="#rviz2" title="链接到此标题。"></a></h3>
<p>运行上述命令后,执行以下步骤可视化深度点云:</p>
<ol class="simple">
<li><p>打开RViz2。</p></li>
@@ -430,16 +430,16 @@
</section>
</section>
<section id="id3">
<h2><span class="section-number">4.6.2. </span>启用彩色点云<a class="headerlink" href="#id3" title="Link to this heading"></a></h2>
<h2><span class="section-number">4.6.2. </span>启用彩色点云<a class="headerlink" href="#id3" title="链接到此标题。"></a></h2>
<section id="id4">
<h3><span class="section-number">4.6.2.1. </span>启用彩色点云的命令<a class="headerlink" href="#id4" title="Link to this heading"></a></h3>
<h3><span class="section-number">4.6.2.1. </span>启用彩色点云的命令<a class="headerlink" href="#id4" title="链接到此标题。"></a></h3>
<p>要启用彩色点云功能,输入以下命令:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>ros2<span class="w"> </span>launch<span class="w"> </span>orbbec_camera<span class="w"> </span>gemini_330_series.launch.py<span class="w"> </span>enable_colored_point_cloud:<span class="o">=</span><span class="nb">true</span>
</pre></div>
</div>
</section>
<section id="id5">
<h3><span class="section-number">4.6.2.2. </span>在RViz2中可视化彩色点云<a class="headerlink" href="#id5" title="Link to this heading"></a></h3>
<h3><span class="section-number">4.6.2.2. </span>在RViz2中可视化彩色点云<a class="headerlink" href="#id5" title="链接到此标题。"></a></h3>
<p>要可视化彩色点云数据:</p>
<ol class="simple">
<li><p>执行命令后启动RViz2。</p></li>
@@ -468,7 +468,7 @@
<div role="contentinfo">
<p>&#169; 版权所有 2025, 奥比中光科技集团股份有限公司 www.orbbec.com.。
<span class="lastupdated">最后更新于 2026年01月07日 06:53:11.
<span class="lastupdated">最后更新于 2026年01月13日 02:41:42.
</span></p>
</div>
@@ -6,9 +6,9 @@
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>4.2. 所有可用的相机控制服务 &mdash; OrbbecSDK V2 ROS2 封装 文档</title>
<title>4.2. 可用服务 &mdash; OrbbecSDK V2 ROS2 封装 文档</title>
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=e59714d7" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=9edc463e" />
<link rel="stylesheet" type="text/css" href="../../../_static/custom.css?v=63de077d" />
@@ -16,9 +16,9 @@
<script src="../../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../../_static/documentation_options.js?v=7d86a446"></script>
<script src="../../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../_static/translations.js?v=beaddf03"></script>
<script src="../../../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../../../_static/sphinx_highlight.js?v=6ffebe34"></script>
<script src="../../../_static/translations.js?v=540d3cec"></script>
<script src="../../../_static/js/theme.js"></script>
<link rel="index" title="索引" href="../../../genindex.html" />
<link rel="search" title="搜索" href="../../../search.html" />
@@ -132,7 +132,7 @@
<li class="toctree-l4"><a class="reference internal" href="launch_parameters.html#id18">4.1.6. 深度滤波器</a></li>
</ul>
</li>
<li class="toctree-l3 current"><a class="current reference internal" href="#">4.2. 所有可用的相机控制服务</a><ul>
<li class="toctree-l3 current"><a class="current reference internal" href="#">4.2. 可用服务</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#id2">4.2.1. 数据流控制</a><ul>
<li class="toctree-l5"><a class="reference internal" href="#id3">4.2.1.1. 彩色流</a></li>
<li class="toctree-l5"><a class="reference internal" href="#id4">4.2.1.2. 深度流</a></li>
@@ -391,7 +391,7 @@
<li><a href="../../../index.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="../index.html">Camera Devices</a></li>
<li class="breadcrumb-item"><a href="application_guide.html"><span class="section-number">4. </span>应用指南</a></li>
<li class="breadcrumb-item active"><span class="section-number">4.2. </span>所有可用的相机控制服务</li>
<li class="breadcrumb-item active"><span class="section-number">4.2. </span>可用服务</li>
<li class="wy-breadcrumbs-aside">
<a href="../../../_sources/source/camera_devices/4_application_guide/services.md.txt" rel="nofollow"> 查看页面源码</a>
</li>
@@ -402,14 +402,14 @@
<div itemprop="articleBody">
<div class="lang-switch" style="margin:0 0 1em 0; font-size:0.9em;"><a class="lang-other" href="#">English</a> | <a class="lang-current" href="#">中文</a></div><script>(function(){var p=window.location.pathname;var isEn=p.indexOf('/en/')!==-1 && p.indexOf('/zh/')===-1;if(p.indexOf('/zh/')!==-1) isEn=false;var other = isEn ? p.replace(/\/en\//, '/zh/') : p.replace(/\/zh\//, '/en/');var current=p;var sw=document.querySelector('.lang-switch'); if(!sw) return;var o=sw.querySelector('.lang-other'); var c=sw.querySelector('.lang-current');if(isEn){ o.textContent='中文'; c.textContent='English'; } else { o.textContent='English'; c.textContent='中文'; }o.setAttribute('href', other); c.setAttribute('href', current);})();</script><section id="id1">
<h1><span class="section-number">4.2. </span>所有可用的相机控制服务<a class="headerlink" href="#id1" title="Link to this heading"></a></h1>
<h1><span class="section-number">4.2. </span>可用服务<a class="headerlink" href="#id1" title="链接到此标题。"></a></h1>
<blockquote>
<div><p><strong>注意:</strong> 与特定数据流相关的服务(例如 <code class="docutils literal notranslate"><span class="pre">/camera/set_color_*</span></code>)仅在启动文件中启用该数据流时可用(例如 <code class="docutils literal notranslate"><span class="pre">enable_color:=true</span></code>)。</p>
</div></blockquote>
<section id="id2">
<h2><span class="section-number">4.2.1. </span>数据流控制<a class="headerlink" href="#id2" title="Link to this heading"></a></h2>
<h2><span class="section-number">4.2.1. </span>数据流控制<a class="headerlink" href="#id2" title="链接到此标题。"></a></h2>
<section id="id3">
<h3><span class="section-number">4.2.1.1. </span>彩色流<a class="headerlink" href="#id3" title="Link to this heading"></a></h3>
<h3><span class="section-number">4.2.1.1. </span>彩色流<a class="headerlink" href="#id3" title="链接到此标题。"></a></h3>
<ul>
<li><p><code class="docutils literal notranslate"><span class="pre">/camera/toggle_color</span></code></p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>ros2<span class="w"> </span>service<span class="w"> </span>call<span class="w"> </span>/camera/toggle_color<span class="w"> </span>std_srvs/srv/SetBool<span class="w"> </span><span class="s1">&#39;{data: true}&#39;</span>
@@ -449,7 +449,7 @@ ros2<span class="w"> </span>service<span class="w"> </span>call<span class="w">
</ul>
</section>
<section id="id4">
<h3><span class="section-number">4.2.1.2. </span>深度流<a class="headerlink" href="#id4" title="Link to this heading"></a></h3>
<h3><span class="section-number">4.2.1.2. </span>深度流<a class="headerlink" href="#id4" title="链接到此标题。"></a></h3>
<ul>
<li><p><code class="docutils literal notranslate"><span class="pre">/camera/toggle_depth</span></code></p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>ros2<span class="w"> </span>service<span class="w"> </span>call<span class="w"> </span>/camera/toggle_depth<span class="w"> </span>std_srvs/srv/SetBool<span class="w"> </span><span class="s1">&#39;{data: true}&#39;</span>
@@ -489,7 +489,7 @@ ros2<span class="w"> </span>service<span class="w"> </span>call<span class="w">
</ul>
</section>
<section id="id5">
<h3><span class="section-number">4.2.1.3. </span>红外流<a class="headerlink" href="#id5" title="Link to this heading"></a></h3>
<h3><span class="section-number">4.2.1.3. </span>红外流<a class="headerlink" href="#id5" title="链接到此标题。"></a></h3>
<ul>
<li><p><code class="docutils literal notranslate"><span class="pre">/camera/toggle_ir</span></code></p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>ros2<span class="w"> </span>service<span class="w"> </span>call<span class="w"> </span>/camera/toggle_ir<span class="w"> </span>std_srvs/srv/SetBool<span class="w"> </span><span class="s1">&#39;{data: true}&#39;</span>
@@ -533,7 +533,7 @@ ros2<span class="w"> </span>service<span class="w"> </span>call<span class="w">
</ul>
</section>
<section id="id6">
<h3><span class="section-number">4.2.1.4. </span>所有数据流<a class="headerlink" href="#id6" title="Link to this heading"></a></h3>
<h3><span class="section-number">4.2.1.4. </span>所有数据流<a class="headerlink" href="#id6" title="链接到此标题。"></a></h3>
<ul>
<li><p><code class="docutils literal notranslate"><span class="pre">/camera/get_streams_enable</span></code> &amp; <code class="docutils literal notranslate"><span class="pre">/camera/set_streams_enable</span></code></p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>ros2<span class="w"> </span>service<span class="w"> </span>call<span class="w"> </span>/camera/get_streams_enable<span class="w"> </span>orbbec_camera_msgs/srv/GetBool<span class="w"> </span><span class="s1">&#39;{}&#39;</span>
@@ -545,7 +545,7 @@ ros2<span class="w"> </span>service<span class="w"> </span>call<span class="w">
</section>
</section>
<section id="id7">
<h2><span class="section-number">4.2.2. </span>传感器与发射器控制<a class="headerlink" href="#id7" title="Link to this heading"></a></h2>
<h2><span class="section-number">4.2.2. </span>传感器与发射器控制<a class="headerlink" href="#id7" title="链接到此标题。"></a></h2>
<ul>
<li><p><code class="docutils literal notranslate"><span class="pre">/camera/set_auto_white_balance</span></code> &amp; <code class="docutils literal notranslate"><span class="pre">/camera/get_auto_white_balance</span></code></p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>ros2<span class="w"> </span>service<span class="w"> </span>call<span class="w"> </span>/camera/set_auto_white_balance<span class="w"> </span>std_srvs/srv/SetBool<span class="w"> </span><span class="s1">&#39;{data: true}&#39;</span>
@@ -598,7 +598,7 @@ ros2<span class="w"> </span>service<span class="w"> </span>call<span class="w">
</ul>
</section>
<section id="id8">
<h2><span class="section-number">4.2.3. </span>设备信息与管理<a class="headerlink" href="#id8" title="Link to this heading"></a></h2>
<h2><span class="section-number">4.2.3. </span>设备信息与管理<a class="headerlink" href="#id8" title="链接到此标题。"></a></h2>
<ul>
<li><p><code class="docutils literal notranslate"><span class="pre">/camera/get_device_info</span></code></p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>ros2<span class="w"> </span>service<span class="w"> </span>call<span class="w"> </span>/camera/get_device_info<span class="w"> </span>orbbec_camera_msgs/srv/GetDeviceInfo
@@ -618,7 +618,7 @@ ros2<span class="w"> </span>service<span class="w"> </span>call<span class="w">
</ul>
</section>
<section id="id9">
<h2><span class="section-number">4.2.4. </span>同步与触发<a class="headerlink" href="#id9" title="Link to this heading"></a></h2>
<h2><span class="section-number">4.2.4. </span>同步与触发<a class="headerlink" href="#id9" title="链接到此标题。"></a></h2>
<ul>
<li><p><code class="docutils literal notranslate"><span class="pre">/camera/send_software_trigger</span></code></p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>ros2<span class="w"> </span>service<span class="w"> </span>call<span class="w"> </span>/camera/send_software_trigger<span class="w"> </span>std_srvs/srv/SetBool<span class="w"> </span><span class="s1">&#39;{data: true}&#39;</span>
@@ -645,7 +645,7 @@ ros2<span class="w"> </span>service<span class="w"> </span>call<span class="w">
</ul>
</section>
<section id="id10">
<h2><span class="section-number">4.2.5. </span>深度滤波器配置<a class="headerlink" href="#id10" title="Link to this heading"></a></h2>
<h2><span class="section-number">4.2.5. </span>深度滤波器配置<a class="headerlink" href="#id10" title="链接到此标题。"></a></h2>
<ul>
<li><p><code class="docutils literal notranslate"><span class="pre">/camera/set_filter</span></code></p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># 设置DecimationFilter</span>
@@ -679,7 +679,7 @@ ros2<span class="w"> </span>service<span class="w"> </span>call<span class="w">
</ul>
</section>
<section id="id11">
<h2><span class="section-number">4.2.6. </span>数据捕获与校准管理<a class="headerlink" href="#id11" title="Link to this heading"></a></h2>
<h2><span class="section-number">4.2.6. </span>数据捕获与校准管理<a class="headerlink" href="#id11" title="链接到此标题。"></a></h2>
<ul>
<li><p><code class="docutils literal notranslate"><span class="pre">/camera/save_images</span></code></p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>ros2<span class="w"> </span>service<span class="w"> </span>call<span class="w"> </span>/camera/save_images<span class="w"> </span>std_srvs/srv/Empty<span class="w"> </span><span class="s1">&#39;{}&#39;</span>
@@ -726,7 +726,7 @@ ros2<span class="w"> </span>service<span class="w"> </span>call<span class="w">
</ul>
</section>
<section id="id12">
<h2><span class="section-number">4.2.7. </span>点云下采样<a class="headerlink" href="#id12" title="Link to this heading"></a></h2>
<h2><span class="section-number">4.2.7. </span>点云下采样<a class="headerlink" href="#id12" title="链接到此标题。"></a></h2>
<ul>
<li><p><code class="docutils literal notranslate"><span class="pre">/camera/set_point_cloud_decimation</span></code></p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>ros2<span class="w"> </span>service<span class="w"> </span>call<span class="w"> </span>/camera/set_point_cloud_decimation<span class="w"> </span>orbbec_camera_msgs/srv/SetInt32<span class="w"> </span><span class="s1">&#39;{data: 8}&#39;</span>
@@ -754,7 +754,7 @@ ros2<span class="w"> </span>service<span class="w"> </span>call<span class="w">
<div role="contentinfo">
<p>&#169; 版权所有 2025, 奥比中光科技集团股份有限公司 www.orbbec.com.。
<span class="lastupdated">最后更新于 2026年01月07日 06:53:11.
<span class="lastupdated">最后更新于 2026年01月13日 02:41:42.
</span></p>
</div>
@@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>4.3. 可用话题 &mdash; OrbbecSDK V2 ROS2 封装 文档</title>
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=e59714d7" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=9edc463e" />
<link rel="stylesheet" type="text/css" href="../../../_static/custom.css?v=63de077d" />
@@ -16,14 +16,14 @@
<script src="../../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../../_static/documentation_options.js?v=7d86a446"></script>
<script src="../../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../_static/translations.js?v=beaddf03"></script>
<script src="../../../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../../../_static/sphinx_highlight.js?v=6ffebe34"></script>
<script src="../../../_static/translations.js?v=540d3cec"></script>
<script src="../../../_static/js/theme.js"></script>
<link rel="index" title="索引" href="../../../genindex.html" />
<link rel="search" title="搜索" href="../../../search.html" />
<link rel="next" title="4.4. 坐标系和 TF 变换" href="coordinate_and_tf.html" />
<link rel="prev" title="4.2. 所有可用的相机控制服务" href="services.html" />
<link rel="prev" title="4.2. 可用服务" href="services.html" />
</head>
<body class="wy-body-for-nav">
@@ -132,7 +132,7 @@
<li class="toctree-l4"><a class="reference internal" href="launch_parameters.html#id18">4.1.6. 深度滤波器</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="services.html">4.2. 所有可用的相机控制服务</a><ul>
<li class="toctree-l3"><a class="reference internal" href="services.html">4.2. 可用服务</a><ul>
<li class="toctree-l4"><a class="reference internal" href="services.html#id2">4.2.1. 数据流控制</a><ul>
<li class="toctree-l5"><a class="reference internal" href="services.html#id3">4.2.1.1. 彩色流</a></li>
<li class="toctree-l5"><a class="reference internal" href="services.html#id4">4.2.1.2. 深度流</a></li>
@@ -402,13 +402,13 @@
<div itemprop="articleBody">
<div class="lang-switch" style="margin:0 0 1em 0; font-size:0.9em;"><a class="lang-other" href="#">English</a> | <a class="lang-current" href="#">中文</a></div><script>(function(){var p=window.location.pathname;var isEn=p.indexOf('/en/')!==-1 && p.indexOf('/zh/')===-1;if(p.indexOf('/zh/')!==-1) isEn=false;var other = isEn ? p.replace(/\/en\//, '/zh/') : p.replace(/\/zh\//, '/en/');var current=p;var sw=document.querySelector('.lang-switch'); if(!sw) return;var o=sw.querySelector('.lang-other'); var c=sw.querySelector('.lang-current');if(isEn){ o.textContent='中文'; c.textContent='English'; } else { o.textContent='English'; c.textContent='中文'; }o.setAttribute('href', other); c.setAttribute('href', current);})();</script><section id="id1">
<h1><span class="section-number">4.3. </span>可用话题<a class="headerlink" href="#id1" title="Link to this heading"></a></h1>
<h1><span class="section-number">4.3. </span>可用话题<a class="headerlink" href="#id1" title="链接到此标题。"></a></h1>
<p>话题按数据流和功能组织。默认情况下,所有话题都发布在 <code class="docutils literal notranslate"><span class="pre">/camera</span></code> 命名空间下,可以通过 <code class="docutils literal notranslate"><span class="pre">camera_name</span></code> 启动参数进行更改。</p>
<blockquote>
<div><p><strong>注意:</strong> 特定数据流的话题(例如 <code class="docutils literal notranslate"><span class="pre">/camera/color/...</span></code>)只有在相应的启动参数(例如 <code class="docutils literal notranslate"><span class="pre">enable_color</span></code>)设置为 <code class="docutils literal notranslate"><span class="pre">true</span></code> 时才会发布。</p>
</div></blockquote>
<section id="id2">
<h2><span class="section-number">4.3.1. </span>图像流<a class="headerlink" href="#id2" title="Link to this heading"></a></h2>
<h2><span class="section-number">4.3.1. </span>图像流<a class="headerlink" href="#id2" title="链接到此标题。"></a></h2>
<p>这些话题提供每个启用的相机数据流的原始图像数据和相应的校准信息。对于 <code class="docutils literal notranslate"><span class="pre">color</span></code>、<code class="docutils literal notranslate"><span class="pre">depth</span></code>、<code class="docutils literal notranslate"><span class="pre">ir</span></code>、<code class="docutils literal notranslate"><span class="pre">left_ir</span></code> 和 <code class="docutils literal notranslate"><span class="pre">right_ir</span></code> 数据流,模式是一致的。</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">/camera/color/image_raw</span></code></p>
@@ -459,7 +459,7 @@
</ul>
</section>
<section id="id3">
<h2><span class="section-number">4.3.2. </span>点云话题<a class="headerlink" href="#id3" title="Link to this heading"></a></h2>
<h2><span class="section-number">4.3.2. </span>点云话题<a class="headerlink" href="#id3" title="链接到此标题。"></a></h2>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">/camera/depth/points</span></code></p>
<ul>
@@ -476,7 +476,7 @@
</ul>
</section>
<section id="imu">
<h2><span class="section-number">4.3.3. </span>IMU话题<a class="headerlink" href="#imu" title="Link to this heading"></a></h2>
<h2><span class="section-number">4.3.3. </span>IMU话题<a class="headerlink" href="#imu" title="链接到此标题。"></a></h2>
<p>惯性测量单元(IMU)话题提供加速度计和陀螺仪数据。其行为取决于同步设置。</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">/camera/accel/sample</span></code></p>
@@ -500,7 +500,7 @@
</ul>
</section>
<section id="id4">
<h2><span class="section-number">4.3.4. </span>设备状态与诊断<a class="headerlink" href="#id4" title="Link to this heading"></a></h2>
<h2><span class="section-number">4.3.4. </span>设备状态与诊断<a class="headerlink" href="#id4" title="链接到此标题。"></a></h2>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">/camera/device_status</span></code></p>
<ul>
@@ -525,7 +525,7 @@
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="页脚">
<a href="services.html" class="btn btn-neutral float-left" title="4.2. 所有可用的相机控制服务" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> 上一页</a>
<a href="services.html" class="btn btn-neutral float-left" title="4.2. 可用服务" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> 上一页</a>
<a href="coordinate_and_tf.html" class="btn btn-neutral float-right" title="4.4. 坐标系和 TF 变换" accesskey="n" rel="next">下一页 <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
@@ -533,7 +533,7 @@
<div role="contentinfo">
<p>&#169; 版权所有 2025, 奥比中光科技集团股份有限公司 www.orbbec.com.。
<span class="lastupdated">最后更新于 2026年01月07日 06:53:11.
<span class="lastupdated">最后更新于 2026年01月13日 02:41:42.
</span></p>
</div>
@@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>5. 高级指南 &mdash; OrbbecSDK V2 ROS2 封装 文档</title>
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=e59714d7" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=9edc463e" />
<link rel="stylesheet" type="text/css" href="../../../_static/custom.css?v=63de077d" />
@@ -16,9 +16,9 @@
<script src="../../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../../_static/documentation_options.js?v=7d86a446"></script>
<script src="../../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../_static/translations.js?v=beaddf03"></script>
<script src="../../../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../../../_static/sphinx_highlight.js?v=6ffebe34"></script>
<script src="../../../_static/translations.js?v=540d3cec"></script>
<script src="../../../_static/js/theme.js"></script>
<link rel="index" title="索引" href="../../../genindex.html" />
<link rel="search" title="搜索" href="../../../search.html" />
@@ -132,7 +132,7 @@
<li class="toctree-l4"><a class="reference internal" href="../4_application_guide/launch_parameters.html#id18">4.1.6. 深度滤波器</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../4_application_guide/services.html">4.2. 所有可用的相机控制服务</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../4_application_guide/services.html">4.2. 可用服务</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../4_application_guide/services.html#id2">4.2.1. 数据流控制</a><ul>
<li class="toctree-l5"><a class="reference internal" href="../4_application_guide/services.html#id3">4.2.1.1. 彩色流</a></li>
<li class="toctree-l5"><a class="reference internal" href="../4_application_guide/services.html#id4">4.2.1.2. 深度流</a></li>
@@ -401,10 +401,10 @@
<div itemprop="articleBody">
<div class="lang-switch" style="margin:0 0 1em 0; font-size:0.9em;"><a class="lang-other" href="#">English</a> | <a class="lang-current" href="#">中文</a></div><script>(function(){var p=window.location.pathname;var isEn=p.indexOf('/en/')!==-1 && p.indexOf('/zh/')===-1;if(p.indexOf('/zh/')!==-1) isEn=false;var other = isEn ? p.replace(/\/en\//, '/zh/') : p.replace(/\/zh\//, '/en/');var current=p;var sw=document.querySelector('.lang-switch'); if(!sw) return;var o=sw.querySelector('.lang-other'); var c=sw.querySelector('.lang-current');if(isEn){ o.textContent='中文'; c.textContent='English'; } else { o.textContent='English'; c.textContent='中文'; }o.setAttribute('href', other); c.setAttribute('href', current);})();</script><section id="id1">
<h1><span class="section-number">5. </span>高级指南<a class="headerlink" href="#id1" title="Link to this heading"></a></h1>
<h1><span class="section-number">5. </span>高级指南<a class="headerlink" href="#id1" title="链接到此标题。"></a></h1>
<p>本章介绍SDK的高级功能,包括多相机使用和特殊配置模式。</p>
<section id="id2">
<h2><span class="section-number">5.1. </span>性能与优化<a class="headerlink" href="#id2" title="Link to this heading"></a></h2>
<h2><span class="section-number">5.1. </span>性能与优化<a class="headerlink" href="#id2" title="链接到此标题。"></a></h2>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="performance/lower_cpu_usage.html">5.1.1. 使用Orbbec ROS包降低CPU使用率</a><ul>
@@ -430,7 +430,7 @@
</div>
</section>
<section id="id3">
<h2><span class="section-number">5.2. </span>多相机<a class="headerlink" href="#id3" title="Link to this heading"></a></h2>
<h2><span class="section-number">5.2. </span>多相机<a class="headerlink" href="#id3" title="链接到此标题。"></a></h2>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="multi_camera/multi_camera.html">5.2.1. 多相机</a><ul>
@@ -461,7 +461,7 @@
</div>
</section>
<section id="id4">
<h2><span class="section-number">5.3. </span>配置与模式<a class="headerlink" href="#id4" title="Link to this heading"></a></h2>
<h2><span class="section-number">5.3. </span>配置与模式<a class="headerlink" href="#id4" title="链接到此标题。"></a></h2>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="configuration/align_depth_color.html">5.3.1. 在 ROS 2 中对齐深度到彩色</a><ul>
@@ -508,7 +508,7 @@
<div role="contentinfo">
<p>&#169; 版权所有 2025, 奥比中光科技集团股份有限公司 www.orbbec.com.。
<span class="lastupdated">最后更新于 2026年01月07日 06:53:11.
<span class="lastupdated">最后更新于 2026年01月13日 02:41:42.
</span></p>
</div>
@@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>5.3.1. 在 ROS 2 中对齐深度到彩色 &mdash; OrbbecSDK V2 ROS2 封装 文档</title>
<link rel="stylesheet" type="text/css" href="../../../../_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="../../../../_static/css/theme.css?v=e59714d7" />
<link rel="stylesheet" type="text/css" href="../../../../_static/css/theme.css?v=9edc463e" />
<link rel="stylesheet" type="text/css" href="../../../../_static/custom.css?v=63de077d" />
@@ -16,9 +16,9 @@
<script src="../../../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../../../_static/documentation_options.js?v=7d86a446"></script>
<script src="../../../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../../_static/translations.js?v=beaddf03"></script>
<script src="../../../../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../../../../_static/sphinx_highlight.js?v=6ffebe34"></script>
<script src="../../../../_static/translations.js?v=540d3cec"></script>
<script src="../../../../_static/js/theme.js"></script>
<link rel="index" title="索引" href="../../../../genindex.html" />
<link rel="search" title="搜索" href="../../../../search.html" />
@@ -132,7 +132,7 @@
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/launch_parameters.html#id18">4.1.6. 深度滤波器</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/services.html">4.2. 所有可用的相机控制服务</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/services.html">4.2. 可用服务</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/services.html#id2">4.2.1. 数据流控制</a><ul>
<li class="toctree-l5"><a class="reference internal" href="../../4_application_guide/services.html#id3">4.2.1.1. 彩色流</a></li>
<li class="toctree-l5"><a class="reference internal" href="../../4_application_guide/services.html#id4">4.2.1.2. 深度流</a></li>
@@ -402,10 +402,10 @@
<div itemprop="articleBody">
<div class="lang-switch" style="margin:0 0 1em 0; font-size:0.9em;"><a class="lang-other" href="#">English</a> | <a class="lang-current" href="#">中文</a></div><script>(function(){var p=window.location.pathname;var isEn=p.indexOf('/en/')!==-1 && p.indexOf('/zh/')===-1;if(p.indexOf('/zh/')!==-1) isEn=false;var other = isEn ? p.replace(/\/en\//, '/zh/') : p.replace(/\/zh\//, '/en/');var current=p;var sw=document.querySelector('.lang-switch'); if(!sw) return;var o=sw.querySelector('.lang-other'); var c=sw.querySelector('.lang-current');if(isEn){ o.textContent='中文'; c.textContent='English'; } else { o.textContent='English'; c.textContent='中文'; }o.setAttribute('href', other); c.setAttribute('href', current);})();</script><section id="ros-2">
<h1><span class="section-number">5.3.1. </span>在 ROS 2 中对齐深度到彩色<a class="headerlink" href="#ros-2" title="Link to this heading"></a></h1>
<h1><span class="section-number">5.3.1. </span>在 ROS 2 中对齐深度到彩色<a class="headerlink" href="#ros-2" title="链接到此标题。"></a></h1>
<p>本节说明如何使用 ROS 2 将深度图像与彩色图像对齐以创建叠加图像。这对于需要来自不同传感器模态的同步视觉信息的应用特别有用。</p>
<section id="id1">
<h2><span class="section-number">5.3.1.1. </span>对齐和查看深度和彩色图像的命令<a class="headerlink" href="#id1" title="Link to this heading"></a></h2>
<h2><span class="section-number">5.3.1.1. </span>对齐和查看深度和彩色图像的命令<a class="headerlink" href="#id1" title="链接到此标题。"></a></h2>
<ol>
<li><p><strong>基本深度到彩色对齐:</strong></p>
<p>要简单地将深度图像对齐到彩色图像,请使用以下命令:</p>
@@ -424,7 +424,7 @@
</ol>
</section>
<section id="rviz2">
<h2><span class="section-number">5.3.1.2. </span>在 RViz2 中选择话题<a class="headerlink" href="#rviz2" title="Link to this heading"></a></h2>
<h2><span class="section-number">5.3.1.2. </span>在 RViz2 中选择话题<a class="headerlink" href="#rviz2" title="链接到此标题。"></a></h2>
<p>要在 RViz2 中可视化对齐的图像:</p>
<ol>
<li><p>运行上述命令之一后启动 RViz2。</p></li>
@@ -434,7 +434,7 @@
</ol>
</section>
<section id="id2">
<h2><span class="section-number">5.3.1.3. </span>深度到彩色叠加示例<a class="headerlink" href="#id2" title="Link to this heading"></a></h2>
<h2><span class="section-number">5.3.1.3. </span>深度到彩色叠加示例<a class="headerlink" href="#id2" title="链接到此标题。"></a></h2>
<p>在 RViz2 中选择适当的话题后,您将能够看到深度到彩色叠加图像。它可能看起来像这样:</p>
<p><img alt="深度到彩色叠加图像" src="../../../../_images/image4.jpg" /></p>
</section>
@@ -452,7 +452,7 @@
<div role="contentinfo">
<p>&#169; 版权所有 2025, 奥比中光科技集团股份有限公司 www.orbbec.com.。
<span class="lastupdated">最后更新于 2026年01月07日 06:53:11.
<span class="lastupdated">最后更新于 2026年01月13日 02:41:42.
</span></p>
</div>
@@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>5.3.2. 深度 NFOV 和 WFOV 模式配置 &mdash; OrbbecSDK V2 ROS2 封装 文档</title>
<link rel="stylesheet" type="text/css" href="../../../../_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="../../../../_static/css/theme.css?v=e59714d7" />
<link rel="stylesheet" type="text/css" href="../../../../_static/css/theme.css?v=9edc463e" />
<link rel="stylesheet" type="text/css" href="../../../../_static/custom.css?v=63de077d" />
@@ -16,9 +16,9 @@
<script src="../../../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../../../_static/documentation_options.js?v=7d86a446"></script>
<script src="../../../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../../_static/translations.js?v=beaddf03"></script>
<script src="../../../../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../../../../_static/sphinx_highlight.js?v=6ffebe34"></script>
<script src="../../../../_static/translations.js?v=540d3cec"></script>
<script src="../../../../_static/js/theme.js"></script>
<link rel="index" title="索引" href="../../../../genindex.html" />
<link rel="search" title="搜索" href="../../../../search.html" />
@@ -132,7 +132,7 @@
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/launch_parameters.html#id18">4.1.6. 深度滤波器</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/services.html">4.2. 所有可用的相机控制服务</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/services.html">4.2. 可用服务</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/services.html#id2">4.2.1. 数据流控制</a><ul>
<li class="toctree-l5"><a class="reference internal" href="../../4_application_guide/services.html#id3">4.2.1.1. 彩色流</a></li>
<li class="toctree-l5"><a class="reference internal" href="../../4_application_guide/services.html#id4">4.2.1.2. 深度流</a></li>
@@ -402,7 +402,7 @@
<div itemprop="articleBody">
<div class="lang-switch" style="margin:0 0 1em 0; font-size:0.9em;"><a class="lang-other" href="#">English</a> | <a class="lang-current" href="#">中文</a></div><script>(function(){var p=window.location.pathname;var isEn=p.indexOf('/en/')!==-1 && p.indexOf('/zh/')===-1;if(p.indexOf('/zh/')!==-1) isEn=false;var other = isEn ? p.replace(/\/en\//, '/zh/') : p.replace(/\/zh\//, '/en/');var current=p;var sw=document.querySelector('.lang-switch'); if(!sw) return;var o=sw.querySelector('.lang-other'); var c=sw.querySelector('.lang-current');if(isEn){ o.textContent='中文'; c.textContent='English'; } else { o.textContent='English'; c.textContent='中文'; }o.setAttribute('href', other); c.setAttribute('href', current);})();</script><section id="nfov-wfov">
<h1><span class="section-number">5.3.2. </span>深度 NFOV 和 WFOV 模式配置<a class="headerlink" href="#nfov-wfov" title="Link to this heading"></a></h1>
<h1><span class="section-number">5.3.2. </span>深度 NFOV 和 WFOV 模式配置<a class="headerlink" href="#nfov-wfov" title="链接到此标题。"></a></h1>
<p>对于 Femto Mega 和 Femto Bolt 设备,NFOV 和 WFOV 模式通过在启动文件中配置深度和 IR 的分辨率来实现。</p>
<p>在启动文件中,depth_width、depth_height、ir_width、ir_height 分别表示深度的分辨率和 IR 的分辨率。</p>
<p>IR 的帧率和分辨率必须与深度保持一致。不同模式与分辨率的对应关系如下:</p>
@@ -426,7 +426,7 @@
<div role="contentinfo">
<p>&#169; 版权所有 2025, 奥比中光科技集团股份有限公司 www.orbbec.com.。
<span class="lastupdated">最后更新于 2026年01月07日 06:53:11.
<span class="lastupdated">最后更新于 2026年01月13日 02:41:42.
</span></p>
</div>
@@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>5.3.3. 深度工作模式切换 &mdash; OrbbecSDK V2 ROS2 封装 文档</title>
<link rel="stylesheet" type="text/css" href="../../../../_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="../../../../_static/css/theme.css?v=e59714d7" />
<link rel="stylesheet" type="text/css" href="../../../../_static/css/theme.css?v=9edc463e" />
<link rel="stylesheet" type="text/css" href="../../../../_static/custom.css?v=63de077d" />
@@ -16,9 +16,9 @@
<script src="../../../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../../../_static/documentation_options.js?v=7d86a446"></script>
<script src="../../../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../../_static/translations.js?v=beaddf03"></script>
<script src="../../../../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../../../../_static/sphinx_highlight.js?v=6ffebe34"></script>
<script src="../../../../_static/translations.js?v=540d3cec"></script>
<script src="../../../../_static/js/theme.js"></script>
<link rel="index" title="索引" href="../../../../genindex.html" />
<link rel="search" title="搜索" href="../../../../search.html" />
@@ -132,7 +132,7 @@
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/launch_parameters.html#id18">4.1.6. 深度滤波器</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/services.html">4.2. 所有可用的相机控制服务</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/services.html">4.2. 可用服务</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/services.html#id2">4.2.1. 数据流控制</a><ul>
<li class="toctree-l5"><a class="reference internal" href="../../4_application_guide/services.html#id3">4.2.1.1. 彩色流</a></li>
<li class="toctree-l5"><a class="reference internal" href="../../4_application_guide/services.html#id4">4.2.1.2. 深度流</a></li>
@@ -402,8 +402,8 @@
<div itemprop="articleBody">
<div class="lang-switch" style="margin:0 0 1em 0; font-size:0.9em;"><a class="lang-other" href="#">English</a> | <a class="lang-current" href="#">中文</a></div><script>(function(){var p=window.location.pathname;var isEn=p.indexOf('/en/')!==-1 && p.indexOf('/zh/')===-1;if(p.indexOf('/zh/')!==-1) isEn=false;var other = isEn ? p.replace(/\/en\//, '/zh/') : p.replace(/\/zh\//, '/en/');var current=p;var sw=document.querySelector('.lang-switch'); if(!sw) return;var o=sw.querySelector('.lang-other'); var c=sw.querySelector('.lang-current');if(isEn){ o.textContent='中文'; c.textContent='English'; } else { o.textContent='English'; c.textContent='中文'; }o.setAttribute('href', other); c.setAttribute('href', current);})();</script><section id="id1">
<h1><span class="section-number">5.3.3. </span>深度工作模式切换<a class="headerlink" href="#id1" title="Link to this heading"></a></h1>
<p>Orbbec SDK ROS 2 支持深度工作模式切换。Gemini 2、Gemini 2 L 和 Femto 以及 Femto Bolt 相机支持深度工作模式切换。</p>
<h1><span class="section-number">5.3.3. </span>深度工作模式切换<a class="headerlink" href="#id1" title="链接到此标题。"></a></h1>
<p>Orbbec SDK ROS 2 支持深度工作模式切换。Gemini 2 和 Gemini 2 L 相机支持深度工作模式切换。</p>
<ul class="simple">
<li><p>在启动相机之前,可以为相应的 xxx.launch.py 文件的支持配置深度工作模式(depth_work_mode)。</p></li>
<li><p>Gemini 2、Gemini 2 L 和 Gemini 2 XL 相机支持深度工作模式切换。</p></li>
@@ -444,7 +444,7 @@
<div role="contentinfo">
<p>&#169; 版权所有 2025, 奥比中光科技集团股份有限公司 www.orbbec.com.。
<span class="lastupdated">最后更新于 2026年01月07日 06:53:11.
<span class="lastupdated">最后更新于 2026年01月13日 02:41:42.
</span></p>
</div>
@@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>5.3.4. 视差搜索偏移 &mdash; OrbbecSDK V2 ROS2 封装 文档</title>
<link rel="stylesheet" type="text/css" href="../../../../_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="../../../../_static/css/theme.css?v=e59714d7" />
<link rel="stylesheet" type="text/css" href="../../../../_static/css/theme.css?v=9edc463e" />
<link rel="stylesheet" type="text/css" href="../../../../_static/custom.css?v=63de077d" />
@@ -16,9 +16,9 @@
<script src="../../../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../../../_static/documentation_options.js?v=7d86a446"></script>
<script src="../../../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../../_static/translations.js?v=beaddf03"></script>
<script src="../../../../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../../../../_static/sphinx_highlight.js?v=6ffebe34"></script>
<script src="../../../../_static/translations.js?v=540d3cec"></script>
<script src="../../../../_static/js/theme.js"></script>
<link rel="index" title="索引" href="../../../../genindex.html" />
<link rel="search" title="搜索" href="../../../../search.html" />
@@ -132,7 +132,7 @@
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/launch_parameters.html#id18">4.1.6. 深度滤波器</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/services.html">4.2. 所有可用的相机控制服务</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/services.html">4.2. 可用服务</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/services.html#id2">4.2.1. 数据流控制</a><ul>
<li class="toctree-l5"><a class="reference internal" href="../../4_application_guide/services.html#id3">4.2.1.1. 彩色流</a></li>
<li class="toctree-l5"><a class="reference internal" href="../../4_application_guide/services.html#id4">4.2.1.2. 深度流</a></li>
@@ -402,17 +402,17 @@
<div itemprop="articleBody">
<div class="lang-switch" style="margin:0 0 1em 0; font-size:0.9em;"><a class="lang-other" href="#">English</a> | <a class="lang-current" href="#">中文</a></div><script>(function(){var p=window.location.pathname;var isEn=p.indexOf('/en/')!==-1 && p.indexOf('/zh/')===-1;if(p.indexOf('/zh/')!==-1) isEn=false;var other = isEn ? p.replace(/\/en\//, '/zh/') : p.replace(/\/zh\//, '/en/');var current=p;var sw=document.querySelector('.lang-switch'); if(!sw) return;var o=sw.querySelector('.lang-other'); var c=sw.querySelector('.lang-current');if(isEn){ o.textContent='中文'; c.textContent='English'; } else { o.textContent='English'; c.textContent='中文'; }o.setAttribute('href', other); c.setAttribute('href', current);})();</script><section id="id1">
<h1><span class="section-number">5.3.4. </span>视差搜索偏移<a class="headerlink" href="#id1" title="Link to this heading"></a></h1>
<h1><span class="section-number">5.3.4. </span>视差搜索偏移<a class="headerlink" href="#id1" title="链接到此标题。"></a></h1>
<blockquote>
<div><p>本节介绍如何在 Gemini330 系列相机中使用 disparity_search_offset 功能(相机固件最低版本 <a class="reference external" href="https://www.orbbec.com/docs/g330-firmware-release/">1.4.60</a>)。Disparity_search_offset 仅对深度流的 1280×720、1280×800 和 640×400 分辨率有效。</p>
</div></blockquote>
<section id="id2">
<h2><span class="section-number">5.3.4.1. </span>功能介绍<a class="headerlink" href="#id2" title="Link to this heading"></a></h2>
<h2><span class="section-number">5.3.4.1. </span>功能介绍<a class="headerlink" href="#id2" title="链接到此标题。"></a></h2>
<p>视差搜索范围的定义:对于左图像中的任何像素 <em>(u_l, v)</em>,默认情况下,右图像中对应的视差搜索范围为 <em>[ (u_l - 255, v)</em>, <em>(u_l, v) ]</em>,其中视差搜索长度为 256,最大整数视差为 255。如果将搜索的起点调整为 <em>[ (u_l - 255 - offset, v)</em>, <em>(u_l - offset, v) ]</em>,则偏移量定义为视差偏移。因此,我们的视差搜索范围配置包括视差搜索长度和搜索位置偏移(也可称为视差偏移)。</p>
<p><img alt="深度点云可视化" src="../../../../_images/search_offset0.png" /></p>
</section>
<section id="id3">
<h2><span class="section-number">5.3.4.2. </span>参数介绍<a class="headerlink" href="#id3" title="Link to this heading"></a></h2>
<h2><span class="section-number">5.3.4.2. </span>参数介绍<a class="headerlink" href="#id3" title="链接到此标题。"></a></h2>
<p>disparity_search_offset 相关参数在 <a class="reference external" href="https://github.com/orbbec/OrbbecSDK_ROS2/blob/v2-main/orbbec_camera/launch/gemini_330_series.launch.py">gemini_330_series.launch.py</a> 中设置</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">disparity_range_mode</span></code>:视差搜索长度,只能设置为 64、128 和 256。</p></li>
@@ -488,7 +488,7 @@
</tbody>
</table></section>
<section id="id4">
<h2><span class="section-number">5.3.4.3. </span>运行启动文件<a class="headerlink" href="#id4" title="Link to this heading"></a></h2>
<h2><span class="section-number">5.3.4.3. </span>运行启动文件<a class="headerlink" href="#id4" title="链接到此标题。"></a></h2>
<p>设置 disparity_search_offset 参数,重新 <code class="docutils literal notranslate"><span class="pre">colcon</span> <span class="pre">build</span></code> 并运行启动文件</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>ros2<span class="w"> </span>launch<span class="w"> </span>orbbec_camera<span class="w"> </span>gemini_330_series.launch.py
</pre></div>
@@ -508,7 +508,7 @@
<div role="contentinfo">
<p>&#169; 版权所有 2025, 奥比中光科技集团股份有限公司 www.orbbec.com.。
<span class="lastupdated">最后更新于 2026年01月07日 06:53:11.
<span class="lastupdated">最后更新于 2026年01月13日 02:41:42.
</span></p>
</div>
@@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>5.3.5. 在 Gemini330 系列相机中使用 interleave_ae &mdash; OrbbecSDK V2 ROS2 封装 文档</title>
<link rel="stylesheet" type="text/css" href="../../../../_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="../../../../_static/css/theme.css?v=e59714d7" />
<link rel="stylesheet" type="text/css" href="../../../../_static/css/theme.css?v=9edc463e" />
<link rel="stylesheet" type="text/css" href="../../../../_static/custom.css?v=63de077d" />
@@ -16,9 +16,9 @@
<script src="../../../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../../../_static/documentation_options.js?v=7d86a446"></script>
<script src="../../../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../../_static/translations.js?v=beaddf03"></script>
<script src="../../../../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../../../../_static/sphinx_highlight.js?v=6ffebe34"></script>
<script src="../../../../_static/translations.js?v=540d3cec"></script>
<script src="../../../../_static/js/theme.js"></script>
<link rel="index" title="索引" href="../../../../genindex.html" />
<link rel="search" title="搜索" href="../../../../search.html" />
@@ -132,7 +132,7 @@
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/launch_parameters.html#id18">4.1.6. 深度滤波器</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/services.html">4.2. 所有可用的相机控制服务</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/services.html">4.2. 可用服务</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/services.html#id2">4.2.1. 数据流控制</a><ul>
<li class="toctree-l5"><a class="reference internal" href="../../4_application_guide/services.html#id3">4.2.1.1. 彩色流</a></li>
<li class="toctree-l5"><a class="reference internal" href="../../4_application_guide/services.html#id4">4.2.1.2. 深度流</a></li>
@@ -402,12 +402,12 @@
<div itemprop="articleBody">
<div class="lang-switch" style="margin:0 0 1em 0; font-size:0.9em;"><a class="lang-other" href="#">English</a> | <a class="lang-current" href="#">中文</a></div><script>(function(){var p=window.location.pathname;var isEn=p.indexOf('/en/')!==-1 && p.indexOf('/zh/')===-1;if(p.indexOf('/zh/')!==-1) isEn=false;var other = isEn ? p.replace(/\/en\//, '/zh/') : p.replace(/\/zh\//, '/en/');var current=p;var sw=document.querySelector('.lang-switch'); if(!sw) return;var o=sw.querySelector('.lang-other'); var c=sw.querySelector('.lang-current');if(isEn){ o.textContent='中文'; c.textContent='English'; } else { o.textContent='English'; c.textContent='中文'; }o.setAttribute('href', other); c.setAttribute('href', current);})();</script><section id="gemini330-interleave-ae">
<h1><span class="section-number">5.3.5. </span>在 Gemini330 系列相机中使用 interleave_ae<a class="headerlink" href="#gemini330-interleave-ae" title="Link to this heading"></a></h1>
<h1><span class="section-number">5.3.5. </span>在 Gemini330 系列相机中使用 interleave_ae<a class="headerlink" href="#gemini330-interleave-ae" title="链接到此标题。"></a></h1>
<blockquote>
<div><p>本节介绍如何在 Gemini 330 系列相机中使用 interleave_ae(相机固件最低版本 <a class="reference external" href="https://www.orbbec.com/docs/g330-firmware-release/">1.4.00</a>)</p>
</div></blockquote>
<section id="id1">
<h2><span class="section-number">5.3.5.1. </span>参数介绍<a class="headerlink" href="#id1" title="Link to this heading"></a></h2>
<h2><span class="section-number">5.3.5.1. </span>参数介绍<a class="headerlink" href="#id1" title="链接到此标题。"></a></h2>
<p>interleave_ae 相关参数在 <a class="reference external" href="https://github.com/orbbec/OrbbecSDK_ROS2/blob/v2-main/orbbec_camera/launch/gemini_330_series.launch.py">gemini_330_series.launch.py</a> 中设置</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">interleave_ae_mode</span></code>:设置激光或 hdr 交错。</p></li>
@@ -445,7 +445,7 @@
</ul>
</section>
<section id="id2">
<h2><span class="section-number">5.3.5.2. </span>运行启动文件<a class="headerlink" href="#id2" title="Link to this heading"></a></h2>
<h2><span class="section-number">5.3.5.2. </span>运行启动文件<a class="headerlink" href="#id2" title="链接到此标题。"></a></h2>
<p>设置 interleave_ae 参数,重新 <code class="docutils literal notranslate"><span class="pre">colcon</span> <span class="pre">build</span></code> 并运行启动文件</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>ros2<span class="w"> </span>launch<span class="w"> </span>orbbec_camera<span class="w"> </span>gemini_330_series.launch.py
</pre></div>
@@ -455,7 +455,7 @@
<p><img alt="深度点云可视化" src="../../../../_images/interleave_ae1.jpeg" /></p>
</section>
<section id="multi-camera-synced-interleave-ae">
<h2><span class="section-number">5.3.5.3. </span>Multi_camera_synced + Interleave_ae<a class="headerlink" href="#multi-camera-synced-interleave-ae" title="Link to this heading"></a></h2>
<h2><span class="section-number">5.3.5.3. </span>Multi_camera_synced + Interleave_ae<a class="headerlink" href="#multi-camera-synced-interleave-ae" title="链接到此标题。"></a></h2>
<p>请参考 <a class="reference external" href="./multi_camera_synced">multi_camera_synced</a> 和 <a class="reference external" href="#%E5%8F%82%E6%95%B0%E4%BB%8B%E7%BB%8D">参数介绍</a></p>
</section>
</section>
@@ -472,7 +472,7 @@
<div role="contentinfo">
<p>&#169; 版权所有 2025, 奥比中光科技集团股份有限公司 www.orbbec.com.。
<span class="lastupdated">最后更新于 2026年01月07日 06:53:11.
<span class="lastupdated">最后更新于 2026年01月13日 02:41:42.
</span></p>
</div>
@@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>5.3.7. 网络相机 &mdash; OrbbecSDK V2 ROS2 封装 文档</title>
<link rel="stylesheet" type="text/css" href="../../../../_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="../../../../_static/css/theme.css?v=e59714d7" />
<link rel="stylesheet" type="text/css" href="../../../../_static/css/theme.css?v=9edc463e" />
<link rel="stylesheet" type="text/css" href="../../../../_static/custom.css?v=63de077d" />
@@ -16,9 +16,9 @@
<script src="../../../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../../../_static/documentation_options.js?v=7d86a446"></script>
<script src="../../../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../../_static/translations.js?v=beaddf03"></script>
<script src="../../../../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../../../../_static/sphinx_highlight.js?v=6ffebe34"></script>
<script src="../../../../_static/translations.js?v=540d3cec"></script>
<script src="../../../../_static/js/theme.js"></script>
<link rel="index" title="索引" href="../../../../genindex.html" />
<link rel="search" title="搜索" href="../../../../search.html" />
@@ -132,7 +132,7 @@
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/launch_parameters.html#id18">4.1.6. 深度滤波器</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/services.html">4.2. 所有可用的相机控制服务</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/services.html">4.2. 可用服务</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/services.html#id2">4.2.1. 数据流控制</a><ul>
<li class="toctree-l5"><a class="reference internal" href="../../4_application_guide/services.html#id3">4.2.1.1. 彩色流</a></li>
<li class="toctree-l5"><a class="reference internal" href="../../4_application_guide/services.html#id4">4.2.1.2. 深度流</a></li>
@@ -402,13 +402,13 @@
<div itemprop="articleBody">
<div class="lang-switch" style="margin:0 0 1em 0; font-size:0.9em;"><a class="lang-other" href="#">English</a> | <a class="lang-current" href="#">中文</a></div><script>(function(){var p=window.location.pathname;var isEn=p.indexOf('/en/')!==-1 && p.indexOf('/zh/')===-1;if(p.indexOf('/zh/')!==-1) isEn=false;var other = isEn ? p.replace(/\/en\//, '/zh/') : p.replace(/\/zh\//, '/en/');var current=p;var sw=document.querySelector('.lang-switch'); if(!sw) return;var o=sw.querySelector('.lang-other'); var c=sw.querySelector('.lang-current');if(isEn){ o.textContent='中文'; c.textContent='English'; } else { o.textContent='English'; c.textContent='中文'; }o.setAttribute('href', other); c.setAttribute('href', current);})();</script><section id="id1">
<h1><span class="section-number">5.3.7. </span>网络相机<a class="headerlink" href="#id1" title="Link to this heading"></a></h1>
<h1><span class="section-number">5.3.7. </span>网络相机<a class="headerlink" href="#id1" title="链接到此标题。"></a></h1>
<blockquote>
<div><p>本节介绍如何在 OrbbecSDK_ROS2 中使用网络相机。目前仅支持 Femto_Mega、Gemini 335Le 和 Gemini 435Le 设备,其他网络设备将在不久的将来得到支持。</p>
</div></blockquote>
<p>您可以在 <a class="reference external" href="https://github.com/orbbec/OrbbecSDK_ROS2/tree/v2-main/orbbec_camera/examples">example</a> 中找到示例使用代码。</p>
<section id="femto-mega-gemini-435le-gemini-335le">
<h2><span class="section-number">5.3.7.1. </span>Femto Mega &amp; Gemini 435Le &amp; Gemini 335Le<a class="headerlink" href="#femto-mega-gemini-435le-gemini-335le" title="Link to this heading"></a></h2>
<h2><span class="section-number">5.3.7.1. </span>Femto Mega &amp; Gemini 435Le &amp; Gemini 335Le<a class="headerlink" href="#femto-mega-gemini-435le-gemini-335le" title="链接到此标题。"></a></h2>
<p><strong>参数介绍</strong></p>
<p>网络设备设置:<code class="docutils literal notranslate"><span class="pre">enumerate_net_device</span></code> 设置为 true,将自动枚举网络设备。</p>
<p>如果您不想自动枚举网络设备,可以将 <code class="docutils literal notranslate"><span class="pre">enumerate_net_device</span></code> 设置为 false,将 <code class="docutils literal notranslate"><span class="pre">net_device_ip</span></code> 设置为设备的 IP 地址,并将 <code class="docutils literal notranslate"><span class="pre">net_device_port</span></code> 设置为默认值 8090。</p>
@@ -442,7 +442,7 @@
</div>
</section>
<section id="set-device-ip">
<h2><span class="section-number">5.3.7.2. </span>set_device_ip 工具<a class="headerlink" href="#set-device-ip" title="Link to this heading"></a></h2>
<h2><span class="section-number">5.3.7.2. </span>set_device_ip 工具<a class="headerlink" href="#set-device-ip" title="链接到此标题。"></a></h2>
<p><strong><code class="docutils literal notranslate"><span class="pre">set_device_ip</span></code></strong> 可执行文件允许您直接从 ROS 2 配置网络相机的 IP 设置,包括在 DHCP 和静态 IP 之间切换,以及设置子网掩码和网关。这对于快速分配或更新 IP 地址而无需修改启动文件非常有用。</p>
<blockquote>
<div><p><strong>注意:<strong>使用 <code class="docutils literal notranslate"><span class="pre">set_device_ip</span></code> 应用的 IP 设置是</strong>永久性的</strong>,如果设备断电或重启,<strong>不会重置</strong>。</p>
@@ -466,7 +466,7 @@
</ul>
</section>
<section id="ip">
<h2><span class="section-number">5.3.7.3. </span>强制 IP 功能<a class="headerlink" href="#ip" title="Link to this heading"></a></h2>
<h2><span class="section-number">5.3.7.3. </span>强制 IP 功能<a class="headerlink" href="#ip" title="链接到此标题。"></a></h2>
<p><strong>强制 IP</strong> 功能允许您为网络相机分配<strong>静态 IP 地址</strong>,覆盖 DHCP 设置。当连接多个网络相机时,这非常有用,您需要每个设备具有固定的 IP 以实现可靠的通信。</p>
<blockquote>
<div><p><strong>注意:<strong>如果设备断电或重启,强制 IP 配置</strong>将被重置</strong>。您需要在重启后重新应用设置。</p>
@@ -508,7 +508,7 @@ net_device_port:<span class="o">=</span><span class="m">8090</span>
<div role="contentinfo">
<p>&#169; 版权所有 2025, 奥比中光科技集团股份有限公司 www.orbbec.com.。
<span class="lastupdated">最后更新于 2026年01月07日 06:53:11.
<span class="lastupdated">最后更新于 2026年01月13日 02:41:42.
</span></p>
</div>
@@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>5.3.6. 预定义预设 &mdash; OrbbecSDK V2 ROS2 封装 文档</title>
<link rel="stylesheet" type="text/css" href="../../../../_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="../../../../_static/css/theme.css?v=e59714d7" />
<link rel="stylesheet" type="text/css" href="../../../../_static/css/theme.css?v=9edc463e" />
<link rel="stylesheet" type="text/css" href="../../../../_static/custom.css?v=63de077d" />
@@ -16,9 +16,9 @@
<script src="../../../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../../../_static/documentation_options.js?v=7d86a446"></script>
<script src="../../../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../../_static/translations.js?v=beaddf03"></script>
<script src="../../../../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../../../../_static/sphinx_highlight.js?v=6ffebe34"></script>
<script src="../../../../_static/translations.js?v=540d3cec"></script>
<script src="../../../../_static/js/theme.js"></script>
<link rel="index" title="索引" href="../../../../genindex.html" />
<link rel="search" title="搜索" href="../../../../search.html" />
@@ -132,7 +132,7 @@
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/launch_parameters.html#id18">4.1.6. 深度滤波器</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/services.html">4.2. 所有可用的相机控制服务</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/services.html">4.2. 可用服务</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/services.html#id2">4.2.1. 数据流控制</a><ul>
<li class="toctree-l5"><a class="reference internal" href="../../4_application_guide/services.html#id3">4.2.1.1. 彩色流</a></li>
<li class="toctree-l5"><a class="reference internal" href="../../4_application_guide/services.html#id4">4.2.1.2. 深度流</a></li>
@@ -402,7 +402,7 @@
<div itemprop="articleBody">
<div class="lang-switch" style="margin:0 0 1em 0; font-size:0.9em;"><a class="lang-other" href="#">English</a> | <a class="lang-current" href="#">中文</a></div><script>(function(){var p=window.location.pathname;var isEn=p.indexOf('/en/')!==-1 && p.indexOf('/zh/')===-1;if(p.indexOf('/zh/')!==-1) isEn=false;var other = isEn ? p.replace(/\/en\//, '/zh/') : p.replace(/\/zh\//, '/en/');var current=p;var sw=document.querySelector('.lang-switch'); if(!sw) return;var o=sw.querySelector('.lang-other'); var c=sw.querySelector('.lang-current');if(isEn){ o.textContent='中文'; c.textContent='English'; } else { o.textContent='English'; c.textContent='中文'; }o.setAttribute('href', other); c.setAttribute('href', current);})();</script><section id="id1">
<h1><span class="section-number">5.3.6. </span>预定义预设<a class="headerlink" href="#id1" title="Link to this heading"></a></h1>
<h1><span class="section-number">5.3.6. </span>预定义预设<a class="headerlink" href="#id1" title="链接到此标题。"></a></h1>
<table border="1" class="docutils">
<thead>
<tr>
@@ -439,7 +439,7 @@
</tr>
<tr>
<td>Custom</td>
<td>- 用户自定义预设<br>- 从上述预设派生,具有自定义修改,例如后处理管道的新配置、深度 AE 功能的修改平均强度设定点等</td>
<td>- 用户自定义预设<br>- 从上述预设派生,具有自定义修改<br>- 例如后处理管道的新配置等</td>
<td>- 通过使用自定义配置可获得比预定义预设更好的深度性能<br>- 适用于已建立的自定义配置</td>
</tr>
</tbody>
@@ -458,7 +458,7 @@
<div role="contentinfo">
<p>&#169; 版权所有 2025, 奥比中光科技集团股份有限公司 www.orbbec.com.。
<span class="lastupdated">最后更新于 2026年01月07日 06:53:11.
<span class="lastupdated">最后更新于 2026年01月13日 02:41:42.
</span></p>
</div>
@@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>5.2.4. GMSL 相机 &mdash; OrbbecSDK V2 ROS2 封装 文档</title>
<link rel="stylesheet" type="text/css" href="../../../../_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="../../../../_static/css/theme.css?v=e59714d7" />
<link rel="stylesheet" type="text/css" href="../../../../_static/css/theme.css?v=9edc463e" />
<link rel="stylesheet" type="text/css" href="../../../../_static/custom.css?v=63de077d" />
@@ -16,9 +16,9 @@
<script src="../../../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../../../_static/documentation_options.js?v=7d86a446"></script>
<script src="../../../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../../_static/translations.js?v=beaddf03"></script>
<script src="../../../../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../../../../_static/sphinx_highlight.js?v=6ffebe34"></script>
<script src="../../../../_static/translations.js?v=540d3cec"></script>
<script src="../../../../_static/js/theme.js"></script>
<link rel="index" title="索引" href="../../../../genindex.html" />
<link rel="search" title="搜索" href="../../../../search.html" />
@@ -132,7 +132,7 @@
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/launch_parameters.html#id18">4.1.6. 深度滤波器</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/services.html">4.2. 所有可用的相机控制服务</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/services.html">4.2. 可用服务</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/services.html#id2">4.2.1. 数据流控制</a><ul>
<li class="toctree-l5"><a class="reference internal" href="../../4_application_guide/services.html#id3">4.2.1.1. 彩色流</a></li>
<li class="toctree-l5"><a class="reference internal" href="../../4_application_guide/services.html#id4">4.2.1.2. 深度流</a></li>
@@ -402,20 +402,20 @@
<div itemprop="articleBody">
<div class="lang-switch" style="margin:0 0 1em 0; font-size:0.9em;"><a class="lang-other" href="#">English</a> | <a class="lang-current" href="#">中文</a></div><script>(function(){var p=window.location.pathname;var isEn=p.indexOf('/en/')!==-1 && p.indexOf('/zh/')===-1;if(p.indexOf('/zh/')!==-1) isEn=false;var other = isEn ? p.replace(/\/en\//, '/zh/') : p.replace(/\/zh\//, '/en/');var current=p;var sw=document.querySelector('.lang-switch'); if(!sw) return;var o=sw.querySelector('.lang-other'); var c=sw.querySelector('.lang-current');if(isEn){ o.textContent='中文'; c.textContent='English'; } else { o.textContent='English'; c.textContent='中文'; }o.setAttribute('href', other); c.setAttribute('href', current);})();</script><section id="gmsl">
<h1><span class="section-number">5.2.4. </span>GMSL 相机<a class="headerlink" href="#gmsl" title="Link to this heading"></a></h1>
<h1><span class="section-number">5.2.4. </span>GMSL 相机<a class="headerlink" href="#gmsl" title="链接到此标题。"></a></h1>
<blockquote>
<div><p>本节介绍如何在 OrbbecSDK_ROS2 中使用 GMSL 相机。目前仅支持 Gemini 335Lg 和 Gemini 345Lg 设备,其他 GMSL 设备将在不久的将来得到支持。</p>
</div></blockquote>
<p>您可以在 <a class="reference external" href="https://github.com/orbbec/OrbbecSDK_ROS2/tree/v2-main/orbbec_camera/examples">example</a> 中找到示例使用代码。</p>
<section id="id1">
<h2><span class="section-number">5.2.4.1. </span>单个 GMSL 相机<a class="headerlink" href="#id1" title="Link to this heading"></a></h2>
<h2><span class="section-number">5.2.4.1. </span>单个 GMSL 相机<a class="headerlink" href="#id1" title="链接到此标题。"></a></h2>
<p>GMSL 相机在 OrbbecSDK_ROS2 中的使用与通过 USB 的 Gemini 330 系列相机相同。</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>ros2<span class="w"> </span>launch<span class="w"> </span>orbbec_camera<span class="w"> </span>gemini_330_gmsl.launch.py
</pre></div>
</div>
</section>
<section id="id2">
<h2><span class="section-number">5.2.4.2. </span>多个 GMSL 相机<a class="headerlink" href="#id2" title="Link to this heading"></a></h2>
<h2><span class="section-number">5.2.4.2. </span>多个 GMSL 相机<a class="headerlink" href="#id2" title="链接到此标题。"></a></h2>
<p>要获取 GMSL 相机的 <code class="docutils literal notranslate"><span class="pre">usb_port</span></code>,插入相机并在终端中运行以下命令:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>ros2<span class="w"> </span>run<span class="w"> </span>orbbec_camera<span class="w"> </span>list_devices_node
</pre></div>
@@ -430,7 +430,7 @@
</div></blockquote>
</section>
<section id="id3">
<h2><span class="section-number">5.2.4.3. </span>多个 GMSL 相机同步<a class="headerlink" href="#id3" title="Link to this heading"></a></h2>
<h2><span class="section-number">5.2.4.3. </span>多个 GMSL 相机同步<a class="headerlink" href="#id3" title="链接到此标题。"></a></h2>
<p>首先,请查看如何使用 <a class="reference internal" href="multi_camera_synced.html"><span class="doc">multi_camera_synced</span></a>。</p>
<p>此外,GMSL 多相机同步不需要 Multi-Camera Sync Hub Pro,因此无需设置 <code class="docutils literal notranslate"><span class="pre">primary</span></code> 模式。每个 GMSL 相机都是 <code class="docutils literal notranslate"><span class="pre">secondary</span></code>。</p>
<p><strong>额外的参数设置</strong></p>
@@ -448,7 +448,7 @@
</div></blockquote>
</section>
<section id="id4">
<h2><span class="section-number">5.2.4.4. </span>GMSL 相机的使用限制<a class="headerlink" href="#id4" title="Link to this heading"></a></h2>
<h2><span class="section-number">5.2.4.4. </span>GMSL 相机的使用限制<a class="headerlink" href="#id4" title="链接到此标题。"></a></h2>
<p>GMSL 相机与各种反序列化器芯片(如 MAX9296 和 MAX92716)接口。Orbbec GMSL 相机支持多个流,包括深度、彩色、IR 和 IMU 数据,但存在某些使用限制:</p>
<ul class="simple">
<li><p>GMSL 仅支持 V4L2 和 YUYV 格式;不支持 MJPG 格式。RGB 输出源自 YUYV 格式转换。</p></li>
@@ -478,7 +478,7 @@
<div role="contentinfo">
<p>&#169; 版权所有 2025, 奥比中光科技集团股份有限公司 www.orbbec.com.。
<span class="lastupdated">最后更新于 2026年01月07日 06:53:11.
<span class="lastupdated">最后更新于 2026年01月13日 02:41:42.
</span></p>
</div>
@@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>5.2.1. 多相机 &mdash; OrbbecSDK V2 ROS2 封装 文档</title>
<link rel="stylesheet" type="text/css" href="../../../../_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="../../../../_static/css/theme.css?v=e59714d7" />
<link rel="stylesheet" type="text/css" href="../../../../_static/css/theme.css?v=9edc463e" />
<link rel="stylesheet" type="text/css" href="../../../../_static/custom.css?v=63de077d" />
@@ -16,9 +16,9 @@
<script src="../../../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../../../_static/documentation_options.js?v=7d86a446"></script>
<script src="../../../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../../_static/translations.js?v=beaddf03"></script>
<script src="../../../../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../../../../_static/sphinx_highlight.js?v=6ffebe34"></script>
<script src="../../../../_static/translations.js?v=540d3cec"></script>
<script src="../../../../_static/js/theme.js"></script>
<link rel="index" title="索引" href="../../../../genindex.html" />
<link rel="search" title="搜索" href="../../../../search.html" />
@@ -132,7 +132,7 @@
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/launch_parameters.html#id18">4.1.6. 深度滤波器</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/services.html">4.2. 所有可用的相机控制服务</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/services.html">4.2. 可用服务</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/services.html#id2">4.2.1. 数据流控制</a><ul>
<li class="toctree-l5"><a class="reference internal" href="../../4_application_guide/services.html#id3">4.2.1.1. 彩色流</a></li>
<li class="toctree-l5"><a class="reference internal" href="../../4_application_guide/services.html#id4">4.2.1.2. 深度流</a></li>
@@ -402,7 +402,7 @@
<div itemprop="articleBody">
<div class="lang-switch" style="margin:0 0 1em 0; font-size:0.9em;"><a class="lang-other" href="#">English</a> | <a class="lang-current" href="#">中文</a></div><script>(function(){var p=window.location.pathname;var isEn=p.indexOf('/en/')!==-1 && p.indexOf('/zh/')===-1;if(p.indexOf('/zh/')!==-1) isEn=false;var other = isEn ? p.replace(/\/en\//, '/zh/') : p.replace(/\/zh\//, '/en/');var current=p;var sw=document.querySelector('.lang-switch'); if(!sw) return;var o=sw.querySelector('.lang-other'); var c=sw.querySelector('.lang-current');if(isEn){ o.textContent='中文'; c.textContent='English'; } else { o.textContent='English'; c.textContent='中文'; }o.setAttribute('href', other); c.setAttribute('href', current);})();</script><section id="id1">
<h1><span class="section-number">5.2.1. </span>多相机<a class="headerlink" href="#id1" title="Link to this heading"></a></h1>
<h1><span class="section-number">5.2.1. </span>多相机<a class="headerlink" href="#id1" title="链接到此标题。"></a></h1>
<ul class="simple">
<li><p>要获取相机的 <code class="docutils literal notranslate"><span class="pre">usb_port</span></code>,插入相机并在终端中运行以下命令:</p></li>
</ul>
@@ -467,7 +467,7 @@
</pre></div>
</div>
<section id="id2">
<h2><span class="section-number">5.2.1.1. </span>多相机无数据流<a class="headerlink" href="#id2" title="Link to this heading"></a></h2>
<h2><span class="section-number">5.2.1.1. </span>多相机无数据流<a class="headerlink" href="#id2" title="链接到此标题。"></a></h2>
<p><strong>电源供应不足</strong>:</p>
<ul class="simple">
<li><p>确保每个相机连接到单独的集线器。</p></li>
@@ -490,7 +490,7 @@
</ul>
</section>
<section id="id3">
<h2><span class="section-number">5.2.1.2. </span>多相机图像话题帧率过低<a class="headerlink" href="#id3" title="Link to this heading"></a></h2>
<h2><span class="section-number">5.2.1.2. </span>多相机图像话题帧率过低<a class="headerlink" href="#id3" title="链接到此标题。"></a></h2>
<p>请参考 <a class="reference internal" href="../performance/fastdds_tuning.html"><span class="doc">Fast DDS 配置</span></a> 文件。</p>
</section>
</section>
@@ -507,7 +507,7 @@
<div role="contentinfo">
<p>&#169; 版权所有 2025, 奥比中光科技集团股份有限公司 www.orbbec.com.。
<span class="lastupdated">最后更新于 2026年01月07日 06:53:11.
<span class="lastupdated">最后更新于 2026年01月13日 02:41:42.
</span></p>
</div>
@@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>5.2.2. 多相机同步说明 &mdash; OrbbecSDK V2 ROS2 封装 文档</title>
<link rel="stylesheet" type="text/css" href="../../../../_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="../../../../_static/css/theme.css?v=e59714d7" />
<link rel="stylesheet" type="text/css" href="../../../../_static/css/theme.css?v=9edc463e" />
<link rel="stylesheet" type="text/css" href="../../../../_static/custom.css?v=63de077d" />
@@ -16,9 +16,9 @@
<script src="../../../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../../../_static/documentation_options.js?v=7d86a446"></script>
<script src="../../../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../../_static/translations.js?v=beaddf03"></script>
<script src="../../../../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../../../../_static/sphinx_highlight.js?v=6ffebe34"></script>
<script src="../../../../_static/translations.js?v=540d3cec"></script>
<script src="../../../../_static/js/theme.js"></script>
<link rel="index" title="索引" href="../../../../genindex.html" />
<link rel="search" title="搜索" href="../../../../search.html" />
@@ -132,7 +132,7 @@
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/launch_parameters.html#id18">4.1.6. 深度滤波器</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/services.html">4.2. 所有可用的相机控制服务</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/services.html">4.2. 可用服务</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/services.html#id2">4.2.1. 数据流控制</a><ul>
<li class="toctree-l5"><a class="reference internal" href="../../4_application_guide/services.html#id3">4.2.1.1. 彩色流</a></li>
<li class="toctree-l5"><a class="reference internal" href="../../4_application_guide/services.html#id4">4.2.1.2. 深度流</a></li>
@@ -402,12 +402,12 @@
<div itemprop="articleBody">
<div class="lang-switch" style="margin:0 0 1em 0; font-size:0.9em;"><a class="lang-other" href="#">English</a> | <a class="lang-current" href="#">中文</a></div><script>(function(){var p=window.location.pathname;var isEn=p.indexOf('/en/')!==-1 && p.indexOf('/zh/')===-1;if(p.indexOf('/zh/')!==-1) isEn=false;var other = isEn ? p.replace(/\/en\//, '/zh/') : p.replace(/\/zh\//, '/en/');var current=p;var sw=document.querySelector('.lang-switch'); if(!sw) return;var o=sw.querySelector('.lang-other'); var c=sw.querySelector('.lang-current');if(isEn){ o.textContent='中文'; c.textContent='English'; } else { o.textContent='English'; c.textContent='中文'; }o.setAttribute('href', other); c.setAttribute('href', current);})();</script><section id="id1">
<h1><span class="section-number">5.2.2. </span>多相机同步说明<a class="headerlink" href="#id1" title="Link to this heading"></a></h1>
<h1><span class="section-number">5.2.2. </span>多相机同步说明<a class="headerlink" href="#id1" title="链接到此标题。"></a></h1>
<blockquote>
<div><p>本文档的目的是说明如何在 OrbbecSDK_ROS2 中使用多相机同步</p>
</div></blockquote>
<section id="id2">
<h2><span class="section-number">5.2.2.1. </span>设置说明<a class="headerlink" href="#id2" title="Link to this heading"></a></h2>
<h2><span class="section-number">5.2.2.1. </span>设置说明<a class="headerlink" href="#id2" title="链接到此标题。"></a></h2>
<ul class="simple">
<li><p>请阅读多相机同步设置指南:<a class="reference external" href="https://www.orbbec.com/docs/set-up-cameras-for-external-synchronization_v1-2/">多相机同步设置</a></p></li>
<li><p>确保相机正确连接到多相机同步器。</p></li>
@@ -415,13 +415,13 @@
<p><img alt="深度点云可视化" src="../../../../_images/multi_camera_synced1.png" /></p>
</section>
<section id="orbbecsdk-ros2">
<h2><span class="section-number">5.2.2.2. </span>使用 OrbbecSDK_ROS2 检查相机端口<a class="headerlink" href="#orbbecsdk-ros2" title="Link to this heading"></a></h2>
<h2><span class="section-number">5.2.2.2. </span>使用 OrbbecSDK_ROS2 检查相机端口<a class="headerlink" href="#orbbecsdk-ros2" title="链接到此标题。"></a></h2>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>ros2<span class="w"> </span>run<span class="w"> </span>orbbec_camera<span class="w"> </span>list_devices_node
</pre></div>
</div>
</section>
<section id="id3">
<h2><span class="section-number">5.2.2.3. </span>OrbbecSDK_ROS2 多相机同步配置<a class="headerlink" href="#id3" title="Link to this heading"></a></h2>
<h2><span class="section-number">5.2.2.3. </span>OrbbecSDK_ROS2 多相机同步配置<a class="headerlink" href="#id3" title="链接到此标题。"></a></h2>
<p>打开 multi_camera_synced.launch.py,并按照下面所示配置相机设置:</p>
<p><img alt="深度点云可视化" src="../../../../_images/multi_camera_synced2.png" /></p>
<ol class="simple">
@@ -476,7 +476,7 @@
</ul>
</section>
<section id="id4">
<h2><span class="section-number">5.2.2.4. </span>运行以下命令启动多相机同步<a class="headerlink" href="#id4" title="Link to this heading"></a></h2>
<h2><span class="section-number">5.2.2.4. </span>运行以下命令启动多相机同步<a class="headerlink" href="#id4" title="链接到此标题。"></a></h2>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>ros2<span class="w"> </span>launch<span class="w"> </span>orbbec_camera<span class="w"> </span>multi_camera_synced.launch.py
</pre></div>
</div>
@@ -495,7 +495,7 @@
<div role="contentinfo">
<p>&#169; 版权所有 2025, 奥比中光科技集团股份有限公司 www.orbbec.com.。
<span class="lastupdated">最后更新于 2026年01月07日 06:53:11.
<span class="lastupdated">最后更新于 2026年01月13日 02:41:42.
</span></p>
</div>
@@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>5.2.3. 多相机同步验证节点 &mdash; OrbbecSDK V2 ROS2 封装 文档</title>
<link rel="stylesheet" type="text/css" href="../../../../_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="../../../../_static/css/theme.css?v=e59714d7" />
<link rel="stylesheet" type="text/css" href="../../../../_static/css/theme.css?v=9edc463e" />
<link rel="stylesheet" type="text/css" href="../../../../_static/custom.css?v=63de077d" />
@@ -16,9 +16,9 @@
<script src="../../../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../../../_static/documentation_options.js?v=7d86a446"></script>
<script src="../../../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../../_static/translations.js?v=beaddf03"></script>
<script src="../../../../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../../../../_static/sphinx_highlight.js?v=6ffebe34"></script>
<script src="../../../../_static/translations.js?v=540d3cec"></script>
<script src="../../../../_static/js/theme.js"></script>
<link rel="index" title="索引" href="../../../../genindex.html" />
<link rel="search" title="搜索" href="../../../../search.html" />
@@ -132,7 +132,7 @@
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/launch_parameters.html#id18">4.1.6. 深度滤波器</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/services.html">4.2. 所有可用的相机控制服务</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/services.html">4.2. 可用服务</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/services.html#id2">4.2.1. 数据流控制</a><ul>
<li class="toctree-l5"><a class="reference internal" href="../../4_application_guide/services.html#id3">4.2.1.1. 彩色流</a></li>
<li class="toctree-l5"><a class="reference internal" href="../../4_application_guide/services.html#id4">4.2.1.2. 深度流</a></li>
@@ -402,15 +402,15 @@
<div itemprop="articleBody">
<div class="lang-switch" style="margin:0 0 1em 0; font-size:0.9em;"><a class="lang-other" href="#">English</a> | <a class="lang-current" href="#">中文</a></div><script>(function(){var p=window.location.pathname;var isEn=p.indexOf('/en/')!==-1 && p.indexOf('/zh/')===-1;if(p.indexOf('/zh/')!==-1) isEn=false;var other = isEn ? p.replace(/\/en\//, '/zh/') : p.replace(/\/zh\//, '/en/');var current=p;var sw=document.querySelector('.lang-switch'); if(!sw) return;var o=sw.querySelector('.lang-other'); var c=sw.querySelector('.lang-current');if(isEn){ o.textContent='中文'; c.textContent='English'; } else { o.textContent='English'; c.textContent='中文'; }o.setAttribute('href', other); c.setAttribute('href', current);})();</script><section id="id1">
<h1><span class="section-number">5.2.3. </span>多相机同步验证节点<a class="headerlink" href="#id1" title="Link to this heading"></a></h1>
<h1><span class="section-number">5.2.3. </span>多相机同步验证节点<a class="headerlink" href="#id1" title="链接到此标题。"></a></h1>
<p>文件路径:<a class="reference external" href="https://github.com/orbbec/OrbbecSDK_ROS2/blob/v2-main/orbbec_camera/examples/multi_camera_time_sync/image_sync_example_node.cpp">image_sync_example_node.cpp</a></p>
<p>此示例节点用于 <strong>4 台 Orbbec 相机</strong> 的同步采集与时间戳验证。
它可用于验证多相机主从同步(Primary / Secondary Synced)模式下的帧对齐精度。</p>
<hr class="docutils" />
<section id="id2">
<h2><span class="section-number">5.2.3.1. </span>使用教程<a class="headerlink" href="#id2" title="Link to this heading"></a></h2>
<h2><span class="section-number">5.2.3.1. </span>使用教程<a class="headerlink" href="#id2" title="链接到此标题。"></a></h2>
<section id="multi-camera-synced-launch-py">
<h3><span class="section-number">5.2.3.1.1. </span><strong>在 <code class="docutils literal notranslate"><span class="pre">multi_camera_synced.launch.py</span></code> 的基础上做以下修改</strong><a class="headerlink" href="#multi-camera-synced-launch-py" title="Link to this heading"></a></h3>
<h3><span class="section-number">5.2.3.1.1. </span><strong>在 <code class="docutils literal notranslate"><span class="pre">multi_camera_synced.launch.py</span></code> 的基础上做以下修改</strong><a class="headerlink" href="#multi-camera-synced-launch-py" title="链接到此标题。"></a></h3>
<ul class="simple">
<li><p>增加 <code class="docutils literal notranslate"><span class="pre">launch_include</span></code> 以适配 4 台相机</p></li>
<li><p>根据设备型号选择对应的 launch 文件,如 330 系列选择 gemini_330_series.launch.py</p></li>
@@ -424,7 +424,7 @@
</section>
<hr class="docutils" />
<section id="id3">
<h3><span class="section-number">5.2.3.1.2. </span><strong>参数文件修改</strong><a class="headerlink" href="#id3" title="Link to this heading"></a></h3>
<h3><span class="section-number">5.2.3.1.2. </span><strong>参数文件修改</strong><a class="headerlink" href="#id3" title="链接到此标题。"></a></h3>
<p>修改 <code class="docutils literal notranslate"><span class="pre">config</span></code> 目录下的以下两个配置文件:</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">camera_params.yaml</span></code></p></li>
@@ -438,7 +438,7 @@
</section>
<hr class="docutils" />
<section id="id4">
<h3><span class="section-number">5.2.3.1.3. </span><strong>启动与验证</strong><a class="headerlink" href="#id4" title="Link to this heading"></a></h3>
<h3><span class="section-number">5.2.3.1.3. </span><strong>启动与验证</strong><a class="headerlink" href="#id4" title="链接到此标题。"></a></h3>
<ul class="simple">
<li><p>启动多机同步 launch: <code class="docutils literal notranslate"><span class="pre">multi_camera_synced.launch.py</span></code></p></li>
<li><p>打开新终端运行同步验证节点: <code class="docutils literal notranslate"><span class="pre">ros2</span> <span class="pre">run</span> <span class="pre">orbbec_camera</span> <span class="pre">image_sync_example_node</span></code>
@@ -447,7 +447,7 @@
</section>
<hr class="docutils" />
<section id="launch">
<h3><span class="section-number">5.2.3.1.4. </span><strong>参考 launch 文件</strong><a class="headerlink" href="#launch" title="Link to this heading"></a></h3>
<h3><span class="section-number">5.2.3.1.4. </span><strong>参考 launch 文件</strong><a class="headerlink" href="#launch" title="链接到此标题。"></a></h3>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span><span class="w"> </span><span class="nn">os</span>
<span class="kn">from</span><span class="w"> </span><span class="nn">ament_index_python.packages</span><span class="w"> </span><span class="kn">import</span> <span class="n">get_package_share_directory</span>
<span class="kn">from</span><span class="w"> </span><span class="nn">launch</span><span class="w"> </span><span class="kn">import</span> <span class="n">LaunchDescription</span>
@@ -543,15 +543,15 @@
</section>
<hr class="docutils" />
<section id="id5">
<h2><span class="section-number">5.2.3.2. </span>必要系统配置<a class="headerlink" href="#id5" title="Link to this heading"></a></h2>
<h2><span class="section-number">5.2.3.2. </span>必要系统配置<a class="headerlink" href="#id5" title="链接到此标题。"></a></h2>
<section id="usb">
<h3><span class="section-number">5.2.3.2.1. </span><strong>提升 USB 缓冲区容量</strong><a class="headerlink" href="#usb" title="Link to this heading"></a></h3>
<h3><span class="section-number">5.2.3.2.1. </span><strong>提升 USB 缓冲区容量</strong><a class="headerlink" href="#usb" title="链接到此标题。"></a></h3>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">echo</span> <span class="mi">512</span> <span class="o">|</span> <span class="n">sudo</span> <span class="n">tee</span> <span class="o">/</span><span class="n">sys</span><span class="o">/</span><span class="n">module</span><span class="o">/</span><span class="n">usbcore</span><span class="o">/</span><span class="n">parameters</span><span class="o">/</span><span class="n">usbfs_memory_mb</span>
</pre></div>
</div>
</section>
<section id="fast-dds">
<h3><span class="section-number">5.2.3.2.2. </span><strong>配置 Fast DDS</strong><a class="headerlink" href="#fast-dds" title="Link to this heading"></a></h3>
<h3><span class="section-number">5.2.3.2.2. </span><strong>配置 Fast DDS</strong><a class="headerlink" href="#fast-dds" title="链接到此标题。"></a></h3>
<p>优化 ROS2 节点间通信延迟,可以有效减少图像传输延迟,<a class="reference internal" href="../performance/fastdds_tuning.html"><span class="doc">配置过程见此章节</span></a>。</p>
</section>
</section>
@@ -569,7 +569,7 @@
<div role="contentinfo">
<p>&#169; 版权所有 2025, 奥比中光科技集团股份有限公司 www.orbbec.com.。
<span class="lastupdated">最后更新于 2026年01月07日 06:53:11.
<span class="lastupdated">最后更新于 2026年01月13日 02:41:42.
</span></p>
</div>
@@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>5.1.2. 高效的进程内通信: &mdash; OrbbecSDK V2 ROS2 封装 文档</title>
<link rel="stylesheet" type="text/css" href="../../../../_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="../../../../_static/css/theme.css?v=e59714d7" />
<link rel="stylesheet" type="text/css" href="../../../../_static/css/theme.css?v=9edc463e" />
<link rel="stylesheet" type="text/css" href="../../../../_static/custom.css?v=63de077d" />
@@ -16,9 +16,9 @@
<script src="../../../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../../../_static/documentation_options.js?v=7d86a446"></script>
<script src="../../../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../../_static/translations.js?v=beaddf03"></script>
<script src="../../../../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../../../../_static/sphinx_highlight.js?v=6ffebe34"></script>
<script src="../../../../_static/translations.js?v=540d3cec"></script>
<script src="../../../../_static/js/theme.js"></script>
<link rel="index" title="索引" href="../../../../genindex.html" />
<link rel="search" title="搜索" href="../../../../search.html" />
@@ -132,7 +132,7 @@
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/launch_parameters.html#id18">4.1.6. 深度滤波器</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/services.html">4.2. 所有可用的相机控制服务</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/services.html">4.2. 可用服务</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/services.html#id2">4.2.1. 数据流控制</a><ul>
<li class="toctree-l5"><a class="reference internal" href="../../4_application_guide/services.html#id3">4.2.1.1. 彩色流</a></li>
<li class="toctree-l5"><a class="reference internal" href="../../4_application_guide/services.html#id4">4.2.1.2. 深度流</a></li>
@@ -402,15 +402,15 @@
<div itemprop="articleBody">
<div class="lang-switch" style="margin:0 0 1em 0; font-size:0.9em;"><a class="lang-other" href="#">English</a> | <a class="lang-current" href="#">中文</a></div><script>(function(){var p=window.location.pathname;var isEn=p.indexOf('/en/')!==-1 && p.indexOf('/zh/')===-1;if(p.indexOf('/zh/')!==-1) isEn=false;var other = isEn ? p.replace(/\/en\//, '/zh/') : p.replace(/\/zh\//, '/en/');var current=p;var sw=document.querySelector('.lang-switch'); if(!sw) return;var o=sw.querySelector('.lang-other'); var c=sw.querySelector('.lang-current');if(isEn){ o.textContent='中文'; c.textContent='English'; } else { o.textContent='English'; c.textContent='中文'; }o.setAttribute('href', other); c.setAttribute('href', current);})();</script><section id="id1">
<h1><span class="section-number">5.1.2. </span>高效的进程内通信:<a class="headerlink" href="#id1" title="Link to this heading"></a></h1>
<h1><span class="section-number">5.1.2. </span>高效的进程内通信:<a class="headerlink" href="#id1" title="链接到此标题。"></a></h1>
<section id="id2">
<h2><span class="section-number">5.1.2.1. </span>简介<a class="headerlink" href="#id2" title="Link to this heading"></a></h2>
<h2><span class="section-number">5.1.2.1. </span>简介<a class="headerlink" href="#id2" title="链接到此标题。"></a></h2>
<p>如果我们的ROS2封装器节点与订阅者节点加载在同一进程中,它支持零拷贝通信。这可以减少图像/点云话题的拷贝时间,特别是在大帧分辨率和高FPS的情况下。</p>
<p>您需要启动一个组件容器,并将我们的节点作为组件与其他组件节点一起启动。有关&quot;在单个进程中组合多个节点&quot;的更多详细信息,请参见 <a class="reference external" href="https://docs.ros.org/en/rolling/Tutorials/Composition.html">此处</a>。</p>
<p>有关高效进程内通信的更多详细信息,请参见 <a class="reference external" href="https://docs.ros.org/en/humble/Tutorials/Intra-Process-Communication.html#efficient-intra-process-communication">此处</a>。</p>
</section>
<section id="id3">
<h2><span class="section-number">5.1.2.2. </span>示例<a class="headerlink" href="#id3" title="Link to this heading"></a></h2>
<h2><span class="section-number">5.1.2.2. </span>示例<a class="headerlink" href="#id3" title="链接到此标题。"></a></h2>
<p><strong>手动将多个组件加载到同一进程中</strong></p>
<ul>
<li><p>启动组件:</p>
@@ -449,7 +449,7 @@
<div role="contentinfo">
<p>&#169; 版权所有 2025, 奥比中光科技集团股份有限公司 www.orbbec.com.。
<span class="lastupdated">最后更新于 2026年01月07日 06:53:11.
<span class="lastupdated">最后更新于 2026年01月13日 02:41:42.
</span></p>
</div>
@@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>5.1.3. 针对Orbbec相机与ROS2的Fast DDS优化 &mdash; OrbbecSDK V2 ROS2 封装 文档</title>
<link rel="stylesheet" type="text/css" href="../../../../_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="../../../../_static/css/theme.css?v=e59714d7" />
<link rel="stylesheet" type="text/css" href="../../../../_static/css/theme.css?v=9edc463e" />
<link rel="stylesheet" type="text/css" href="../../../../_static/custom.css?v=63de077d" />
@@ -16,9 +16,9 @@
<script src="../../../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../../../_static/documentation_options.js?v=7d86a446"></script>
<script src="../../../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../../_static/translations.js?v=beaddf03"></script>
<script src="../../../../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../../../../_static/sphinx_highlight.js?v=6ffebe34"></script>
<script src="../../../../_static/translations.js?v=540d3cec"></script>
<script src="../../../../_static/js/theme.js"></script>
<link rel="index" title="索引" href="../../../../genindex.html" />
<link rel="search" title="搜索" href="../../../../search.html" />
@@ -132,7 +132,7 @@
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/launch_parameters.html#id18">4.1.6. 深度滤波器</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/services.html">4.2. 所有可用的相机控制服务</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/services.html">4.2. 可用服务</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/services.html#id2">4.2.1. 数据流控制</a><ul>
<li class="toctree-l5"><a class="reference internal" href="../../4_application_guide/services.html#id3">4.2.1.1. 彩色流</a></li>
<li class="toctree-l5"><a class="reference internal" href="../../4_application_guide/services.html#id4">4.2.1.2. 深度流</a></li>
@@ -402,10 +402,10 @@
<div itemprop="articleBody">
<div class="lang-switch" style="margin:0 0 1em 0; font-size:0.9em;"><a class="lang-other" href="#">English</a> | <a class="lang-current" href="#">中文</a></div><script>(function(){var p=window.location.pathname;var isEn=p.indexOf('/en/')!==-1 && p.indexOf('/zh/')===-1;if(p.indexOf('/zh/')!==-1) isEn=false;var other = isEn ? p.replace(/\/en\//, '/zh/') : p.replace(/\/zh\//, '/en/');var current=p;var sw=document.querySelector('.lang-switch'); if(!sw) return;var o=sw.querySelector('.lang-other'); var c=sw.querySelector('.lang-current');if(isEn){ o.textContent='中文'; c.textContent='English'; } else { o.textContent='English'; c.textContent='中文'; }o.setAttribute('href', other); c.setAttribute('href', current);})();</script><section id="orbbecros2fast-dds">
<h1><span class="section-number">5.1.3. </span>针对Orbbec相机与ROS2的Fast DDS优化<a class="headerlink" href="#orbbecros2fast-dds" title="Link to this heading"></a></h1>
<h1><span class="section-number">5.1.3. </span>针对Orbbec相机与ROS2的Fast DDS优化<a class="headerlink" href="#orbbecros2fast-dds" title="链接到此标题。"></a></h1>
<p>使用默认配置时,Fast DDS表现出次优的传输效率,导致在ROS2中使用Orbbec相机时图像传输延迟显著。本文档提供了优化Fast DDS以提高图像传输效率的指导。</p>
<section id="id1">
<h2><span class="section-number">5.1.3.1. </span>调整系统参数<a class="headerlink" href="#id1" title="Link to this heading"></a></h2>
<h2><span class="section-number">5.1.3.1. </span>调整系统参数<a class="headerlink" href="#id1" title="链接到此标题。"></a></h2>
<p><strong>IP分片时间</strong></p>
<ul>
<li><p><strong>路径</strong>: <code class="docutils literal notranslate"><span class="pre">/proc/sys/net/ipv4/ipfrag_time</span></code>(默认值:30秒)</p></li>
@@ -456,7 +456,7 @@ net.core.wmem_default<span class="o">=</span><span class="m">2147483647</span>
<p>有关详细指导,请参考 <a class="reference external" href="https://docs.ros.org/en/foxy/How-To-Guides/DDS-tuning.html">ROS 2 DDS调优文档</a>。</p>
</section>
<section id="fast-dds">
<h2><span class="section-number">5.1.3.2. </span>Fast DDS配置<a class="headerlink" href="#fast-dds" title="Link to this heading"></a></h2>
<h2><span class="section-number">5.1.3.2. </span>Fast DDS配置<a class="headerlink" href="#fast-dds" title="链接到此标题。"></a></h2>
<p>以下是针对Orbbec相机与ROS2使用而优化的Fast DDS配置文件示例。此配置通过调整缓冲区大小和传输设置来增强整体数据传输。</p>
<p><strong>配置文件:</strong> <code class="docutils literal notranslate"><span class="pre">shm_fastdds.xml</span></code></p>
<p>将此文件放在 <code class="docutils literal notranslate"><span class="pre">$HOME</span></code> 目录中。</p>
@@ -546,7 +546,7 @@ net.core.wmem_default<span class="o">=</span><span class="m">2147483647</span>
<div role="contentinfo">
<p>&#169; 版权所有 2025, 奥比中光科技集团股份有限公司 www.orbbec.com.。
<span class="lastupdated">最后更新于 2026年01月07日 06:53:11.
<span class="lastupdated">最后更新于 2026年01月13日 02:41:42.
</span></p>
</div>
@@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>5.1.1. 使用Orbbec ROS包降低CPU使用率 &mdash; OrbbecSDK V2 ROS2 封装 文档</title>
<link rel="stylesheet" type="text/css" href="../../../../_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="../../../../_static/css/theme.css?v=e59714d7" />
<link rel="stylesheet" type="text/css" href="../../../../_static/css/theme.css?v=9edc463e" />
<link rel="stylesheet" type="text/css" href="../../../../_static/custom.css?v=63de077d" />
@@ -16,9 +16,9 @@
<script src="../../../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../../../_static/documentation_options.js?v=7d86a446"></script>
<script src="../../../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../../_static/translations.js?v=beaddf03"></script>
<script src="../../../../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../../../../_static/sphinx_highlight.js?v=6ffebe34"></script>
<script src="../../../../_static/translations.js?v=540d3cec"></script>
<script src="../../../../_static/js/theme.js"></script>
<link rel="index" title="索引" href="../../../../genindex.html" />
<link rel="search" title="搜索" href="../../../../search.html" />
@@ -132,7 +132,7 @@
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/launch_parameters.html#id18">4.1.6. 深度滤波器</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/services.html">4.2. 所有可用的相机控制服务</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../4_application_guide/services.html">4.2. 可用服务</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../4_application_guide/services.html#id2">4.2.1. 数据流控制</a><ul>
<li class="toctree-l5"><a class="reference internal" href="../../4_application_guide/services.html#id3">4.2.1.1. 彩色流</a></li>
<li class="toctree-l5"><a class="reference internal" href="../../4_application_guide/services.html#id4">4.2.1.2. 深度流</a></li>
@@ -402,11 +402,11 @@
<div itemprop="articleBody">
<div class="lang-switch" style="margin:0 0 1em 0; font-size:0.9em;"><a class="lang-other" href="#">English</a> | <a class="lang-current" href="#">中文</a></div><script>(function(){var p=window.location.pathname;var isEn=p.indexOf('/en/')!==-1 && p.indexOf('/zh/')===-1;if(p.indexOf('/zh/')!==-1) isEn=false;var other = isEn ? p.replace(/\/en\//, '/zh/') : p.replace(/\/zh\//, '/en/');var current=p;var sw=document.querySelector('.lang-switch'); if(!sw) return;var o=sw.querySelector('.lang-other'); var c=sw.querySelector('.lang-current');if(isEn){ o.textContent='中文'; c.textContent='English'; } else { o.textContent='English'; c.textContent='中文'; }o.setAttribute('href', other); c.setAttribute('href', current);})();</script><section id="orbbec-roscpu">
<h1><span class="section-number">5.1.1. </span>使用Orbbec ROS包降低CPU使用率<a class="headerlink" href="#orbbec-roscpu" title="Link to this heading"></a></h1>
<h1><span class="section-number">5.1.1. </span>使用Orbbec ROS包降低CPU使用率<a class="headerlink" href="#orbbec-roscpu" title="链接到此标题。"></a></h1>
<p>您可以在 <a class="reference external" href="https://github.com/orbbec/OrbbecSDK_ROS2/tree/v2-main/orbbec_camera/examples">示例</a> 中找到使用示例代码。</p>
<p>本文档概述了在使用 <strong>Gemini 330系列相机</strong> 的 <strong>OrbbecSDK_ROS2 v2</strong> 环境中最小化CPU使用率的策略。固件版本必须 <strong>不低于1.4.10</strong>,且 <code class="docutils literal notranslate"><span class="pre">device</span></code> 应设置为 <strong>Default</strong>。</p>
<section id="cpu">
<h2><span class="section-number">5.1.1.1. </span>降低CPU使用率的推荐设置<a class="headerlink" href="#cpu" title="Link to this heading"></a></h2>
<h2><span class="section-number">5.1.1.1. </span>降低CPU使用率的推荐设置<a class="headerlink" href="#cpu" title="链接到此标题。"></a></h2>
<p>要在OrbbecSDK_ROS2中实现最低的CPU使用率,建议配置以下参数。</p>
<table border="1" class="docutils">
<thead>
@@ -435,14 +435,14 @@
</tbody>
</table></section>
<section id="id1">
<h2><span class="section-number">5.1.1.2. </span>用于测试的启动文件<a class="headerlink" href="#id1" title="Link to this heading"></a></h2>
<h2><span class="section-number">5.1.1.2. </span>用于测试的启动文件<a class="headerlink" href="#id1" title="链接到此标题。"></a></h2>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">gemini_330_series_lower_cpu_usage.launch.py</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">multi_camera_lower_cpu_usage.launch.py</span></code></p></li>
</ul>
</section>
<section id="id2">
<h2><span class="section-number">5.1.1.3. </span>测试环境<a class="headerlink" href="#id2" title="Link to this heading"></a></h2>
<h2><span class="section-number">5.1.1.3. </span>测试环境<a class="headerlink" href="#id2" title="链接到此标题。"></a></h2>
<p><strong>硬件配置</strong></p>
<ul class="simple">
<li><p><strong>CPU</strong>: Intel i7-8700 &#64; 3.20GHz</p></li>
@@ -463,7 +463,7 @@
</ul>
</section>
<section id="id3">
<h2><span class="section-number">5.1.1.4. </span>测试设置<a class="headerlink" href="#id3" title="Link to this heading"></a></h2>
<h2><span class="section-number">5.1.1.4. </span>测试设置<a class="headerlink" href="#id3" title="链接到此标题。"></a></h2>
<p><strong>数据流设置:</strong></p>
<ul class="simple">
<li><p>深度/左IR/右IR: 848×480 &#64; 30fps</p></li>
@@ -472,7 +472,7 @@
<p>注意:以下CPU使用率数据重点关注 <code class="docutils literal notranslate"><span class="pre">uvc_backend</span></code>、<code class="docutils literal notranslate"><span class="pre">color_format</span></code> 和各种滤波器组合。</p>
</section>
<section id="id4">
<h2><span class="section-number">5.1.1.5. </span>测试结果<a class="headerlink" href="#id4" title="Link to this heading"></a></h2>
<h2><span class="section-number">5.1.1.5. </span>测试结果<a class="headerlink" href="#id4" title="链接到此标题。"></a></h2>
<p><strong><code class="docutils literal notranslate"><span class="pre">uvc_backend</span></code> 对比(RGB格式)</strong></p>
<table border="1" class="docutils">
<thead>
@@ -566,7 +566,7 @@
</table><p>根据测试结果,仅使用 <code class="docutils literal notranslate"><span class="pre">hardware_noise_removal_filter</span></code> 相比无滤波器基准,对 <code class="docutils literal notranslate"><span class="pre">libuvc</span></code>(+3.5%)和 <code class="docutils literal notranslate"><span class="pre">v4l2</span></code>(-3.4%)的CPU使用率变化可以忽略不计,因为此滤波器在相机硬件内部运行。相比之下,其他滤波器在主机系统上执行。将 <code class="docutils literal notranslate"><span class="pre">spatial_filter</span></code> 添加到硬件滤波器会导致CPU使用率适度增加,而应用基于软件的 <code class="docutils literal notranslate"><span class="pre">noise_removal_filter</span></code>——无论是单独使用还是与 <code class="docutils literal notranslate"><span class="pre">spatial_filter</span></code> 结合——都会显著增加CPU负载。为保持较低的CPU使用率,建议避免使用基于软件的滤波器,仅依赖 <code class="docutils literal notranslate"><span class="pre">hardware_noise_removal_filter</span></code>。</p>
</section>
<section id="id5">
<h2><span class="section-number">5.1.1.6. </span>进一步优化<a class="headerlink" href="#id5" title="Link to this heading"></a></h2>
<h2><span class="section-number">5.1.1.6. </span>进一步优化<a class="headerlink" href="#id5" title="链接到此标题。"></a></h2>
<table border="1" class="docutils">
<thead>
<tr>
@@ -607,7 +607,7 @@
<div role="contentinfo">
<p>&#169; 版权所有 2025, 奥比中光科技集团股份有限公司 www.orbbec.com.。
<span class="lastupdated">最后更新于 2026年01月07日 06:53:11.
<span class="lastupdated">最后更新于 2026年01月13日 02:41:42.
</span></p>
</div>
@@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>6. 性能基准测试 &mdash; OrbbecSDK V2 ROS2 封装 文档</title>
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=e59714d7" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=9edc463e" />
<link rel="stylesheet" type="text/css" href="../../../_static/custom.css?v=63de077d" />
@@ -16,9 +16,9 @@
<script src="../../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../../_static/documentation_options.js?v=7d86a446"></script>
<script src="../../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../_static/translations.js?v=beaddf03"></script>
<script src="../../../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../../../_static/sphinx_highlight.js?v=6ffebe34"></script>
<script src="../../../_static/translations.js?v=540d3cec"></script>
<script src="../../../_static/js/theme.js"></script>
<link rel="index" title="索引" href="../../../genindex.html" />
<link rel="search" title="搜索" href="../../../search.html" />
@@ -132,7 +132,7 @@
<li class="toctree-l4"><a class="reference internal" href="../4_application_guide/launch_parameters.html#id18">4.1.6. 深度滤波器</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../4_application_guide/services.html">4.2. 所有可用的相机控制服务</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../4_application_guide/services.html">4.2. 可用服务</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../4_application_guide/services.html#id2">4.2.1. 数据流控制</a><ul>
<li class="toctree-l5"><a class="reference internal" href="../4_application_guide/services.html#id3">4.2.1.1. 彩色流</a></li>
<li class="toctree-l5"><a class="reference internal" href="../4_application_guide/services.html#id4">4.2.1.2. 深度流</a></li>
@@ -401,7 +401,7 @@
<div itemprop="articleBody">
<div class="lang-switch" style="margin:0 0 1em 0; font-size:0.9em;"><a class="lang-other" href="#">English</a> | <a class="lang-current" href="#">中文</a></div><script>(function(){var p=window.location.pathname;var isEn=p.indexOf('/en/')!==-1 && p.indexOf('/zh/')===-1;if(p.indexOf('/zh/')!==-1) isEn=false;var other = isEn ? p.replace(/\/en\//, '/zh/') : p.replace(/\/zh\//, '/en/');var current=p;var sw=document.querySelector('.lang-switch'); if(!sw) return;var o=sw.querySelector('.lang-other'); var c=sw.querySelector('.lang-current');if(isEn){ o.textContent='中文'; c.textContent='English'; } else { o.textContent='English'; c.textContent='中文'; }o.setAttribute('href', other); c.setAttribute('href', current);})();</script><section id="id1">
<h1><span class="section-number">6. </span>性能基准测试<a class="headerlink" href="#id1" title="Link to this heading"></a></h1>
<h1><span class="section-number">6. </span>性能基准测试<a class="headerlink" href="#id1" title="链接到此标题。"></a></h1>
<p>本章介绍如何使用性能基准测试工具,并提供不同相机的测试结果。</p>
<div class="toctree-wrapper compound">
<ul>
@@ -440,7 +440,7 @@
<div role="contentinfo">
<p>&#169; 版权所有 2025, 奥比中光科技集团股份有限公司 www.orbbec.com.。
<span class="lastupdated">最后更新于 2026年01月07日 06:53:11.
<span class="lastupdated">最后更新于 2026年01月13日 02:41:42.
</span></p>
</div>
@@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>6.3. 性能基准测试数据 &mdash; OrbbecSDK V2 ROS2 封装 文档</title>
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=e59714d7" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=9edc463e" />
<link rel="stylesheet" type="text/css" href="../../../_static/custom.css?v=63de077d" />
@@ -16,9 +16,9 @@
<script src="../../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../../_static/documentation_options.js?v=7d86a446"></script>
<script src="../../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../_static/translations.js?v=beaddf03"></script>
<script src="../../../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../../../_static/sphinx_highlight.js?v=6ffebe34"></script>
<script src="../../../_static/translations.js?v=540d3cec"></script>
<script src="../../../_static/js/theme.js"></script>
<link rel="index" title="索引" href="../../../genindex.html" />
<link rel="search" title="搜索" href="../../../search.html" />
@@ -132,7 +132,7 @@
<li class="toctree-l4"><a class="reference internal" href="../4_application_guide/launch_parameters.html#id18">4.1.6. 深度滤波器</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../4_application_guide/services.html">4.2. 所有可用的相机控制服务</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../4_application_guide/services.html">4.2. 可用服务</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../4_application_guide/services.html#id2">4.2.1. 数据流控制</a><ul>
<li class="toctree-l5"><a class="reference internal" href="../4_application_guide/services.html#id3">4.2.1.1. 彩色流</a></li>
<li class="toctree-l5"><a class="reference internal" href="../4_application_guide/services.html#id4">4.2.1.2. 深度流</a></li>
@@ -402,17 +402,17 @@
<div itemprop="articleBody">
<div class="lang-switch" style="margin:0 0 1em 0; font-size:0.9em;"><a class="lang-other" href="#">English</a> | <a class="lang-current" href="#">中文</a></div><script>(function(){var p=window.location.pathname;var isEn=p.indexOf('/en/')!==-1 && p.indexOf('/zh/')===-1;if(p.indexOf('/zh/')!==-1) isEn=false;var other = isEn ? p.replace(/\/en\//, '/zh/') : p.replace(/\/zh\//, '/en/');var current=p;var sw=document.querySelector('.lang-switch'); if(!sw) return;var o=sw.querySelector('.lang-other'); var c=sw.querySelector('.lang-current');if(isEn){ o.textContent='中文'; c.textContent='English'; } else { o.textContent='English'; c.textContent='中文'; }o.setAttribute('href', other); c.setAttribute('href', current);})();</script><section id="id1">
<h1><span class="section-number">6.3. </span>性能基准测试数据<a class="headerlink" href="#id1" title="Link to this heading"></a></h1>
<h1><span class="section-number">6.3. </span>性能基准测试数据<a class="headerlink" href="#id1" title="链接到此标题。"></a></h1>
<p>本节记录了使用性能基准测试工具测试不同相机的数据。点击链接下载 xlsx 数据。</p>
<section id="id2">
<h2><span class="section-number">6.3.1. </span>通用基准测试数据<a class="headerlink" href="#id2" title="Link to this heading"></a></h2>
<h2><span class="section-number">6.3.1. </span>通用基准测试数据<a class="headerlink" href="#id2" title="链接到此标题。"></a></h2>
<p>使用默认启动文件运行 <code class="docutils literal notranslate"><span class="pre">common_benchmark_node</span></code> 并测试 1 小时的数据。</p>
<ul class="simple">
<li><p><a class="reference external" href="../../_static/ros2_common_benchmark_data.xlsx">通用基准测试数据</a></p></li>
</ul>
</section>
<section id="id3">
<h2><span class="section-number">6.3.2. </span>服务基准测试数据<a class="headerlink" href="#id3" title="Link to this heading"></a></h2>
<h2><span class="section-number">6.3.2. </span>服务基准测试数据<a class="headerlink" href="#id3" title="链接到此标题。"></a></h2>
<p>使用默认启动文件分别运行 <code class="docutils literal notranslate"><span class="pre">service_benchmark_node</span></code> 和 <code class="docutils literal notranslate"><span class="pre">service_benchmark_node.py</span></code>。每个服务调用 10 次,并记录数据。</p>
<ul class="simple">
<li><p><a class="reference external" href="../../_static/ros2_service_benchmark_cpp.xlsx">服务基准测试数据 C++</a></p></li>
@@ -433,7 +433,7 @@
<div role="contentinfo">
<p>&#169; 版权所有 2025, 奥比中光科技集团股份有限公司 www.orbbec.com.。
<span class="lastupdated">最后更新于 2026年01月07日 06:53:11.
<span class="lastupdated">最后更新于 2026年01月13日 02:41:42.
</span></p>
</div>
@@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>6.2. 性能基准测试使用 &mdash; OrbbecSDK V2 ROS2 封装 文档</title>
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=e59714d7" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=9edc463e" />
<link rel="stylesheet" type="text/css" href="../../../_static/custom.css?v=63de077d" />
@@ -16,9 +16,9 @@
<script src="../../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../../_static/documentation_options.js?v=7d86a446"></script>
<script src="../../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../_static/translations.js?v=beaddf03"></script>
<script src="../../../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../../../_static/sphinx_highlight.js?v=6ffebe34"></script>
<script src="../../../_static/translations.js?v=540d3cec"></script>
<script src="../../../_static/js/theme.js"></script>
<link rel="index" title="索引" href="../../../genindex.html" />
<link rel="search" title="搜索" href="../../../search.html" />
@@ -132,7 +132,7 @@
<li class="toctree-l4"><a class="reference internal" href="../4_application_guide/launch_parameters.html#id18">4.1.6. 深度滤波器</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../4_application_guide/services.html">4.2. 所有可用的相机控制服务</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../4_application_guide/services.html">4.2. 可用服务</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../4_application_guide/services.html#id2">4.2.1. 数据流控制</a><ul>
<li class="toctree-l5"><a class="reference internal" href="../4_application_guide/services.html#id3">4.2.1.1. 彩色流</a></li>
<li class="toctree-l5"><a class="reference internal" href="../4_application_guide/services.html#id4">4.2.1.2. 深度流</a></li>
@@ -402,10 +402,10 @@
<div itemprop="articleBody">
<div class="lang-switch" style="margin:0 0 1em 0; font-size:0.9em;"><a class="lang-other" href="#">English</a> | <a class="lang-current" href="#">中文</a></div><script>(function(){var p=window.location.pathname;var isEn=p.indexOf('/en/')!==-1 && p.indexOf('/zh/')===-1;if(p.indexOf('/zh/')!==-1) isEn=false;var other = isEn ? p.replace(/\/en\//, '/zh/') : p.replace(/\/zh\//, '/en/');var current=p;var sw=document.querySelector('.lang-switch'); if(!sw) return;var o=sw.querySelector('.lang-other'); var c=sw.querySelector('.lang-current');if(isEn){ o.textContent='中文'; c.textContent='English'; } else { o.textContent='English'; c.textContent='中文'; }o.setAttribute('href', other); c.setAttribute('href', current);})();</script><section id="id1">
<h1><span class="section-number">6.2. </span>性能基准测试使用<a class="headerlink" href="#id1" title="Link to this heading"></a></h1>
<h1><span class="section-number">6.2. </span>性能基准测试使用<a class="headerlink" href="#id1" title="链接到此标题。"></a></h1>
<p>本节介绍如何在 C++ 和 Python 中使用性能基准测试工具,并提供示例 YAML 配置文件。</p>
<section id="id2">
<h2><span class="section-number">6.2.1. </span>使用通用基准测试节点<a class="headerlink" href="#id2" title="Link to this heading"></a></h2>
<h2><span class="section-number">6.2.1. </span>使用通用基准测试节点<a class="headerlink" href="#id2" title="链接到此标题。"></a></h2>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">ros2</span> <span class="n">run</span> <span class="n">orbbec_camera</span> <span class="n">common_benchmark_node</span><span class="o">.</span><span class="n">py</span> \
<span class="o">--</span><span class="n">run_time</span> <span class="mi">2</span><span class="n">h</span> \
<span class="o">--</span><span class="n">csv_file</span> <span class="o">/</span><span class="n">path</span><span class="o">/</span><span class="n">to</span><span class="o">/</span><span class="n">log</span><span class="o">.</span><span class="n">csv</span>
@@ -421,9 +421,9 @@
</ul>
</section>
<section id="id3">
<h2><span class="section-number">6.2.2. </span>使用服务基准测试节点<a class="headerlink" href="#id3" title="Link to this heading"></a></h2>
<h2><span class="section-number">6.2.2. </span>使用服务基准测试节点<a class="headerlink" href="#id3" title="链接到此标题。"></a></h2>
<section id="ros2-c">
<h3><span class="section-number">6.2.2.1. </span>ROS2 C++<a class="headerlink" href="#ros2-c" title="Link to this heading"></a></h3>
<h3><span class="section-number">6.2.2.1. </span>ROS2 C++<a class="headerlink" href="#ros2-c" title="链接到此标题。"></a></h3>
<ul class="simple">
<li><p><strong>单个服务基准测试</strong></p></li>
</ul>
@@ -444,7 +444,7 @@
</div>
</section>
<section id="ros2-python">
<h3><span class="section-number">6.2.2.2. </span>ROS2 Python<a class="headerlink" href="#ros2-python" title="Link to this heading"></a></h3>
<h3><span class="section-number">6.2.2.2. </span>ROS2 Python<a class="headerlink" href="#ros2-python" title="链接到此标题。"></a></h3>
<ul class="simple">
<li><p><strong>单个服务基准测试</strong></p></li>
</ul>
@@ -459,7 +459,7 @@
</div>
</section>
<section id="yaml">
<h3><span class="section-number">6.2.2.3. </span><strong>示例 YAML 配置</strong><a class="headerlink" href="#yaml" title="Link to this heading"></a></h3>
<h3><span class="section-number">6.2.2.3. </span><strong>示例 YAML 配置</strong><a class="headerlink" href="#yaml" title="链接到此标题。"></a></h3>
<p>我们提供了一个示例 YAML 配置,位于 <code class="docutils literal notranslate"><span class="pre">scripts</span></code> 目录中,名为 <code class="docutils literal notranslate"><span class="pre">service_default.yaml</span></code>。</p>
<div class="highlight-yaml notranslate"><div class="highlight"><pre><span></span><span class="nt">default_count</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">50</span>
@@ -536,7 +536,7 @@
<div role="contentinfo">
<p>&#169; 版权所有 2025, 奥比中光科技集团股份有限公司 www.orbbec.com.。
<span class="lastupdated">最后更新于 2026年01月07日 06:53:11.
<span class="lastupdated">最后更新于 2026年01月13日 02:41:42.
</span></p>
</div>
@@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>6.1. 介绍 &mdash; OrbbecSDK V2 ROS2 封装 文档</title>
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=e59714d7" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=9edc463e" />
<link rel="stylesheet" type="text/css" href="../../../_static/custom.css?v=63de077d" />
@@ -16,9 +16,9 @@
<script src="../../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../../_static/documentation_options.js?v=7d86a446"></script>
<script src="../../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../_static/translations.js?v=beaddf03"></script>
<script src="../../../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../../../_static/sphinx_highlight.js?v=6ffebe34"></script>
<script src="../../../_static/translations.js?v=540d3cec"></script>
<script src="../../../_static/js/theme.js"></script>
<link rel="index" title="索引" href="../../../genindex.html" />
<link rel="search" title="搜索" href="../../../search.html" />
@@ -132,7 +132,7 @@
<li class="toctree-l4"><a class="reference internal" href="../4_application_guide/launch_parameters.html#id18">4.1.6. 深度滤波器</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../4_application_guide/services.html">4.2. 所有可用的相机控制服务</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../4_application_guide/services.html">4.2. 可用服务</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../4_application_guide/services.html#id2">4.2.1. 数据流控制</a><ul>
<li class="toctree-l5"><a class="reference internal" href="../4_application_guide/services.html#id3">4.2.1.1. 彩色流</a></li>
<li class="toctree-l5"><a class="reference internal" href="../4_application_guide/services.html#id4">4.2.1.2. 深度流</a></li>
@@ -402,10 +402,10 @@
<div itemprop="articleBody">
<div class="lang-switch" style="margin:0 0 1em 0; font-size:0.9em;"><a class="lang-other" href="#">English</a> | <a class="lang-current" href="#">中文</a></div><script>(function(){var p=window.location.pathname;var isEn=p.indexOf('/en/')!==-1 && p.indexOf('/zh/')===-1;if(p.indexOf('/zh/')!==-1) isEn=false;var other = isEn ? p.replace(/\/en\//, '/zh/') : p.replace(/\/zh\//, '/en/');var current=p;var sw=document.querySelector('.lang-switch'); if(!sw) return;var o=sw.querySelector('.lang-other'); var c=sw.querySelector('.lang-current');if(isEn){ o.textContent='中文'; c.textContent='English'; } else { o.textContent='English'; c.textContent='中文'; }o.setAttribute('href', other); c.setAttribute('href', current);})();</script><section id="id1">
<h1><span class="section-number">6.1. </span>介绍<a class="headerlink" href="#id1" title="Link to this heading"></a></h1>
<h1><span class="section-number">6.1. </span>介绍<a class="headerlink" href="#id1" title="链接到此标题。"></a></h1>
<p>本节介绍性能基准测试工具,解释其目的、功能以及它可以帮助您测量的内容。</p>
<section id="id2">
<h2><span class="section-number">6.1.1. </span>通用基准测试节点<a class="headerlink" href="#id2" title="Link to this heading"></a></h2>
<h2><span class="section-number">6.1.1. </span>通用基准测试节点<a class="headerlink" href="#id2" title="链接到此标题。"></a></h2>
<p><code class="docutils literal notranslate"><span class="pre">common_benchmark_node.py</span></code> 是一个用于监控在 ROS 环境中运行的 Orbbec 相机性能的工具。它实时收集和记录关键相机指标,如帧率、延迟、系统资源使用和丢包率,帮助用户评估相机节点的稳定性和性能(每秒更新一次)。</p>
<p><strong>功能</strong></p>
<ul class="simple">
@@ -421,7 +421,7 @@
<p><img alt="common_benchmark_ros2" src="../../../_images/common_benchmark_ros2.png" /></p>
</section>
<section id="id3">
<h2><span class="section-number">6.1.2. </span>服务基准测试节点<a class="headerlink" href="#id3" title="Link to this heading"></a></h2>
<h2><span class="section-number">6.1.2. </span>服务基准测试节点<a class="headerlink" href="#id3" title="链接到此标题。"></a></h2>
<p><code class="docutils literal notranslate"><span class="pre">service_benchmark_node</span></code> 工具用于监控服务调用的性能。它可以测量服务调用的成功率和执行服务所需的时间。</p>
<p><strong>功能</strong></p>
<ul class="simple">
@@ -447,7 +447,7 @@
<div role="contentinfo">
<p>&#169; 版权所有 2025, 奥比中光科技集团股份有限公司 www.orbbec.com.。
<span class="lastupdated">最后更新于 2026年01月07日 06:53:11.
<span class="lastupdated">最后更新于 2026年01月13日 02:41:42.
</span></p>
</div>

Some files were not shown because too many files have changed in this diff Show More