通过ROS Melodic控制Innfos gluon机械臂

Innfos gluon:

从前到后、从左到右依次为:六轴机械臂一台、插好终端电阻和回馈制动电容的ECB、急停开关+电源、电脑。

本文采用ROS控制Innfos gluon机械臂,官方文档参考:MINTASCA Wiki

ROS安装:

        innfos官网上明确说明,innfos gluon仅支持ubuntu18.04的ROS Melodic,其他版本可能出现不兼容的问题,关于ROS Melodic的安装和配置在上一篇博客上有详细教学,这里不再赘述。 

        文章链接:基于Ubuntu18.04下载ROS-Melodic最简便的方式!-CSDN博客
        顺便说明一下,此文的ros安装完全支持rosdep的相关操作,不需要vpn,也不需要重复多次实验以解决网络连接问题。

下载gluon软件包:

mkdir -p catkin_ws/src
cd catkin_ws/src

### 下载软件
git clone https://github.com/mintasca/ros_gluon.git
cd ..
git clone https://github.com/innfos/innfos-cpp-sdk.git
cp –r innfos-cpp-sdk/sdk src/ros_gluon/gluon/ActuatorController_SDK
cp –r innfos-cpp-sdk/sdk src/ros_gluon/gluon_control/ActuatorController_SDK

上述步骤如果失败可以手动将innfos-cpp-sdk/sdk的SDK复制到src/ros_gluon/gluon/ActuatorController_SDK和src/ros_gluon/gluon_control/ActuatorController_SDK下面。

        提醒:github克隆的时候最好挂载vpn,否则容易出现各种问题,没有vpn的话,也可以尝试直接下载压缩包上传到ubuntu再解压,不然问题真的很多。

### 安装并编译依赖包
sudo rosdep init
rosdep update
sudo apt-get install ros-melodic-ros-control-boilerplate
sudo apt-get install ros-melodic-moveit-visual-tools
sudo apt-get install ros-melodic-moveit
sudo apt-get install ros-melodic-joint-state-publisher-gui
sudo apt-get install ros-melodic-ros-controllers
cd catkin_ws
catkin_make
### 配置编译环境
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc

网络配置:

        机械臂ECB的默认网段在192.168.1.1,若想在ubuntu上连接机械臂,需要先将ubuntu的地址改成对应网段,并设置桥接模式,同时pc的wifi需要关闭。

1.将网络连接改为桥接模式

5a94f278db904b3392bc25de432355a0.png

2.修改虚拟机的ip地址,改成对应网关

29cb4d425db14f8aba709fbf5ad83ac4.png

3.修改虚拟网络编辑器,注意桥接位置,要和机械臂桥接上

3fb20e0020924fa497933a329be4072a.png


仿真控制:

### Rviz 控制模式:
roslaunch gluon display.launch
### Moveit + Rviz控制模式:
roslaunch gluon_moveit_config cm_demo.launch

 Rviz 控制模式:

Moveit + Rviz控制模式:

到这里innfos的开发环境就搭建完成了,希望对大家有所帮助!

官方网站:MINTASCA Wiki

参考文章:gluon机械臂开发_gluon-6l3ros-CSDN博客

虚拟机VMware Workstation Pro连接gluon机器人记录_虚拟机能挂机器人么-CSDN博客

### 使用ROS控制Innfos机械 为了实现通过ROS控制系统中的Innfos机械,通常需要完成一系列配置工作来确保硬件接口和控制器能够正常通信并执行指令。基于已有的经验,在设置过程中可能会遇到类似于`no matching function for call`这样的编译错误[^1],这提示开发者需要注意版本兼容性和API调用方式。 #### 安装必要的依赖包 首先,确保已经安装了所有必需的软件包,包括但不限于: - `ros-noetic-desktop-full`: 提供完整的桌面环境以及额外工具集。 - `joint_state_publisher`, `robot_state_publisher`: 用于发布关节状态信息和服务于rviz可视化。 - `controller_manager`, `hardware_interface`: 实现自定义硬件抽象层所需的核心组件。 对于特定品牌如Innfos的设备,则还需要获取官方提供的驱动程序和支持库文件,并按照文档指示将其集成到项目当中去。 #### 创建自定义硬件接口类 针对不同类型的机电一体化装置设计专门化的C++类是非常重要的一步。此类需继承自`hardware_interface::RobotHW`基类,并重写虚函数以适应具体应用场景下的需求。下面给出了一段简化后的模板代码作为参考: ```cpp #include <hardware_interface/joint_command_interface.h> #include <hardware_interface/joint_state_interface.h> #include <hardware_interface/robot_hw.h> class InfossArmHardware : public hardware_interface::RobotHW { public: bool init(ros::NodeHandle& nh); protected: std::vector<hardware_interface::JointStateHandle> joint_state_interface_; std::vector<hardware_interface::JointCommandInterface*> command_interfaces_; }; ``` 此部分逻辑应当紧密贴合实际物理结构特点来进行调整优化,比如电机数量、传感器布局等因素都会影响最终的设计方案。 #### 编写控制器插件 有了上述准备之后就可以着手编写具体的运动学算法或是轨迹规划器了。这里推荐采用pluginlib机制加载外部模块的方式,使得整个架构更加灵活易于扩展维护。一个典型的例子就是利用effort_controllers或者position_controllers来操作单个或多组联动部件的位置姿态变化。 ```xml <launch> <!-- 加载控制器管理节点 --> <node name="controller_spawner" pkg="controller_manager" type="spawner" output="screen"> <param name="controllers" value="arm_controller"/> </node> <!-- 启动gazebo仿真环境 (可选)--> <include file="$(find gazebo_ros)/launch/empty_world.launch"/> </launch> ``` 以上XML片段展示了如何启动控制器管理进程并向其中注册名为`arm_controller`的服务实例;与此同时还可以选择性地引入模拟平台以便测试验证效果[^2]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值