|
我最近做了一个机器人视觉抓取项目,目的是让机器人准确地将咖啡放在桌子上,并将其交给我旁边的人。当前的实施结果是可以捕获任意放置在某个区域的纸杯。水平定位精度在20mm之内,垂直定位精度很差,并且误差为20〜35mm。原因是垂直方向对应于相机。深度方向。
以下是项目中某些代码使用情况和错误解决方案的摘要。大多数代码已经是开源解决方案,但是在使用时,总是会有各种问题,所有问题都依赖于其他人的博客和代码库的问题。已解决。
1。定位1.1参数设置
有一个特殊的ROS版本代码()。在运行代码之前,必须安装相机驱动程序并校准相机。
在启动节点之前,您必须首先设置标签。
///.yaml
<p style='margin-bottom:15px;color:#555555;font-size:15px;line-height:200%;text-indent:2em;'> <pre><code class="prism language-yaml"><span class="token key atrule">tag_family</span><span class="token punctuation">:</span> <span class="token string">'tag36h11'</span> <span class="token comment"># options: tagStandard52h13, tagStandard41h12, tag36h11, tag25h9, tag16h5, tagCustom48h12, tagCircle21h7, tagCircle49h12</span>
<span class="token key atrule">tag_threads</span><span class="token punctuation">:</span> <span class="token number">2</span> <span class="token comment"># default: 2</span>
<span class="token key atrule">tag_decimate</span><span class="token punctuation">:</span> <span class="token number">1.0</span> <span class="token comment"># default: 1.0</span>
</code></pre></p>
必须注意的是,它与打印的标签是一致的,并且通常您使用36H11。
////tags.yaml
<p style='margin-bottom:15px;color:#555555;font-size:15px;line-height:200%;text-indent:2em;'> <pre><code class="prism language-yaml"><span class="token key atrule">standalone_tags</span><span class="token punctuation">:</span>
<span class="token punctuation">[</span>
<span class="token comment"># {id: 1, size: 0.058}, #size对应标签的大小</span>
<span class="token comment"># {id: 0, size: 0.048},</span>
<span class="token comment"># {id: 0, size: 0.04},</span>
<span class="token comment"># {id: 1, size: 0.04}, </span>
<span class="token comment"># {id: 2, size: 0.04},</span>
<span class="token comment"># {id: 3, size: 0.04}, </span>
<span class="token comment"># {id: 4, size: 0.04}</span>
<span class="token punctuation">]</span>
<span class="token key atrule">tag_bundles</span><span class="token punctuation">:</span>
<span class="token punctuation">[</span>
<span class="token punctuation">{</span>
<span class="token key atrule">name</span><span class="token punctuation">:</span> <span class="token string">'my_bundle'</span><span class="token punctuation">,</span>
<span class="token key atrule">layout</span><span class="token punctuation">:</span>
<span class="token punctuation">[</span>
<span class="token punctuation">{</span><span class="token key atrule">id</span><span class="token punctuation">:</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token key atrule">size</span><span class="token punctuation">:</span> <span class="token number">0.044</span><span class="token punctuation">,</span> <span class="token key atrule">x</span><span class="token punctuation">:</span> <span class="token number">0.0000</span><span class="token punctuation">,</span> <span class="token key atrule">y</span><span class="token punctuation">:</span> <span class="token number">0.0000</span><span class="token punctuation">,</span> <span class="token key atrule">z</span><span class="token punctuation">:</span> <span class="token number">0.0000</span><span class="token punctuation">,</span> <span class="token key atrule">qw</span><span class="token punctuation">:</span> <span class="token number">1.0000</span><span class="token punctuation">,</span> <span class="token key atrule">qx</span><span class="token punctuation">:</span> <span class="token number">0.0000</span><span class="token punctuation">,</span> <span class="token key atrule">qy</span><span class="token punctuation">:</span> <span class="token number">0.0000</span><span class="token punctuation">,</span> <span class="token key atrule">qz</span><span class="token punctuation">:</span> <span class="token number">0.0000</span><span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">{</span><span class="token key atrule">id</span><span class="token punctuation">:</span> <span class="token number">4</span><span class="token punctuation">,</span> <span class="token key atrule">size</span><span class="token punctuation">:</span> <span class="token number">0.044</span><span class="token punctuation">,</span> <span class="token key atrule">x</span><span class="token punctuation">:</span> <span class="token number">0.0300</span><span class="token punctuation">,</span> <span class="token key atrule">y</span><span class="token punctuation">:</span> <span class="token number">-0.0830</span><span class="token punctuation">,</span> <span class="token key atrule">z</span><span class="token punctuation">:</span> <span class="token number">0.0000</span><span class="token punctuation">,</span> <span class="token key atrule">qw</span><span class="token punctuation">:</span> <span class="token number">1.0000</span><span class="token punctuation">,</span> <span class="token key atrule">qx</span><span class="token punctuation">:</span> <span class="token number">0.0000</span><span class="token punctuation">,</span> <span class="token key atrule">qy</span><span class="token punctuation">:</span> <span class="token number">0.0000</span><span class="token punctuation">,</span> <span class="token key atrule">qz</span><span class="token punctuation">:</span> <span class="token number">0.0000</span><span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">{</span><span class="token key atrule">id</span><span class="token punctuation">:</span> <span class="token number">3</span><span class="token punctuation">,</span> <span class="token key atrule">size</span><span class="token punctuation">:</span> <span class="token number">0.044</span><span class="token punctuation">,</span> <span class="token key atrule">x</span><span class="token punctuation">:</span> <span class="token number">-0.0300</span><span class="token punctuation">,</span> <span class="token key atrule">y</span><span class="token punctuation">:</span> <span class="token number">-0.0830</span><span class="token punctuation">,</span> <span class="token key atrule">z</span><span class="token punctuation">:</span> <span class="token number">0.0000</span><span class="token punctuation">,</span> <span class="token key atrule">qw</span><span class="token punctuation">:</span> <span class="token number">1.0000</span><span class="token punctuation">,</span> <span class="token key atrule">qx</span><span class="token punctuation">:</span> <span class="token number">0.0000</span><span class="token punctuation">,</span> <span class="token key atrule">qy</span><span class="token punctuation">:</span> <span class="token number">0.0000</span><span class="token punctuation">,</span> <span class="token key atrule">qz</span><span class="token punctuation">:</span> <span class="token number">0.0000</span><span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">{</span><span class="token key atrule">id</span><span class="token punctuation">:</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token key atrule">size</span><span class="token punctuation">:</span> <span class="token number">0.044</span><span class="token punctuation">,</span> <span class="token key atrule">x</span><span class="token punctuation">:</span> <span class="token number">0.0300</span><span class="token punctuation">,</span> <span class="token key atrule">y</span><span class="token punctuation">:</span> <span class="token number">0.0830</span><span class="token punctuation">,</span> <span class="token key atrule">z</span><span class="token punctuation">:</span> <span class="token number">0.0000</span><span class="token punctuation">,</span> <span class="token key atrule">qw</span><span class="token punctuation">:</span> <span class="token number">1.0000</span><span class="token punctuation">,</span> <span class="token key atrule">qx</span><span class="token punctuation">:</span> <span class="token number">0.0000</span><span class="token punctuation">,</span> <span class="token key atrule">qy</span><span class="token punctuation">:</span> <span class="token number">0.0000</span><span class="token punctuation">,</span> <span class="token key atrule">qz</span><span class="token punctuation">:</span> <span class="token number">0.0000</span><span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">{</span><span class="token key atrule">id</span><span class="token punctuation">:</span> <span class="token number">1</span><span class="token punctuation">,</span> <span class="token key atrule">size</span><span class="token punctuation">:</span> <span class="token number">0.044</span><span class="token punctuation">,</span> <span class="token key atrule">x</span><span class="token punctuation">:</span> <span class="token number">-0.0300</span><span class="token punctuation">,</span> <span class="token key atrule">y</span><span class="token punctuation">:</span> <span class="token number">0.0830</span><span class="token punctuation">,</span> <span class="token key atrule">z</span><span class="token punctuation">:</span> <span class="token number">0.0000</span><span class="token punctuation">,</span> <span class="token key atrule">qw</span><span class="token punctuation">:</span> <span class="token number">1.0000</span><span class="token punctuation">,</span> <span class="token key atrule">qx</span><span class="token punctuation">:</span> <span class="token number">0.0000</span><span class="token punctuation">,</span> <span class="token key atrule">qy</span><span class="token punctuation">:</span> <span class="token number">0.0000</span><span class="token punctuation">,</span> <span class="token key atrule">qz</span><span class="token punctuation">:</span> <span class="token number">0.0000</span><span class="token punctuation">}</span>
<span class="token punctuation">]</span>
<span class="token punctuation">}</span>
<span class="token punctuation">]</span>
</code></pre></p>
如果tags.yaml,则必须注意两者之间的区别。
1.2 USB摄像机启动
我在源代码中安装了驱动程序包,但是源代码没有用。我没有阅读或修改它。整个项目仅使用文件检验。
//-测试。
<p style='margin-bottom:15px;color:#555555;font-size:15px;line-height:200%;text-indent:2em;'> <pre><code class="prism language-xml"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>launch</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>node</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>usb_cam<span class="token punctuation">"</span></span> <span class="token attr-name">pkg</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>usb_cam<span class="token punctuation">"</span></span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>usb_cam_node<span class="token punctuation">"</span></span> <span class="token attr-name">output</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>screen<span class="token punctuation">"</span></span> <span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>param</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>camera_info_url<span class="token punctuation">"</span></span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>string<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>file:///home/jeremy/.ros/camera_info/head_camera.yaml<span class="token punctuation">"</span></span><span class="token punctuation">/></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>param</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>video_device<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>/dev/video2<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>param</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>image_width<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>640<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>param</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>image_height<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>480<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>param</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>pixel_format<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>yuyv<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>param</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>camera_frame_id<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>usb_cam<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>param</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>io_method<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>mmap<span class="token punctuation">"</span></span><span class="token punctuation">/></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>node</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>node</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>image_view<span class="token punctuation">"</span></span> <span class="token attr-name">pkg</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>image_view<span class="token punctuation">"</span></span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>image_view<span class="token punctuation">"</span></span> <span class="token attr-name">respawn</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>false<span class="token punctuation">"</span></span> <span class="token attr-name">output</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>screen<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>remap</span> <span class="token attr-name">from</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>image<span class="token punctuation">"</span></span> <span class="token attr-name">to</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>/usb_cam/image_raw<span class="token punctuation">"</span></span><span class="token punctuation">/></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>param</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>autosize<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>true<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>node</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>launch</span><span class="token punctuation">></span></span>
</code></pre></p>
第三行代码在校准后添加了相机参数的位置。源代码不应有此句子。我在像这样写的手眼校准中看到了一个启动文件,所以我添加了它。 (实际上,我没有看到单眼相机校准的功能。如果我删除了这句话,当我观察输出图像时我不会看到任何更改。但是,为了心理舒适,我最好不要删除它,否则我的准确性将再次消失...)
也有第4行。如果您发现笔记本电脑在启动文件后具有自己的相机(突然出现并感到震惊),然后将其更改为或更改。但是不要更改它,您会说找不到它。
1.3报告错误
[WARN] [。]:of TAG ID [0],但没有找到...
此问题是因为QR代码ID在tags.yaml中未正确设置。重要的是要注意,ID必须与打印的QR码一致。还有一个标签设置,稍后设置多个设置。
启动相机后,我发现图像是黑色的
当我遇到这个问题时,我在线搜索了很长时间,并根据其他博客作者更改了文件中的参数,但它们毫无用处。最后,我被逗乐和笑了,意识到单眼相机的光圈被最小化了,当孔径增加时,它出现了。对不起,我已经反复测试了在使用时是否可以使用相机。
输出位置信息为0
尚未执行摄像机校准,并且摄像机参数未保存到.ROS/ 。
2。使用Jaka机器人API
Jaka有一个官方的API二级开发文档,该文件更详细地编写,但是我的机器人控制代码是用C ++编写的,因此我在开发过程中使用了C ++ API。通常,首先尝试一下,然后将其更改为C ++,如果它成功。
2.1二级发展
如果您在Linux平台上使用机器人API,则需要将JAKA给出的两个编译库放入与代码相同的文件夹中。在运行代码之前,您还需要将代码文件夹路径添加到环境变量,即在终端中运行以下代码行。我的代码位于抓取/路径下。
<p style='margin-bottom:15px;color:#555555;font-size:15px;line-height:200%;text-indent:2em;'> <pre><code class="prism language-shell"><span class="token builtin class-name">export</span> <span class="token assign-left variable">LD_LIBRARY_PATH</span><span class="token operator">=</span>~/project/jaka/SendCoffee/src/grab/script
</code></pre></p>
要注意的另一件事是,卡机器人的API使用环境为.5。如果您的Linux默认环境为2.7,则可以使用***。py命令运行代码。我的环境是3.6.9,这与3.5的官方要求不一致,但目前我没有问题。
2.2 C ++二级发展
需要编译C ++,因此设置将更加麻烦。我成功地汇编了Jaka给出的文件中的Linux示例代码。具体步骤是首先在“抓取功能”软件包中创建一个抓取/文件夹,然后放入.h,jkerr.h,.h3标头文件中。然后创建Grap/Lib文件夹,然后将其放入编译的C ++静态库中。最后,您只需要正确编写CMAKE编译文件,就可以使用命令对其进行编译。哦,顺便说一句,您必须将要遇到的C ++代码放入Grab/SRC文件夹中。
抓取/.txt
<p style='margin-bottom:15px;color:#555555;font-size:15px;line-height:200%;text-indent:2em;'> <pre><code class="prism language-c"><span class="token function">cmake_minimum_required</span><span class="token punctuation">(</span>VERSION <span class="token number">3.0</span><span class="token number">.2</span><span class="token punctuation">)</span>
<span class="token function">project</span><span class="token punctuation">(</span>grab<span class="token punctuation">)</span>
<span class="token function">find_package</span><span class="token punctuation">(</span>catkin REQUIRED COMPONENTS
roscpp
rospy
std_msgs
apriltag_ros
<span class="token punctuation">)</span>
<span class="token function">catkin_package</span><span class="token punctuation">(</span>
<span class="token macro property"><span class="token directive-hash">#</span> <span class="token expression">INCLUDE_DIRS include</span></span>
<span class="token macro property"><span class="token directive-hash">#</span> <span class="token expression">LIBRARIES test</span></span>
<span class="token macro property"><span class="token directive-hash">#</span> <span class="token expression">CATKIN_DEPENDS roscpp</span></span>
<span class="token macro property"><span class="token directive-hash">#</span> <span class="token expression">DEPENDS system_lib</span></span>
<span class="token punctuation">)</span>
<span class="token function">include_directories</span><span class="token punctuation">(</span>
$<span class="token punctuation">{</span>catkin_INCLUDE_DIRS<span class="token punctuation">}</span>
<span class="token punctuation">)</span>
<span class="token function">include_directories</span><span class="token punctuation">(</span> <span class="token string">"/usr/include/eigen3"</span> <span class="token punctuation">)</span>
<span class="token macro property"><span class="token directive-hash">#</span> <span class="token directive keyword">include</span> <span class="token expression">头文件目录</span></span>
<span class="token function">include_directories</span><span class="token punctuation">(</span>include<span class="token punctuation">)</span>
<span class="token function">LINK_DIRECTORIES</span><span class="token punctuation">(</span>$<span class="token punctuation">(</span>SRC_ROOT_PATH<span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token function">LINK_DIRECTORIES</span><span class="token punctuation">(</span>$<span class="token punctuation">{</span>CMAKE_CURRENT_SOURCE_DIR<span class="token punctuation">}</span><span class="token operator">/</span>lib<span class="token punctuation">)</span>
<span class="token function">LINK_LIBRARIES</span><span class="token punctuation">(</span>pthread<span class="token punctuation">)</span>
# 编译成可执行文件,如果编译动态库可以用:target_link_libraries
<span class="token function">add_executable</span><span class="token punctuation">(</span>control_robot src<span class="token operator">/</span>control_robot<span class="token punctuation">.</span>cpp<span class="token punctuation">)</span>
<span class="token function">target_link_libraries</span><span class="token punctuation">(</span>control_robot jakaAPI<span class="token punctuation">)</span>
<span class="token function">target_link_libraries</span><span class="token punctuation">(</span>control_robot $<span class="token punctuation">{</span>catkin_LIBRARIES<span class="token punctuation">}</span><span class="token punctuation">)</span>
<span class="token function">find_package</span><span class="token punctuation">(</span>Threads<span class="token punctuation">)</span>
<span class="token function">target_link_libraries</span> <span class="token punctuation">(</span>control_robot $<span class="token punctuation">{</span>CMAKE_THREAD_LIBS_INIT<span class="token punctuation">}</span><span class="token punctuation">)</span>
</code></pre></p>
3。机器人手眼校准(眼睛在手外)
手外眼的手眼校准是为了解决相对于机器人底部的摄像机的位置。在此项目中,定位可以在相机坐标系中获得标签的位置,并且抓取目标和标签的相对位置是固定的。因此,完成手眼校准后,可以在标签坐标系统 - >相机坐标系统 - >机器人坐标系中抓取目标的位置转换。
在求解机器人坐标系统下的抓取目标的位置后,可以控制机器人移动到目标点并抓住。
3.1校准方法
我使用了 Ros撰写的-Calib软件包()。该代码对操作步骤进行了详细的介绍。我通过在线校准过程实施了它。 -Calib实际上与功能包的原理相同。它称为CV2。()函数以完成手眼校准。有一个更好的视觉接口,但是相应的代码也更难读取。
许多手眼校准博客都使用驱动程序机器人通过TF树获取机器人位置,但我不知道如何使用它,因此我决定直接致电Jaka SDK以获取机器人位置姿势,并通过ROS发布主题' ::消息格式 /。这样,校准程序可以直接订阅机器人位置主题。以下是修改后的手眼校准文件。
-Calib /// Alib。
<p style='margin-bottom:15px;color:#555555;font-size:15px;line-height:200%;text-indent:2em;'> <pre><code class="prism language-xml"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>launch</span><span class="token punctuation">></span></span>
<span class="token comment"></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>arg</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>camera_pose_topic<span class="token punctuation">"</span></span> <span class="token attr-name">default</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>/aruco_single/pose<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>
<span class="token comment"></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>arg</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>arm_pose_topic<span class="token punctuation">"</span></span> <span class="token attr-name">default</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>/robot_pos<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>node</span> <span class="token attr-name">pkg</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>handeye-calib<span class="token punctuation">"</span></span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>online_hand_to_eye_calib.py<span class="token punctuation">"</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>online_hand_to_eye_calib<span class="token punctuation">"</span></span> <span class="token attr-name">output</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>screen<span class="token punctuation">"</span></span> <span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>param</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>arm_pose_topic<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>$(arg arm_pose_topic)<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>param</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>camera_pose_topic<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>$(arg camera_pose_topic)<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>node</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>launch</span><span class="token punctuation">></span></span>
</code></pre></p>
3.2问题没有命名''
将第一个句子#!/usr/bin/-calib/src // alib.py更改为,因为ROS版本仅支持它,因此代码无法使用ROS包。没有名字
通过PIP安装库。如果没有PIP,请先安装PIP,sudo apt -get -pip。如果手眼校准代码有其他库找不到的错误,则也可以尝试先使用PIP安装。此外,如果您在线搜索错误消息,您将找到许多用于安装库的教程。但是,有必要注意是否需要安装库,只需使用PIP和PIP3即可。 ''没有'
请参阅英特尔D435手眼校准中的博客错误2。 super()。()错误:super()至少1(0给定)
删除super()。()。该句子用于继承父类的初始化功能。作者可能在这里写错了。校准结果非常差
校准过程不应大规模移动机器人,并且不同记录组之间的末端旋转角相对较大。有关提高校准精度的方法,请参阅博客的手眼校准(II):TSAI解决方案方法。在采用博客作者提到的措施之后,校准结果的准确性在10mm的范围内。最喜欢的网址 |
|