法奥机器人ROS2环境搭建

法奥机器人ROS2环境搭建

目录

第一章  SDK文件准备

   1.1  机器人软件版本查看

 第二章 测试平台搭建

2.1虚拟平台安装

                    2.1.1虚拟机安装 

            2.1.2ubuntu 的安装

第三章 软件环境搭建

        3.1  vscode安装

3.2vscode插件安装

3.3  ROS 及环境变量配置

3.1.1 Ros2-humble版本 安装

3.1.2  Ros-control版本安装

3.1.3   Moveit2版本安装

第四章  插件包导入及插件测试

        4.1 MOVEIT2插件包导入

4.2 RVIZ 仿真操作简介

4.3  RVIZ 与机器人实机联动操作简介


第一章  SDK文件准备

   1.1  机器人软件版本查看

               1、登录法奥机器人webapp界面,依次点击 系统设置 》》关于  查看机器人当前机器人软件版本。

   1.2  ros2SDK包下载

           用浏览器访问gitee法奥仓库   FAIR-INNOVATION (fair-innovation) - Gitee.com   然后按下图示选择对应自己版本的ROS2包。

 第二章 测试平台搭建

2.1虚拟平台安装

                    2.1.1虚拟机安装 

国内用户一般使用 Windows系统电脑,在一台电脑上安装多个系统也可以实现,单不符合大多数人的使用习惯,利用软件 “VMware workstation”可在windows上安装多种系统。

此处提供第三方的下载连接: 

VMware Workstation Pro - Download

如有需要,可网络搜索其他下载途径,并按照网络教程进行安装。

本次示例使用的版本为:VMware workstation 16 pro ;对于虚拟机软件的版本并无要求。

            2.1.2ubuntu 的安装

                1)ubuntu 是基于linux的其中一个桌面操作系统,前往ubuntu的官网下载安装镜像。ubuntu 官网中默认下载的是最新版本,SDK对于编译版本有要求,本示例中使用的是ubuntu 22.04.5 LTS 版本:ubuntu-22.04.4-desktop-amd64.iso,可参照以下连接:

https://cn.ubuntu.com/download/alternative-downloads

        如官方网站版本有更新,可网络查询其他连接以下载镜像文件。

        2)打开虚拟机软件,点击选择“创建新的虚拟机”。

        选择典型选项 >>安装光盘文件映象,选择下载的文件 >> 自定义名称及密码>>选择安装位置 >>给定硬盘大小>>点击完成后,虚拟机将自动安装。




  



  

        3)稍作等待,将进入ubuntu安装界面,跟随指引安装完成ubuntu。(相关设置如无特殊要求,使用默认安装即可。)

        安装按成后,点击立即重启,重启完成后,将进入ubuntu登陆界面,界面如下图所示,输入规定的密码,进入ubuntu系统。

        4)点击应用框,选中“setting”,打开设置界面,添加中文语言,并重启。

        重启后,界面如下图所示:

第三章 软件环境搭建

        3.1  vscode安装

        vscode 是较为常用的编辑软件,其具备众多插件,能完成多种语言的编译及编辑工作,本次作为代码查看器使用,单并非编辑代码的唯一方式。利用ubuntu的浏览器,可以直接下载vscode在ubutu的安装包。

        1)打开火狐浏览器,搜索“vscode”,进入官网界面。

        2)点击下载.deb 文件,下载安装包。

        3)打开下载的文件夹,右键空白处点击“在终端中打开”。

        4)在弹出的终端框中输入 “sudo dpkg -i code”,按下“tab”键自动补全剩下文件包名并键入,等待出现下一个输入行后即为安装完成。(期间需要输入密码,密码不可见,输入后按下键入即可)。

        5)打开应用抽屉,检查是否出现vscode图标。

3.2vscode插件安装

        vscode需要安装插件才能正常识别编程文件,点击vscode图标打开软件,并点击插件库查找插件下载。

推荐的插件如下:

chinese(simplified) 简体中文插件,修改界面语言。

c/c++  c/c++的高阶语言插件,用于支持c/c++的编写。

vscode-icons  图标插件,修改文件目录下的文件图标。

c/c++ extension pack 拓展插件

3.3  ROS 及环境变量配置

        使用第三方一键配置包能快捷安装各种利于编程的工具,包含 gcc /g++ 编译器,apt 安装工具的更新,ROS2环境等等。

3.1.1 Ros2-humble版本 安装

        此处是针对ROS2环境的一键配置,但也集成了对于c++ ,python 等等支持,一键安装,能避免诸多安装上的小问题。在任意终端界面,输入以下指令:

wget http://fishros.com/install -O fishros && . fishros

在提示中选择“1”安装 ROS 环境,。

在更换源选项时,建议使用 “1”,自动选择源文件连接再进行安装,并在接下来的具体选项中选择“2”更换系统源并清理第三方源

在接下来的版本安装中,选择 “1” humble 版本,并选择较完整的 “1”桌面版。

直至安装完成,如下图所示:

》》如遇到虚拟机与主机间无法进行复制粘贴操作,在终端中输入如下命令:

sudo su //   进入管理员模式
apt-get update//         更新apt-get
apt-get install open-vm-tools open-vm-tools-desktop //         安装VM工具
                          vmware-user //                开启服务

    重启虚拟机后重新尝试复制粘贴。

3.1.2  Ros-control版本安装

         在终端中,输入以下命令安装 ros-controller。注意:中间需要输入“Y”以继续安装。

①“ sudo apt-get install ros-humble-ros2-control ”
②“ sudo apt-get install ros-humble-ros2-controllers”

 

在终端中输入 以下命令用以验证ROS是否安装完成。

“ros”

 

3.1.3   Moveit2版本安装

        首先利用APT-GET 安装moveit 包;

使用moveit2插件,需先进行moveit2及moveit2_tutorials源码的安装。

首先,在主目录下创建文件夹作为要用的工作区“ moveit2_ws/src”

        在工作区(src文件夹)中,右键打开终端,安装git并从git上克隆Moveit2 的代码.

        注意:中间需要输入“Y”以继续安装

sudo apt install git

git clone https://github.com/ros-planning/moveit2_tutorials -b humble --depth 1 

完成后输入以下命令,完成全部代码的克隆:

“sudo apt install python3-vcstool”
“vcs import < moveit2_tutorials/moveit2_tutorials.repos”

如遇到克隆失败的项目,需要手动克隆至目录中

输入以下命令:

“git clone https://github.com/ros-planning/moveit2.git”

其中,moveit2.git 可替换为其他确实的项目名称。

            或者打开“/home/fruser/moveit2_ws/src/moveit2_tutorials/moveit2_tutorials.repos”,      将需要克隆的URL链接前, 加入 “ GitHub Proxy 最新地址发布”作为代理后,                    重新进行“vcs import < moveit2_tutorials/moveit2_tutorials.repos”的克隆。

        完成后,利用一键安装工具,安装“rosdepc”用于搜索下载依赖。进入 “moveit2_ws”文件夹,右键点击空白处打开终端,输入以下命令,查找并安装依赖项。

“wget http://fishros.com/install -O fishros && . fishros”

键入“3”,安装rosdep工具。

接着,在当前终端中输入以下指令,安装所需要的依赖库。

rosdepc update
rosdepc install --from-path src --ignore-src -r -y

依赖安装完成后,继而进行代码编译,使用“colcon ”指令进行编译,在当前终端中,输入以下指令。

colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
  1. 至此,moveit2 安装完成。                                 

第四章  插件包导入及插件测试

        4.1 MOVEIT2插件包导入

                1)fairino 提供的插件包已经更新至资料站中,可参考如下网址查看和下载对应插件包:

FAIR-INNOVATION (fair-innovation) - Gitee.comhttps://gitee.com/fair-innovation

        2) 打开“ moveit_ws/src/.”并将文件解压到当前文件夹下。注意,fairino 提供了不同机器人的使用文件,只需要解压符合现场机器人型号的文件,如需要进行示例代码 “fairino_mtc_demo”,需从技术人员处获取代码,一并放入“src”路径中,执行编译代码。

回到moveit2目录下,右键打开终端,分别执行以下命令,并指令进行编译。

colcon build --packages-select fairino_msgs
colcon build --packages-select fairino_hardware
colcon build --packages-select fairino_description
colcon build --packages-select fairino3_v6_moveit2_config(以FR3机型为例)
colcon build --packages-select fairino_mtc_demo
source install/setup.bash

至此,fairino ros2 moveit插件包需要的文件已经移动完成。

4.2 RVIZ 仿真操作简介

        1)在“moveit2_ws”文件夹下,打开终端,输入以下指令,将moveit2 生成的文件进行编译并更新。

colcon build --packages-select fairino3_v6_moveit2_config
source install/setup.bash

输入以下指令执行lunch文件。

ros2 launch fairino3_v6_moveit2_config demo.launch.py

至此,RVIZ 界面会弹出如下:

2)想要实现简单运动,只需要拖拽机器人末端的轨迹球,或者进行joint 轴关节运动。以下为常用的功能布局图:

Planning: 规划操作选窗。

Commands:指令区。

显示机器人模型的区域为机器人可视作业视窗。

         鼠标拖拽末端轨迹球,改变机器人的位置,注意,若轨迹球偏离机器人的可达位姿,机器人末端无法与轨迹球贴合。

在可视化作业区内,鼠标操作定义如下:

左键:拖动旋转视图。

右键:拖动放大视图。

中键:滚轮滑动放大视图/滚轮点击平行移动视图。

点击“Plan”按钮,可视化视图中会进行路径规划,并以虚影动作展示规划出的动作。

点击“Execute”会驱动机器人按照仿真路径运动到目标位置。

点击“Plan& Execute”会控制机器人进行路径规划并运动。

        点击“Joints”进入关节控制界面,拖拽对应关节的滑动条,同样可以改变机器人位姿。再通过“Plan& Execute”进行动作的执行。

若关闭rviz,终端进程无法退出,可以直接关闭终端或者使用“ctrl + C ”来结束进程。

4.3  RVIZ 与机器人实机联动操作简介

        1)使用RVIZ 与机器人联动,需要使用fairino_hardware 功能包,,通过fairino_hardware插件move_group将运动规划发送给moveit_control,然后转发给ros2_control,ros2_control再通过fairino_hardware插件驱动实际机器人运动,并且fairino_hardware插件还会接受实际机器人的反馈数据,从而实现rviz2仿真界面机器人模型与实际机器人的同步,从而实现用户通过rviz2界面驱动实际机器人运动功能。

注意:确认hardware 功能包需要支持机器人的软件版本,确保API对齐,以避免数据不对应导致的控制失败!!

确定机器人已经与上位机网络连接,且机器人网络IP地址为:192.168.58.2

进入如下路径:“/home/fruser/moveit2_ws/install/fairino3_v6_moveit2_config/share/fairino3_v6_moveit2_config/co nfig”
打开文件“fairino3_v6_robot.ros2_control.xacro”,将文件的第9行指令“<plugin>mock_components/GenericSystem</plugin>”修改为:

“<plugin>fairino_hardware/FairinoHardwareInterface</plugin>”。

返回“moveit2_ws”,打开终端重新输入命令,重新运行 RVIZ 代码。


source install/setup.bash
ros2 launch fairino3_v6_moveit2_config demo.launch.py

 

此时机器人应与实际链接的机器人位姿一致。

 

鼠标拖动轨迹球,改变机器人目标位置,并点击“Plan&Execute”,RVIZ会控制机器人前往目标位置,至此,ROS2 moveit2 插件包安装验证完成,

Read more

GHCTF2025-WEB题解:如何用SSTI绕过WAF黑名单(附实战payload)

从GHCTF2025实战出发:深度拆解SSTI黑名单绕过策略与高阶Payload构造 最近在GHCTF2025的WEB赛道上,一道看似简单的文件上传题目,却让不少选手陷入了“知道有洞,但payload总被拦截”的困境。这道题表面上是文件上传,实际上却是一场针对SSTI(服务器端模板注入)绕过能力的深度考验。我在实际测试中发现,很多选手能够快速识别出SSTI漏洞的存在,但在面对严格的黑名单过滤时,却往往束手无策,反复尝试的payload都被WAF无情拦截。 这种情况在真实的渗透测试和CTF比赛中并不少见。WAF(Web应用防火墙)的过滤规则越来越智能,传统的{ {7*7}}测试虽然能确认漏洞,但真正要执行命令、读取文件时,那些包含os、flag、__builtins__等关键词的payload几乎都会被第一时间拦截。这道题的精妙之处在于,它模拟了一个相对真实的防御环境——不仅过滤常见敏感词,还对下划线这种在Python反射中至关重要的字符进行了拦截。 本文将从实战角度出发,不局限于GHCTF2025这一道题目,而是系统性地探讨SSTI黑名单绕过的核心思路、技术原理和进阶技巧。我会结

前端通用 Token 全流程操作指南(常见常用版)

前端通用 Token 全流程操作指南(常见常用版) 本文梳理 所有前端框架通用 的 Token 操作逻辑,剥离具体项目/技术栈细节,聚焦「获取→存储→使用→过期→清除」的核心生命周期,每个步骤均标注「通用场景+通用方案+注意事项」,适合所有前端开发场景,可直接作为开发速查表。 前置说明:Token 的核心定位 Token 是后端签发的临时访问凭证,核心作用是: 1. 证明“当前用户是谁”(身份认证); 2. 证明“当前用户有权限访问”(权限校验)。 一、第一步:登录成功获取 Token 通用场景 用户通过账号密码/验证码/第三方登录等方式,向后端发起登录请求,后端验证通过后,在响应体中返回 Token。

前端图片加载失败、 img 出现裂图的原因全解析

在前端开发过程中,我们几乎都遇到过这种情况: 页面中某张图片加载不出来,显示成一个小小的“裂图”图标。 这看似简单的问题,实际上可能由多种原因造成,尤其是在 HTTPS 环境下,混合内容机制(Mixed Content) 是最常见、也最容易被误解的根源之一。 本文将带你系统梳理裂图的各种原因、排查思路,并重点讲清楚混合内容的原理与浏览器行为。 一、什么是“裂图”? “裂图”(broken image)是指浏览器尝试加载 <img> 标签的图片资源失败时的表现形式。 常见表现: * 图片区域显示为灰底、叉号、占位符; * 控制台出现 Failed to load resource 或 Mixed Content 警告; * Network 面板中图片请求状态码为 404 / 403 / blocked。 二、常见的裂图原因汇总

WebRTC / HLS / HTTP-FLV 的本质区别与选型指南

WebRTC / HLS / HTTP-FLV 的本质区别与选型指南

在做系统级直播(而不是自己本地播放)时,很多人都会遇到一个经典问题: WebRTC、HLS、HTTP-FLV 到底有什么区别? 项目中到底该选哪个? 传输协议不同 → 延迟不同 → 兼容性 / 稳定性 / 成本不同 在系统里选哪个,核心看两点: 你要多低的延迟?你要多强的兼容和稳定? 一、简介 * WebRTC:超低延迟(0.2 ~ 1s),适合实时监控、无人机、实时指挥 * HLS(hls.js):最稳、最通用(5 ~ 15s),适合活动直播、课程、公开大并发 * HTTP-FLV(flv.js):中低延迟(1 ~ 3s),适合想比 HLS 低延迟,但不想用 WebRTC 的场景(