无码人妻精品一区二区三区9厂-国产精品人人做人人爽人人添-在线永久免费观看黄网站-国产精品久久久久一区二区三区

首頁 新聞 工控搜 論壇 廠商論壇 產品 方案 廠商 人才 文摘 下載 展覽
中華工控網首頁
  P L C | 變頻器與傳動 | 傳感器 | 現場檢測儀表 | 工控軟件 | 人機界面 | 運動控制
  D C S | 工業以太網 | 現場總線 | 顯示調節儀表 | 數據采集 | 數傳測控 | 工業安全
  電 源 | 嵌入式系統 | PC based | 機柜箱體殼體 | 低壓電器 | 機器視覺
EtherCAT運動控制器在ROS上的應用(上)
深圳市正運動技術有限公司
收藏本文     查看收藏

本文以正運動技術EtherCAT運動控制器ZMC432和ZMC408CE為例,介紹正運動技術運動控制器在ROS上的應用開發。

在正式學習之前,我們先了解一下正運動技術的EtherCAT運動控制器ZMC432和ZMC408CE。這兩款產品分別是32軸,8軸EtherCAT運動控制器。

ZMC432功能簡介

ZMC432是正運動推出的一款多軸高性能EtherCAT總線運動控制器,具有EtherCAT、EtherNET、RS232、CAN和U盤等通訊接口,ZMC系列運動控制器可應用于各種需要脫機或聯機運行的場合。

ZMC432運動控制器.png

ZMC432最多可支持32軸運動控制,支持直線插補、任意圓弧插補、空間圓弧、螺旋插補、電子凸輪、電子齒輪、同步跟隨等功能。

ZMC432支持32軸脈沖輸入與編碼器反饋,通用IO包含24路輸入口和12個輸出口;2路AD,2路DA;其中特定輸出口支持高速PWM控制。

ZMC432通過EtherCAT和CAN總線進行硬件資源擴展,可擴展至4096路輸入和4096路輸出。

ZMC432運動控制器架構圖.png

ZMC408CE功能簡介

ZMC408CE是正運動推出的一款多軸高性能EtherCAT總線運動控制器,具有EtherCAT、EtherNET、RS232、CAN和U盤等通訊接口,ZMC系列運動控制器可應用于各種需要脫機或聯機運行的場合。

ZMC408CE運動控制器.png

ZMC408CE支持8軸運動控制,最多可擴展至32軸,支持直線插補、任意圓弧插補、空間圓弧、螺旋插補、電子凸輪、電子齒輪、同步跟隨等功能。

ZMC408CE支持8軸運動控制,可采用脈沖軸(帶編碼器反饋)或EtherCAT總線軸,通用IO包含24路輸入口和16路輸出口,部分IO為高速IO,模擬量AD/DA各兩路,EtherCAT最快125us的刷新周期。

ZMC408CE支持8個通道的硬件比較輸出、硬件定時器、運動中精準輸出,還支持8通道PWM輸出,對應的輸出口為OUT0-7,支持8個通道同時觸發硬件比較輸出。

ZMC408CE可靈活進行硬件資源擴展,通過CAN或EtherCAT總線可擴展至4096個輸入和4096個輸出。

ZMC408CE運動控制器架構圖.png

→ZMC432,ZMC408CE均使用同一套API函數,均支持C、C++、C#、LabVIEW、Python、Delphi等開發語言,支持VC6.0、VB6.0、Qt、.Net等平臺,支持Windows、Linux、WinCE、iMac等操作系統。

多種上位機開發方式.png

01  ROS應用背景

ROS(robot operating system)是用于機器人的一種開源后操作系統(次級操作系統)。首要設計目標是在機器人研發領域提高代碼復用率。

ROS是一種分布式處理框架(又名Nodes)。這使可執行文件能被單獨設計,并且在運行時松散耦合。這些過程可以封裝到數據包(Packages)和堆棧(Stacks)中,以便于共享和分發。

ROS還支持代碼庫的聯合系統。使得協作亦能被分發。這種從文件系統級別到社區一級的設計讓獨立地決定發展和實施工作成為可能。上述所有功能都能由ROS的基礎工具實現。

簡單來說,ROS作為一個靈活的操作系統,系統上的節點具有很大的隨意性,它們可以位于不同的計算機上,甚至可以位于不同的網絡上。我們可以使用一個Arduino作為一個節點發布信息,使用一臺筆記本電腦作為一個節點訂閱上述信息以及使用一臺手機作為一個節點驅動電機等。

上述靈活性使得ROS可以適應很多不同場合的應用。

ROS應用場景.png

ROS的主要特點可以歸納為以下幾條

1.分布式點對點設計

ROS的點對點設計以及服務和節點管理器等機制可以分散由計算機視覺和語音識別等功能帶來的實時計算壓力,能夠適應多機器人遇到的挑戰。

分布式點對點設計.png

2.多語言支持

ROS支持許多種不同的語言,例如C++、Python、Octave和LISP,也包含其他語言的多種接口實現。

多語言支持.png

3.精簡與集成

ROS建立的系統具有模塊化的特點,各模塊中的代碼可以單獨編譯,而且編譯使用的CMake工具使它很容易的就實現精簡的理念。

ROS基本將復雜的代碼封裝在庫里,只是創建了一些小的應用程序為ROS顯示庫的功能,就允許了對簡單的代碼超越原型進行移植和重新使用。

4.工具包豐富

為了管理復雜的ROS軟件框架,我們利用了大量的小工具去編譯和運行多種多樣的ROS組建,從而設計成了內核,而不是構建一個龐大的開發和運行環境。

工具包豐富.png

5.免費并且開源

ROS所有的源代碼都是公開發布的。

ROS在行業中的一些應用

近年來,國內外機器人企業、無人駕駛企業,無人機企業(大疆無人機)都紛紛加入ROS陣營。且在各大招聘中,不管是騰訊、小馬智行、阿里巴巴的菜鳥網絡、百度Apollo等,招聘無人駕駛規劃算法工程師、自主導航工程師、機器人感知算法工程師、系統平臺研發架構師等崗位時,均要求“熟悉ROS”或者“具備ROS開發經驗者優先”。

從這些我們可以看出來ROS系統的發展趨勢,正在機器人行業一步一步的主導中國市場。 以下是一些ROS典型應用場景:

1.機器人控制器中的大佬人物 - KEBA,他們的控制器已經支持ROS。

KEBA機器人.png

2.美國NASA基于ROS開發的Robonaut 2已經在國際空間站里干活了。

Robonaut 2機器人.png

3.百度apollo無人車的底層是基于ROS開發的,差點改成了ROS 2,可以在github上找到(apollo-platform)。

百度apollo無人車.png

4.ROS-I最近正準備和微軟、寶馬合作,開發一套自動化解決方案(參考:A ROS-Industrial Collaboration with Microsoft and BMW)。

ROS-I.png

5.許多工業機械臂已經開始使用ROS系統,其中2017年底ROS-I官方發布的五周年視頻不乏四大家族中的機器人。下圖的庫卡youbot機器人就是采用ROS系統開發。

庫卡youbot機器人.png

02  軟件安裝過程

此部分主要講Ubuntu18.04安裝ROS Melodic詳細過程(本文以Ubuntu18.04為例,其他同理,并不影響運動控制器的運用)。

1.設置sources.list
01.png

2.設置key(公鑰已更新)
02.png

1.png
3.更新package(時間有點長,耐心等待)
03.png

此時可能會遇到以下問題:

2.png

解決辦法如下,在終端輸入:

$sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key F42ED6FBAB17C654
$ sudo apt-get update

3.png

當出現Reading package lists… Done說明更新完成。

4.安裝ROS melodic完整版
04.png

5.初始化rosdep
05.png

效果示意圖:

4.png

5.png

輸入指令sudo rosdep init若遇到以下問題:

(1)sudo : rosdep : command not found問題

在終端輸入:sudo apt install rospack-tools

(2)ERROR : cannot download default sources list from: https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list Website may be down.

①在終端輸入:sudo gedit / etc / hosts,打開hosts文件,內容如下;

6.png

②將:199.232.28.133 raw.githubusercontent.com添加在文件中,添加后的文件如下;

7.png

③然后保存文件后退出;

8.png

④在終端執行:sudo rosdep init,問題解決。

6.測試ROS是否安裝成功
06.png

成功打開如下圖所示:

9.png

03  ROS編程案例

這部分主要講“消息發布”和“訂閱”兩個ROS編程案例。

1.創建一個ROS工作空間。
111.png

2.創建ROS程序包( zmotion為程序包名,也可以定義為其他 )。
222.png

3.在創建完程序包后,每次運行需要source ~ / catkin_ws / devel / setup.bash,否則無法找到文件。

解決每次都要source方法:
333.png

4.新建節點文件。

在zmotion包目錄中創建一個src目錄:
444.png

5.撰寫發布節點(talker.cpp)。

實現功能:

(1)初始化ROS系統;

(2)在chatter topic上發布std_msgs/Float64消息;

(3)以每秒10次頻率發布消息。

#include "ros/ros.h"
#include "std_msgs/Float64.h"
#include int main(int argc, char **argv)
{
  //初始化ROS,名稱重映射(唯一),必須為base name,不含/
  ros::init(argc, argv, "talker"); 
  //為進程的節點創建一個句柄,第一個創建的NodeHandle初始化節點
  ros::NodeHandle n;
  //告訴主機要在chatter topic上發布一個std_msgs消息
  //主機會訂閱所有chatter topic節點,參數表示發布隊列的大小(先進先出)
  ros::Publisher chatter_pub = n.advertise("chatter", 1000);
  ros::Rate loop_rate(10);  //自循環頻率
  int count = 0;
  while (ros::ok())
  {
    std_msgs::Float64 msg;
    msg.data = count*1.0;
    //輸出,用來替代prinf/cout
    ROS_INFO("Position is: %f", msg.data); 
chatter_pub.publish(msg);
    ros::spinOnce();
    //休眠,來使發布頻率為10Hz
    loop_rate.sleep();
    ++count;
  }
  return 0;
}

6.撰寫訂閱節點(listener.cpp)。

實現功能:

(1)初始化ROS系統;

(2)訂閱chatter topic消息;

(3)進入自循環,等待消息到達;

(4)消息到達,調用chatterCallback()函數。
666.png

7.修改CMakeLists.txt。

(1)打開程序包zmotion(catkin_ws / src / zmotion)路徑,找到CMakeLists.txt文件。

10.png

(2) 最低版本修改為2.8.3。
72.png

(3) 找到find_package,添加依賴包message_generation。
73.png

(4)確保generate_message被調用。
74.png

(5)確保在運行時依賴中也添加了該消息的依賴。
75.png

(6)修改build下的設置

11.png

①將include_directories中include解注釋。

12.png
761.png

②在指定位置添加下列代碼下面的代碼 可以任意添加在build中,我為了美觀所以添加在相應位置的,只要在build中添加都生效。
762.png

13.png

(7)最后,列出完整的CMakeLists.txt。

cmake_minimum_required(VERSION 2.8.3)
project(zmotion)
find_package(catkin REQUIRED COMPONENTS
  roscpp
  std_msgs
  message_generation
)
## Generate added messages and services with any dependencies listed here
generate_messages(
   DEPENDENCIES
   std_msgs
)
###################################
## catkin specific configuration ##
###################################
catkin_package(
# INCLUDE_DIRS include
# LIBRARIES zmotion
# CATKIN_DEPENDS roscpp std_msgs
# DEPENDS system_lib
CATKIN_DEPENDS message_runtime
)
###########
## Build ##
###########
## Specify additional locations of header files
## Your package locations should be listed before other locations
include_directories(
  include
  ${catkin_INCLUDE_DIRS}
)
## Declare a C++ executable
## With catkin_make all packages are built within a single CMake context
## The recommended prefix ensures that target names across packages don't collide
add_executable(talker src/talker.cpp)
add_executable(listener src/listener.cpp)
## Rename C++ executable without prefix
add_dependencies(talker $zmotion_generate_messages_cpp)
## Specify libraries to link a library or executable target against
target_link_libraries(talker
   ${catkin_LIBRARIES}
)
target_link_libraries(listener
   ${catkin_LIBRARIES}
)

8.修改package.xml文件。
68.png

14.png

9.編譯。
09.png

10.運行程序。

(1)打開一個新終端,啟動ROS系統;
00.png

(2)打開一個新終端,運行發布節點;
001.png

(3)打開一個新終端,運行訂閱節點;
002.png

(4)結果。

運行發布節點程序的結果:
003.png

運行訂閱節點程序的結果:
004.png

本次,正運動技術EtherCAT運動控制器在ROS上的應用(上) ,就分享到這里。

更多精彩內容請關注“ 正運動小助手 ”公眾號,需要相關開發環境與例程代碼,請咨詢正運動技術銷售工程師:400-089-8936。

本文由正運動技術原創,歡迎大家轉載,共同學習,一起提高中國智能制造水平。文章版權歸正運動技術所有,如有轉載請注明文章來源。

正運動技術專注于運動控制技術研究和通用運動控制軟硬件產品的研發,是國家級高新技術企業。正運動技術匯集了來自華為、中興等公司的優秀人才,在堅持自主創新的同時,積極聯合各大高校協同運動控制基礎技術的研究,是國內工控領域發展最快的企業之一,也是國內少有、完整掌握運動控制核心技術和實時工控軟件平臺技術的企業。主要業務有:運動控制卡_運動控制器_EtherCAT運動控制卡_EtherCAT控制器_運動控制系統_視覺控制器__運動控制PLC_運動控制_機器人控制器_視覺定位_XPCIe/XPCI系列運動控制卡等等。

二維碼-02.jpg


 

狀 態: 離線

公司簡介
產品目錄

公司名稱: 深圳市正運動技術有限公司
聯 系 人: 戴德弟
電  話: 0755-32976042
傳  真: 0755-2606 6955
地  址: 深圳市寶安區西鄉洲石路陽光工業園A1棟5樓
郵  編: 518100
主  頁:
 
該廠商相關技術文摘:
機器視覺運動控制一體機在線路板跟隨灌膠上的應用
強實時運動控制內核MotionRT750(五):EtherCAT總線冗余讓生產制造更可靠
深圳·EelE智博會:智控賦能,驅動未來制造
機器視覺運動控制一體機在喇叭跟隨點膠上的應用
強實時運動控制內核MotionRT750(四):高速貼裝應用中的拱形運動
聚焦深圳國際電子展 | 正運動攜熱門產品和方案!等您來體驗!
超高速EtherCAT實時運動控制卡在高速半導體固晶機上的應用
強實時運動控制內核MotionRT750(三):us級高速交互之C#,為智能裝備提速
激光振鏡運動控制器在流水線激光打標上的應用
高速高精運動控制!PCIe超實時2通道EtherCAT運動控制卡上市!
步進控制的光柵尺全閉環EtherCAT運動控制器ZMC432CL-V2(五):Python編程調試
單旋轉臺XYR在精密點膠/外觀檢測/精密焊接的C#應用
更多文摘...
立即發送詢問信息在線聯系該技術文摘廠商:
用戶名: 密碼: 免費注冊為中華工控網會員
請留下您的有效聯系方式,以方便我們及時與您聯絡

關于我們 | 聯系我們 | 廣告服務 | 本站動態 | 友情鏈接 | 法律聲明 | 不良信息舉報
工控網客服熱線:0755-86369299
版權所有 中華工控網 Copyright©2022 Gkong.com, All Rights Reserved